如何从http live流m3u8文件中提取mp4?我在下面尝试了此命令:
ffmpeg -i {input file} -f rawvideo -bsf h264_mp4toannexb -vcodec copy out.mp4
我遇到了这个错误:
[NULL @ 0000000002f07060]数据包头未包含在全局额外数据,损坏的流或无效的MP4 / AVCC比特流中未能使用编解码器副本为流0打开比特流过滤器h264_mp4toannexb:
如何从http live流m3u8文件中提取mp4?我在下面尝试了此命令:
ffmpeg -i {input file} -f rawvideo -bsf h264_mp4toannexb -vcodec copy out.mp4
我遇到了这个错误:
[NULL @ 0000000002f07060]数据包头未包含在全局额外数据,损坏的流或无效的MP4 / AVCC比特流中未能使用编解码器副本为流0打开比特流过滤器h264_mp4toannexb:
Answers:
您的命令完全不正确。输出格式是不是rawvideo
和你不需要的流过滤器h264_mp4toannexb
时,你要转换的,其使用h264
包含在mp4
对Annex B
所使用的格式MPEG-TS
,例如。要改用什么aac_adtstoasc
的AAC
流。
ffmpeg -i http://.../playlist.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4
-t <time>
输入s或hms.ms之后
Aergistal的答案有效,但我发现转换为mp4可能会使某些m3u8视频损坏。如果您遇到此问题,请尝试将它们转换为mkv,稍后再将其转换为mp4。
ffmpeg -i http://...m3u8 -c copy live.mkv
效果很好。就算有人来读这本书。
.ts
也适用安静以及一些流
ffmpeg -i file.mkv file.mp4
但为什么要这样做呢?
m3u8
文件,我还必须在前面添加白名单,例如:ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i 02.m3u8 -c copy 02.mkv