2015-09-11 137 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:怎樣才能實現這個編程? –