Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ABR behavior with mixed Codec (HEVC / AVC) HLS Livestreams #1759

Open
reformhaus opened this issue Sep 26, 2024 · 0 comments
Open

ABR behavior with mixed Codec (HEVC / AVC) HLS Livestreams #1759

reformhaus opened this issue Sep 26, 2024 · 0 comments

Comments

@reformhaus
Copy link

We are testing mixed codec livestreams (AVC / HEVC) in conjunction with Exoplayer. In this case, we currently only offer HEVC renditions in higher bandwidths. Sample Manifest:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=2182400,AVERAGE-BANDWIDTH=1900800,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=960x540,FRAME-RATE=50.000,AUDIO="aaclc",SUBTITLES="subs"
master-540p-1600-avc.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1020800,AVERAGE-BANDWIDTH=880000,CODECS="avc1.4d401f",RESOLUTION=960x540,FRAME-RATE=50.000,URI="master-540p-1600-avc_I-Frame.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=2692800,AVERAGE-BANDWIDTH=2340800,CODECS="hvc1.1.6.L93.B0,mp4a.40.2",RESOLUTION=960x540,FRAME-RATE=50.000,AUDIO="aaclc",SUBTITLES="subs"
master-540p-2000-hevc.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1276000,AVERAGE-BANDWIDTH=1100000,CODECS="hvc1.1.6.L93.B0",RESOLUTION=960x540,FRAME-RATE=50.000,URI="master-540p-2000-hevc_I-Frame.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4606800,AVERAGE-BANDWIDTH=3990800,CODECS="hvc1.1.6.L123.B0,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=50.000,AUDIO="aaclc",SUBTITLES="subs"
master-1080p-3500-hevc.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=2233000,AVERAGE-BANDWIDTH=1925000,CODECS="hvc1.1.6.L123.B0",RESOLUTION=1920x1080,FRAME-RATE=50.000,URI="master-1080p-3500-hevc_I-Frame.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=6520800,AVERAGE-BANDWIDTH=5640800,CODECS="avc1.64002a,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=50.000,AUDIO="aaclc",SUBTITLES="subs"
master-1080p-5000-avc.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=3190000,AVERAGE-BANDWIDTH=2750000,CODECS="avc1.64002a",RESOLUTION=1920x1080,FRAME-RATE=50.000,URI="master-1080p-5000-avc_I-Frame.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=3330800,AVERAGE-BANDWIDTH=2890800,CODECS="hvc1.1.6.L120.B0,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=50.000,AUDIO="aaclc",SUBTITLES="subs"
master-720p-2500-hevc.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1595000,AVERAGE-BANDWIDTH=1375000,CODECS="hvc1.1.6.L120.B0",RESOLUTION=1280x720,FRAME-RATE=50.000,URI="master-720p-2500-hevc_I-Frame.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4224000,AVERAGE-BANDWIDTH=3660800,CODECS="avc1.640020,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=50.000,AUDIO="aaclc",SUBTITLES="subs"
master-720p-3200-avc.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=2041600,AVERAGE-BANDWIDTH=1760000,CODECS="avc1.640020",RESOLUTION=1280x720,FRAME-RATE=50.000,URI="master-720p-3200-avc_I-Frame.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=1672000,AVERAGE-BANDWIDTH=1460800,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=50.000,AUDIO="aaclc",SUBTITLES="subs"
master-360p-1200-avc.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=765600,AVERAGE-BANDWIDTH=660000,CODECS="avc1.4d401f",RESOLUTION=640x360,FRAME-RATE=50.000,URI="master-360p-1200-avc_I-Frame.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=1034000,AVERAGE-BANDWIDTH=910800,CODECS="avc1.4d401e,mp4a.40.2",RESOLUTION=480x270,FRAME-RATE=50.000,AUDIO="aaclc",SUBTITLES="subs"
master-270p-700-avc.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=446600,AVERAGE-BANDWIDTH=385000,CODECS="avc1.4d401e",RESOLUTION=480x270,FRAME-RATE=50.000,URI="master-270p-700-avc_I-Frame.m3u8"

#EXT-X-MEDIA:TYPE=AUDIO,LANGUAGE="de",NAME="Deutsch",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",GROUP-ID="aaclc",URI="master-audio1-128-aaclc.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,LANGUAGE="de",NAME="Audiodeskription",AUTOSELECT=YES,DEFAULT=NO,CHARACTERISTICS="public.accessibility.describes-video",CHANNELS="2",GROUP-ID="aaclc",URI="master-audio2-128-aaclc.m3u8"


#EXT-X-MEDIA:TYPE=SUBTITLES,NAME="Deutsch",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="de",GROUP-ID="subs",URI="master-sub1.m3u8"

In our tests on HEVC-enabled devices with limited download bandwidth (1.6 Mbps), we found that Exoplayer continues to attempt to play the lowest HEVC renditions (960x540p50). As the download bandwidth is not sufficient, buffering events occur.

Our question: Is it intended that Exoplayer remains in the HEVC codec in its ABR behavior with the given HLS rendition set and does not automatically use a low AVC bandwidth, which would allow smooth playback with limited bandwidth?

Thanks in advance for any information.

Julian

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants