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.

Bitrate

The following table shows our recommended resolutions, bitrates and frames per seconds.

Video Raccomendations

Resolution Bitrate FPS
(progressive)*
Europe Others**
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.

Video Raccomendations

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

Video Codec

H.265 is available but we recommend to use H.264.

Level

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.

Keyframe/GOP

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

Video Raccomendations

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.

Max-Age Header
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).

Check out the FAQs page to get the answers you need!