从FFMPEG mp4直播流m3u8文件?[关闭]


85

如何从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:


195

您的命令完全不正确。输出格式是不是rawvideo和你不需要的流过滤器h264_mp4toannexb时,你要转换的,其使用h264包含在mp4Annex B所使用的格式MPEG-TS,例如。要改用什么aac_adtstoascAAC流。

ffmpeg -i http://.../playlist.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4

您好,《答案》帮助我记录了m3u8网址的实时流,视频也保存在output.mp4中。我的问题是我们可以在此命令中以秒/分钟为单位指定时间,以便保存的视频具有指定的时间吗?目前,它一直在录音并停止,直到我在控制台中按q为止。在此先感谢
Mayuri Ruparel 16/12/27

1
@Mayuri-t <time>输入s或hms.ms之后
aergistal

嘿,有谁能帮助我在相同情况下获得下载进度
Shivam Parmar

17

Aergistal的答案有效,但我发现转换为mp4可能会使某些m3u8视频损坏。如果您遇到此问题,请尝试将它们转换为mkv,稍后再将其转换为mp4。


32
我发现ffmpeg -i http://...m3u8 -c copy live.mkv效果很好。就算有人来读这本书。
rwenz3l

@blackmiacool:如何以编程方式实现这一目标?
Vineesh TP

.ts也适用安静以及一些流
洪扎[R

1
如果您有一个https://地址,请将其更改为http://,否则会收到“禁止HTTP错误403”错误...只需将MKV转换为MP4,ffmpeg -i file.mkv file.mp4但为什么要这样做呢?
Erich Kuester

3
如果是本地m3u8文件,我还必须在前面添加白名单,例如:ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i 02.m3u8 -c copy 02.mkv
Bill Kotsias
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.