我有一堆.m3u8文件,包含不同分辨率和比特率的视频轨道,以及不同语言的音轨。我想选择最高质量的视频流,如果可用,则选择指定语言的音轨。
我知道如何选择当前我使用的音轨
-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