# Gcore Video Streaming > Gcore Video Streaming is a high-load video streaming PaaS. Scale to 1M+ viewers and beyond - [Gcore Video Streaming](https://docs.gcore.com/streaming.md): Gcore Video Streaming is a high-load video streaming PaaS. Scale to 1M+ viewers and beyond ## Getting started - [Start working with Gcore Streaming](https://docs.gcore.com/streaming/getting-started/start-work.md): Use this guide to start with the right Streaming section for live streaming, VOD upload, environment planning, billing, API access, or troubleshooting. - [Plan accounts for development and production](https://docs.gcore.com/streaming/getting-started/dev_environment.md): Use one account, separate accounts, or custom plans to set up Streaming development and production workflows for small, medium, and enterprise projects. ## AI video services - [AI video services](https://docs.gcore.com/streaming/video-hosting/ai-video-service.md): Use AI video services for subtitle generation, translation, and content moderation in Gcore Video Streaming via API or Customer Portal. ## Content moderation - [Not safe for work (NSFW) detection](https://docs.gcore.com/streaming/ai-video-service/content-moderation/nsfw-detection.md): Run NSFW content moderation on MP4 videos via the Customer Portal or REST API, create a task, then poll for results using Python SDK, Go SDK, or curl. - [Hard nudity detection](https://docs.gcore.com/streaming/ai-video-service/content-moderation/ai-nudity-detection.md): Run hard nudity detection on MP4 videos via the Customer Portal or REST API, create a task, then poll for results using Python SDK, Go SDK, or curl. - [Soft nudity detection](https://docs.gcore.com/streaming/ai-video-service/content-moderation/soft-nudity-detection.md): Run soft nudity detection on MP4 videos via the Customer Portal or REST API, create a task, then poll for results using Python SDK, Go SDK, or curl. - [Sport detection](https://docs.gcore.com/streaming/ai-video-service/content-moderation/sport-detection.md): Run sport detection on MP4 videos via the Customer Portal or REST API, create a task, then poll for results using Python SDK, Go SDK, or curl. ## Generate and translate captions - [Generate and translate captions](https://docs.gcore.com/streaming/video-hosting/ai-for-video/generate-ai-subtitles-and-add-them-to-video.md): Generate video captions using Gcore ASR with Whisper models to transcribe audio in 100+ languages and translate captions via the Customer Portal or API. - [Generate and translate AI captions](https://docs.gcore.com/streaming/ai-video-service/generate-ai-subtitles-and-add-them-to-video/generate-captions-in-customer-portal.md): Generate and translate AI captions for videos via Customer Portal or REST API - transcribe audio from new or existing videos using auto_transcribe params or direct AI tasks with Python SDK, Go SDK, and curl. ## Billing - [Overview of Streaming tariffs](https://docs.gcore.com/streaming/billing/overview-of-tariffs.md): Configure Gcore Streaming PAYG trial activation, active limits, custom tariff plans, and billing terms. - [Streaming usage and billing reports](https://docs.gcore.com/streaming/billing/usage-and-billing-reports.md): Monitor Gcore Streaming usage reports for AI services, delivery, live stream concurrency, transcoding, and video hosting billing metrics. ## Codecs and protocols - [Accepted input parameters for live streams and videos](https://docs.gcore.com/streaming/live-streams-and-videos-protocols-and-codecs/input-parameters-and-codecs.md): Review input requirements for live stream ingest and VOD upload in Gcore Streaming, including supported protocols, codecs, and file formats. - [Output parameters after transcoding: codecs, bitrate, frame rate](https://docs.gcore.com/streaming/live-streams-and-videos-protocols-and-codecs/output-parameters-and-codecs.md): Configure HLS MPEG-TS, HLS CMAF, MPEG-DASH, and MP4 for Gcore Streaming with H.264, HEVC, AV1, and VP9 codec support and adaptive bitrate for Live and VOD. - [RTMP](https://docs.gcore.com/streaming/live-streaming/protocols/rtmp.md): Configure RTMP and RTMPS live stream ingest via Customer Portal or REST API; get push credentials, set a pull source URL, and troubleshoot encoder issues. - [SRT](https://docs.gcore.com/streaming/live-streaming/protocols/srt.md): Configure SRT live stream ingest via Customer Portal or REST API; obtain push credentials, set encoder latency, configure passphrase, or set up pull ingest. - [WebRTC WHIP to HLS/DASH](https://docs.gcore.com/streaming/live-streaming/protocols/webrtc.md): Convert WebRTC WHIP ingest to HLS and MPEG-DASH playback via Customer Portal or REST API using Python SDK, Go SDK, and curl. - [RTMP vs SRT: protocol comparison](https://docs.gcore.com/streaming/live-streaming/protocols/rtmp-srt.md): Review how RTMP and SRT differ in packet loss handling, jitter, latency, bandwidth limits, and encoder buffering on unstable networks. ## Player - [Built-in web player](https://docs.gcore.com/streaming/player/customize-appearance-of-the-built-in-player.md): Create, configure, and delete a built-in player via Customer Portal or REST API, including colors, logo, autoplay, and embed options. - [JS Video Player & SDK](https://docs.gcore.com/streaming/player/player-api-tutorial.md): Configure Gcore JS Video Player (@gcorevideo player) to support HLS, LL-HLS, MPEG-DASH, LL-DASH, and MP4 playback with low-latency adaptive streaming, plugins, SDK methods, events, and error handling via hls.js, dash.js, and native video element. ## Extra features - [Video streaming API tutorial](https://docs.gcore.com/streaming/api/streaming-platform-api-tutorial.md): Create streams and broadcasts using Video Streaming API endpoints post_streams_id and post_broadcasts, activate streams with patch_streams_id, update broadcast status to live with patch_broadcasts_id, and handle webhooks with live status notifications for video streaming integration. - [Webhooks on system state changes](https://docs.gcore.com/streaming/extra-features/get-webhooks-from-the-streaming-platform.md): Configure webhooks for Video Streaming system state changes on Live streams, VOD videos, VOD deletes, and Restreamings entities via HTTP POST callbacks with payload fields including stream id, live status, backup_live, recording, transcoding readiness, pull origin type, uri, and stream_source_type. ## Interaction with CDN - [Get started with CDN for video streaming](https://docs.gcore.com/streaming/interaction-with-cdn/get-started-streaming-cdn.md): Configure automatic CDN delivery for video streaming with integrated caching at 210+ edge locations, adaptive bitrate delivery, and per-minute billing based on total content minutes delivered to viewers. - [Use custom CDN resources with video streaming](https://docs.gcore.com/streaming/interaction-with-cdn/custom-cdn-resource.md): Create dedicated custom CDN resources for Video Streaming with advanced security policies including geo-blocking, referrer validation, IP allowlists blocklists, custom domains, secure tokens, and granular caching control billed per-GB instead of per-minute. - [Protect content with video secure tokens](https://docs.gcore.com/streaming/interaction-with-cdn/video-secure-token.md): Configure video secure tokens to restrict content access by user authentication, expiration time, and per-user token generation for paid subscriptions, private videos, time-limited previews, and anti-hotlinking protection. - [Auto-refresh video secure tokens](https://docs.gcore.com/streaming/interaction-with-cdn/token-auto-refresh.md): Configure auto-refresh video secure tokens with short TTL (60 seconds) and IP-bound mode to prevent link sharing in HLS DASH streams; refresh tokens automatically in the player before expiry to invalidate copied URLs while maintaining uninterrupted playback. ## Live streaming - [Getting started with live streaming](https://docs.gcore.com/streaming/live-streaming/getting-started-with-live-streaming.md): Start live streaming with RTMP, SRT, or WebRTC WHIP ingest, HLS and DASH delivery, low-latency modes, trial limits, and activation guidance. ## Manage live streams - [Create and manage a live stream](https://docs.gcore.com/streaming/live-streaming/create-a-live-stream.md): Create and manage live streams via Customer Portal or REST API using streams endpoints, configure push or pull ingest, retrieve RTMP push_url and backup_push_url for encoder setup, and embed playback using HLS or iframe with Python SDK, Go SDK, and curl. - [Delete or disable a live stream](https://docs.gcore.com/streaming/live-streaming/delete-live-stream.md): Delete or disable live streams via Customer Portal or REST API, including active state behavior and irreversible removal. - [Live stream screenshots](https://docs.gcore.com/streaming/live-streaming/live-stream-screenshots.md): Manage live stream screenshots used as player placeholders and API JPEG previews updated every 10 seconds while a stream is live. - [Stream metrics](https://docs.gcore.com/streaming/statistics/view-your-live-stream-metrics.md): Monitor live stream performance metrics - retrieve bitrate, FPS, and key frame interval data for a specific stream via the Customer Portal or REST API using Python SDK, Go SDK, or curl. ## Broadcasting software - [FFmpeg](https://docs.gcore.com/streaming/live-streaming/broadcasting-software/ffmpeg.md): Configure FFmpeg command-line parameters for RTMP live streaming to Gcore Video Streaming, including video bitrate (2000Kbps for 720p, 4000Kbps for 1080p), audio bitrate (128Kbps), H.264 encoder, keyframe interval (2s), CPU preset (veryfast), and resolution downscaling via bicubic filter. - [GStreamer](https://docs.gcore.com/streaming/live-streaming/broadcasting-software/gstreamer.md): Configure GStreamer pipelines with videotestsrc, audiotestsrc, x264enc, and container multiplexers (FLV, MPEG-TS) to encode and push live streams to Gcore RTMP or SRT ingest endpoints using H.264 video, AAC audio, and protocol-specific sink elements (rtmpsink, srtsink). - [Larix](https://docs.gcore.com/streaming/live-streaming/broadcasting-software/larix.md): Configure Larix mobile encoder to stream to Gcore Video Streaming via RTMP URL and stream key, using Larix Grove to generate QR code configurations with camera resolution, frame rate, video bitrate, keyframe interval, and audio bitrate parameters. - [Open Broadcaster Software](https://docs.gcore.com/streaming/live-streaming/broadcasting-software/obs.md): Configure OBS encoder settings for Gcore Video Streaming by entering RTMP Server URL and Stream Key from Live stream settings, then adjust Video Bitrate (2000Kbps for 720p, 4000Kbps for 1080p), Audio Bitrate (128), and Encoder parameters in Output, Audio, and Video tabs. - [Instant clips](https://docs.gcore.com/streaming/live-streaming/clips.md): Create instant clips from ongoing live streams via REST API with configurable duration, start time, and expiration, and retrieve clip HLS and MP4 URLs, using Python SDK, Go SDK, and curl. - [Pause and rewind the live streams](https://docs.gcore.com/streaming/live-streaming/pause-and-rewind-the-live-streams.md): Enable DVR on live streams, configure the DVR window duration, and clear the DVR cache via the Customer Portal or REST API using Python SDK, Go SDK, and curl. - [How low-latency streaming works](https://docs.gcore.com/streaming/live-streaming/how-low-latency-streaming-works.md): Configure low-latency live streaming with LL-HLS and LL-DASH protocols using CMAF and fMP4 containers to achieve 2 - 5 seconds latency; ingest RTMP or SRT streams, transcode to adaptive bitrate, and deliver via CDN with manifest blocking and chunked downloads. - [Combine multiple live streams](https://docs.gcore.com/streaming/live-streaming/combine-multiple-live-streams.md): Configure Multicamera to combine multiple live streams into a single player, set stream status, reorder streams, and embed the player via the Customer Portal or REST API using Python SDK, Go SDK, and curl. - [Insert an overlay (HTML widgets) in your live stream](https://docs.gcore.com/streaming/live-streaming/insert-html-overlays-in-live-streams.md): Configure HTML overlays in live streams via REST API - enable html_overlay on a stream, then create, list, update, and delete overlay widgets. - [Understanding of PTS and DTS in RTMP/SRT master streams](https://docs.gcore.com/streaming/live-streaming/pts-dts.md): Configure PTS (Presentation Timestamp) and DTS (Decoding Timestamp) in RTMP and SRT master streams to ensure monotonic, non-gapped frame timelines; incorrect timestamps cause decoder frame drops, segment misalignment in HLS DASH, audio video desynchronization, and transcoder failures in Gcore Cloud. - [Primary, Backup, and Global Ingest Points for PUSH and PULL](https://docs.gcore.com/streaming/live-streaming/primary-backup.md): Configure live stream PUSH and PULL ingest, reset push tokens, and set failover source URIs via the Customer Portal or REST API. - [Record your live streams and save them as videos](https://docs.gcore.com/streaming/live-streaming/record-your-live-streams-and-save-them-as-videos.md): Configure automatic or manual recording of live streams via Gcore Customer Portal or REST API, set record type to origin or transcoded, start and stop recording programmatically, and retrieve saved recordings using Python SDK, Go SDK, and curl. - [Create and configure a restream](https://docs.gcore.com/streaming/live-streaming/create-and-configure-a-restream-to-social-media.md): Broadcast live streams to multiple social media platforms via RTMP RTMPS SRT restreaming - create, update, enable, and delete restreams via the Customer Portal or REST API using Python SDK, Go SDK, and curl. - [WebRTC to HLS/DASH](https://docs.gcore.com/streaming/live-streaming/webrtc-to-hls-dash.md): Start WebRTC live streams from a browser and publish HLS and DASH playback via Customer Portal. ## Q&A and Use cases - [Streaming FAQs](https://docs.gcore.com/streaming/faq/streaming-faq.md): Configure Gcore Video Streaming for live and on-demand delivery with LL-HLS, LL-DASH, HLS MPEG-TS, CMAF, and MP4 protocols; manage transcoding up to Full HD, CDN billing per minute or GB, storage for VOD and recorded streams, and usage estimation via pricing calculator. - [Case Study: Mastering 24/7 Live Streaming with Hot-Swapping](https://docs.gcore.com/streaming/faq/case-study-hot-swapping-elemental.md): Configure 24 7 live streaming with hot-swapping between primary and backup encoders using AWS Elemental Live, Nimble Streamer SRT gateway, and Gcore Video Streaming Global Ingest points; implement cross-pull redundancy via SRT protocol to prevent head-of-line blocking and maintain absolute timing synchronization during encoder failover. - [Video streaming HTTP status codes](https://docs.gcore.com/streaming/faq/http-status-codes.md): Reference HTTP status codes 200, 403, 404, 422, 500, 502, 503, 504 returned by Gcore Video Streaming API when requesting manifests (.m3u8, .mpd) and chunks (.ts, .mp4), including geo-restriction, token authentication, CMAF format X-Err-Code headers, and transcoding error diagnostics. - [Live Streaming issues](https://docs.gcore.com/streaming/faq/live-streaming-issues.md): Troubleshoot Live Streaming issues including DVR chunk retention, low-latency HLS buffering, empty manifests, packet loss via SRT, and restream failures by checking encoder settings, bitrate stability, key frame intervals, network latency, and manifest generation. - [VOD issues](https://docs.gcore.com/streaming/faq/vod-issues.md): Troubleshoot VOD upload failures, transcoding errors, and playback issues including 503 errors, interrupted uploads, session timeouts, processing queue delays, inconsistent video parameters causing Error status, HTTP 404 responses, and high segment latency or TTFB. ## WebRTC issues - [Fix the camera or microphone if they do not work](https://docs.gcore.com/streaming/faq/real-time-video-issues/fix-the-camera-or-microphone-if-they-do-not-work.md): Troubleshoot camera and microphone failures in video calls by verifying browser version compatibility (Chrome 70+, Firefox 70+, Safari 12+, Edge 79+, Opera 60+) and enabling Camera and Microphone permissions in browser settings for Chrome, Firefox, and other supported browsers. - [Audio quality is reduced when using bluetooth headsets in video call apps](https://docs.gcore.com/streaming/faq/real-time-video-issues/audio-quality-is-reduced-when-using-bluetooth-headsets-in-video-call-apps.md): Troubleshoot Bluetooth audio quality degradation in video call applications caused by profile switching from A2DP (Advanced Audio Distribution Profile) to HSP HFP (Headset Profile Hands-Free Profile) when microphone input is required. ## Statistics - [Video player metrics](https://docs.gcore.com/streaming/statistics/statistics-of-built-in-player.md): Monitor Video Hosting player metrics including average view duration, viewer geography, browsers, operating systems, hosts, and viewer count via the Player metrics tab in Gcore Customer Portal with UTC or local timezone filtering and auto-refresh intervals. - [Video views and delivered minutes](https://docs.gcore.com/streaming/statistics/statistics-of-views.md): Monitor video views and delivered minutes through Gcore Video Hosting Statistics tab in the Customer Portal, tracking unique viewers counted once per session and total CDN delivery minutes by time period filters. - [View statistics of live streams and videos](https://docs.gcore.com/streaming/statistics/view-statistics-of-live-streams-videos-and-billing.md): View and query viewer statistics for videos and live streams via the Customer Portal or REST API - get view counts, browser breakdowns, and geographic data using Python SDK, Go SDK, or curl. ## Video hosting - [Getting started with video hosting](https://docs.gcore.com/streaming/video-hosting/getting-started-with-video-hosting.md): Start using Gcore Video Hosting for video-on-demand workflows - upload and transcode videos, deliver HLS, MPEG-DASH, and MP4 playback through the Gcore player or your own player, organize a VOD library, add subtitles and multiple audio tracks, protect videos, and analyze viewer engagement. ## Manage library - [Upload a video and embed it into your app](https://docs.gcore.com/streaming/video-hosting/upload-a-video-and-embed-it-to-your-app.md): Upload videos to Gcore Video Hosting via Customer Portal or REST API by creating a video entity from an external URL, polling the processing status, and retrieving HLS, MPEG-DASH, and iframe embed links using Python SDK, Go SDK, and curl. - [Organize uploaded videos](https://docs.gcore.com/streaming/video-hosting/organize-uploaded-videos.md): Organize videos in Gcore Streaming with directories and tags via Customer Portal, or manage directories via REST API using Python SDK, Go SDK, and curl. - [Delete uploaded videos](https://docs.gcore.com/streaming/video-hosting/delete-videos.md): Delete uploaded videos in Gcore Video Hosting via Customer Portal or REST API, permanently removing all transcoded versions, subtitles, and screenshots. - [Download files](https://docs.gcore.com/streaming/video-hosting/original-files.md): Download transcoded video files in multiple codecs and resolutions from Gcore Video Streaming via Customer Portal after original files are deleted post-transcoding. - [Protect your videos with the AES-128 encryption](https://docs.gcore.com/streaming/video-hosting/protect-your-videos-with-the-aes-128-encryption.md): Enable and manage AES-128 encryption per video via the Streaming API and integrate a keyserver to retrieve decryption keys using the Gcore CDN encryption endpoint. - [HEVC, AV1, and VP9 multi-codec VOD](https://docs.gcore.com/streaming/video-hosting/multi-codec.md): Check multi-codec quality presets and access codec-filtered HLS and MPEG-DASH manifests via the Streaming API for HEVC, AV1, and VP9 VOD delivery. - [HLS, MPEG-DASH, and MP4](https://docs.gcore.com/streaming/video-hosting/hls-and-mp4.md): Retrieve HLS, MPEG-DASH, and MP4 playback URLs for a video via Customer Portal or REST API using Python SDK, Go SDK, and curl. - [Create an illusion of a live broadcast with uploaded videos](https://docs.gcore.com/streaming/video-hosting/create-an-illusion-of-a-live-broadcast-with-uploaded-videos.md): Configure Live imitation in Gcore Video Streaming to broadcast uploaded VOD videos at a scheduled start time using Customer Portal or REST API playlists with start_time, loop, and active parameters, then embed via iframe player code. - [Videos with multiple audio tracks](https://docs.gcore.com/streaming/video-hosting/multi-audio.md): Deploy VOD assets with multiple embedded audio tracks in HLS and DASH manifests, with automatic language metadata extraction, audio codec transcoding across ABR qualities, and player UI language selection for multilingual content distribution. - [Create and configure playlists for videos](https://docs.gcore.com/streaming/video-hosting/create-and-configure-playlists-for-videos.md): Create and configure video playlists in Gcore Streaming via Customer Portal by adding videos in the Editor, or via REST API using Python SDK, Go SDK, and curl. - [Video Lifecycle and Statuses](https://docs.gcore.com/streaming/video-hosting/vod-status.md): Track video and rendition statuses throughout the VOD lifecycle - empty, uploading, processing, ready, and failed states; renditions transition from transcoding to finished or failed with mp4_url availability and HLS DASH manifest updates via the videos API. - [Subtitles and closed captions for VOD](https://docs.gcore.com/streaming/video-hosting/subtitles-and-closed-captions-for-vod.md): Manage subtitles and closed captions for VOD videos via Customer Portal or REST API using Python SDK, Go SDK, and curl - add, list, update, and delete WebVTT and SRT timed text tracks. - [Timeline hover previews: use with players and Roku devices](https://docs.gcore.com/streaming/video-hosting/timeline-hover-previews-use-in-players-and-roku-devices.md): Enable timeline hover previews (trick play) in Gcore Streaming Platform using WebVTT format via Get video API with storyboard tiles and VTT coordinates, or embed tiles in HLS .m3u8 manifests for Roku trick play specification compliance. - [Upload video via API to VOD storage](https://docs.gcore.com/streaming/video-hosting/upload-video-via-api.md): Upload videos to Gcore Video Hosting via API using three methods - copy from external storage, upload from local device, or batch upload for migration; specify input parameters, codecs, protocols, video audio profiles, GOP structure, bitrate constraints, and set account-level priority for transcoding queue scheduling.