[Libav-user] hls playlist stream selection

Julian Wiesler udnjc at student.kit.edu
Fri Oct 14 02:16:21 EEST 2022

Hi all,

I'm new here and this is my first message, so please be kind if I forgot 
something :)

I have a problem with hls playlists (or m3u8?). The example I'm using is 
a twitch stream, doesn't matter which one. FFmpeg version shouldn't 
matter either, I tested a wide range of them.

When using a normal input created by avformat_open_input, the only audio 
option returned is a 44100 Hz stream. However, this stream switches to 
48000 Hz after 10-50 seconds without any warning, the decoder suddenly 
has a sample_rate of 48000. This is confusing, since I can't react to it 
and don't know why it happens. Furthermore, it breaks any filters 
attached to the input since they don't support live sample rate switches.

The command line tool automatically selects an url with sample rate 
48000 when "-ar 48000" is given and a stream with 44100 without the 
option. The weird switch still happens when using 44100, but it simply 
recreates all filters when it happens. This is not an option when using 
filters like loudnorm. The 48000 Hz stream stays on 48000 Hz forever.

My question is: How does the command line tool select an 48000 Hz stream 
when I'm not even given the option when using the library? I've done 
some digging in the code and my best guess is that I need to set some 
option in the dictionary passed to avformat_open_input or 

Thanks in advance
Julian Wiesler

More information about the Libav-user mailing list