2015-09-11 133 views
32

如何从http live streaming m3u8文件中提取mp4?我试过下面这条命令:FFMPEG mp4来自http live streaming m3u8文件?

ffmpeg -i {input file} -f rawvideo -bsf h264_mp4toannexb -vcodec copy out.mp4 

我把这个错误:

[NULL @ 0000000002f07060] Packet header is not contained in global extradata, corrupted stream or invalid MP4/AVCC bitstream Failed to open bitstream filter h264_mp4toannexb for stream 0 with codec copy: I

回答

81

你的命令完全是伪造的。输出格式不是rawvideo,您不需要比特流筛选器h264_mp4toannexb,当您要将mp4中包含的h264转换为MPEG-TS所使用的Annex B格式时,将使用此格式。您想要使用的是AAC流的aac_adtstoasc

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

你好,这个答案帮助我记录来自m3u8网址的实况流,并且视频也被保存在output.mp4中。我的问题是我们可以在这个命令中以秒/分钟为单位指定时间,以便保存的视频具有指定的时间。目前它继续录制并停止,直到我在控制台中按q。谢谢 –

+0

@Mayuri'-t

+0

@MayuriRuparel:如何记录实时流m3u8并保存为mp4 –

5

Aergistal的答复工作,但我发现,转换成MP4可以做一些M3U8视频打破。如果您遇到此问题,请尝试将它们转换为mkv,并稍后将它们转换为mp4。

+8

我发现'ffmpeg -i http://...m3u8 -c copy live.mkv'非常好用。只要有人来这里读一读。 – rwenz3l

+0

@blackmiacool:怎样才能实现这个编程? –