Live Encoding Best Practices
Here you’ll find our recommendations about how to set up your encoders to have the best results with our backend configuration (fragments, chunk, playlist, etc.).
If desired, you can use a different configuration but we can’t assure the best end-user experience.
Of course, if you or your clients have specific needs, feel free to ask to our experts about a specific setup.
The following table shows our recommended resolutions, bitrates and frames per seconds.
|Low Resolution||420×270||400 kbps||25||30|
|Medium Resolution||640×360||800-1200 kbps||25||30|
|High Resolution||960×540||900-1500 kbps||25||30|
|HD Video Resolution||1280×720||1800-2500 kbps||25||30|
|Full HD Resolution||1920×1080||3200-4000 kbps***||25||30|
*50/60 fps are interlaced frame rates used in television only and not suitable for streaming
**every country has its own fps standard, please refer to it
***for specific needs, like better quality with fast paced scenes, sports, etc., you might want to increase this value
Constant bitrate (CBR) is required, Variable Bitrate (VBR) will causes issues about end-user experience.
The following are our recommended audio formats and bitrates.
Video with music content: 128Kbps MP3 or 256Kbps AAC / 2 channel Stereo
Video with speech (ex.: closeups, interviews, news, etc.) content: 32-64Kbps MP3 or AAC / 1 channel Mono
H.265 is available but we recommend to use H.264.
A higher compression level will improve the content quality, but it’s burdensome for the encoder CPU and for the client device (browser, etc.) to decode it.
We recommend to use the medium level supported by your encoder.
If you are using the H.264 profile, Main would be a good starting point instead of Baseline or High.
The keyframe should be passed at every GOP interval.
If you are using 25fps (recommended), the GOP should be a multiple of 25 – from 1 to 8 seconds
From our Source control panel on Media Manager you can see the three pre-set settings, clicking on them you’ll notice the RTMP string changing:
- DEFAULT (rtmp://bc.msmdn.net/event/…): recommended setting = keyframe 3 or GOP 75 (90 with 30fps)
- LOW DELAY (rtmp://bc.msmdn.net/eventll/…): recommended setting = keyframe 1 or GOP 25 (30 with 30fps)
- HIGH BUFFER (rtmp://bc.msmdn.net/eventhb/…): recommended setting = keyframe 6 or GOP 150 (180 with 30fps)
In this way the keyframe/GOP will match with the chunks length so the streaming will be optimized for the bandwidth, obtaining a better quality with the same bitrate.
Increasing the GOP will improve the quality of your content, decreasing it will lower the delay instead
Advanced Settings (HTTP Ingest Protocols)
Please only proceed if you are doing packetization/chunking on your own server.
Segment Duration: Segment duration should always be multiples of your original encoded key frame distance/GOP.
If your keyframe is set at 3 seconds, your segment duration should be set at 3, 6, 9, 12, etc.
Index Duration: The number of TS segments (chunks) presented within the playlist.
The average index duration is 4-5 chunks, increasing it will introduce a greater delay.
For example, setting a segment duration at 10 seconds and the Index Duration at 60 seconds will keep 6 TS segments (chunks) in your playlist file.
Set Index/Manifests TTL to 1 seconds on your packetizer (or packetizer software).
Set TS segment/Fragment TTL to 3600 seconds on your packetizer (or packetizer software).