我正在尝试使用ffmpeg下载m3u8流并将其转换为mp4。我第一次尝试的命令是
ffmpeg -i MIE.m3u8 -c copy -bsf:a aac_adtstoasc -safe 0 -protocol_whitelist file,http,https,tcp,tls,crypto MIE.mp4
(请参见下文MIE.m3u8
的内容)
此错误立即失败
[https @ 0x7fb419607d40] Protocol 'https' not on whitelist 'file,crypto'!
MIE.m3u8: Invalid argument
(请注意,内存地址每次都会更改。)
我发现-protocol_whitelist
标志并将-protocol_whitelist file,http,https,tcp,tls,crypto
附加到我的命令
ffmpeg -i MIE.m3u8 -c copy -bsf:a aac_adtstoasc -safe 0 -protocol_whitelist file,http,https,tcp,tls,crypto MIE.mp4
但这仍然导致了相同的错误。
为什么ffmpeg
似乎忽略protocol_whitelist
标志和参数?
MIE.m3u8
(我设法从我试图抓取视频的website获取)看起来像这样:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=508000,RESOLUTION=640x360,CODECS="avc1.77.30, mp4a.40.2"
https://nhk-vh.akamaihd.net/i/das/D0005140/D0005140255_00000_V_000.f4v/index_0_av.m3u8?null=0&id=AgBdrl8GX2UAVyUXA1tF7MYlFTbSF88WtA7oAMDksTsiVdAKPuuREVfi8iXMsOWFp6eQU2sk6dnE9g%3d%3d
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=47000,CODECS="mp4a.40.2"
https://nhk-vh.akamaihd.net/i/das/D0005140/D0005140255_00000_V_000.f4v/index_0_a.m3u8?null=0&id=AgBdrl8GX2UAVyUXA1tF7MYlFTbSF88WtA7oAMDksTsiVdAKPuuREVfi8iXMsOWFp6eQU2sk6dnE9g%3d%3d
答案 0 :(得分:7)
将-protocol_whitelist file,http,https,tcp,tls
设为第一个参数。
ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i MIE.m3u8 -c copy -bsf:a aac_adtstoasc MIE.mp4
我找不到任何关于此的官方文档,但在输入之前指定protocol_whitelist
时它可以正常工作。
¹但我从Alexander Strasse那里得到了Debian Bugs discussion board的想法。