ffmpeg select 来自 m3u8 的特定语言的最高质量视频轨道和音频轨道

ffmpeg select highest quality video track and audio track in specific language from m3u8

我有一堆 .m3u8 文件,其中包含不同分辨率和比特率的视频轨道,以及不同语言的音频轨道。 我想要 select 最高质量的视频流和指定语言的音轨(如果可用)。

我知道如何select音轨,目前我使用

-map 0:m:language:en? 

像这样

ffmpeg -re -protocol_whitelist file,http,https,tcp,tls -i .\some_file.m3u8 -codec:a aac -c:v copy -f flv -map 0:m:language:en? rtmp://foo.com:1935/live/xyz

如果指定的音频语言可用,我将只流式传输音频,如果不可用,则使用默认配置的音频和视频。

我想在两种情况下都流式传输最佳视频轨道(默认情况下 ffmpeg 选择的那个)。

通常,这需要链接的 ffmpeg 命令,

ffmpeg -protocol_whitelist file,http,https,tcp,tls -i .\some_file.m3u8 -c copy -map 0:v -map 0:m:language:en? -f mpegts - | ffmpeg -re -f mpegts -i - -c:v copy -c:a aac -f flv rtmp://foo.com:1935/live/xyz