Jump to content
  • 0

Pass-Through ABR


Andreas H
 Share

Question

We're trying to configure the Enterprise Edition server in a way that it allows passthrough use of the incoming 1080p video for both WebRTC and HLS protocols. We think that this reduces resource usage (GPU, CPU) and therefore is more cost effective. This allows us to have a wider bitrate ladder on the same server instance type when encoding many incoming streams in parallel. Are these thoughts reasonable?

We've tried setting the encoder configuration to use "forceEncode=false" and the expected incoming audio/video bitrate:

settings.encoderSettingsString=[{"videoBitrate"\:6000000,"forceEncode"\:false,"audioBitrate"\:128000,"height"\:1080},{"videoBitrate"\:2400000,"forceEncode"\:false,"audioBitrate"\:64000,"height"\:720}]

Nevertheless in HLS master playlist we see that there are two 1080p renditions where one is pass-through and the other one is newly encoded.

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1845272,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
abc_720p2400kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4583512,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
abc_1080p6000kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6242560,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
abc.m3u8

As we understand there are multiple criteria that could influence whether an incoming video needs to be reencoded

  • Video Resolution
  • Video Framerate
  • Video Bitrate
  • Audio Sample Rate
  • Audio Bitrate
  • H264 Profile (baseline, constrained baseline, main, high) – WebRTC requires baseline profile, right?

What's the exact logic to determine whether a rendition needs to be reencoded? 

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Answering my own question..

There's a setting that can control whether the input video is added to the HLS playlist as pass-through rendition

settings.addOriginalMuxerIntoHlsPlaylist=false

https://antmedia.io/javadoc/io/antmedia/AppSettings.html#addOriginalMuxerIntoHLSPlaylist

All renditions specified in encoderSettingsString seem to be always created and added.

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...