来自http直播m3u8文件的FFMPEG mp4? [关闭]

Posted

技术标签:

【中文标题】来自http直播m3u8文件的FFMPEG mp4? [关闭]【英文标题】:FFMPEG mp4 from http live streaming m3u8 file? [closed] 【发布时间】:2015-12-08 07:37:22 【问题描述】:

如何从 http 直播 m3u8 文件中提取 mp4?我在下面尝试了这个命令:

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

我犯了这个错误:

[NULL @ 0000000002f07060] 全局额外数据中不包含数据包标头、损坏的流或无效的 MP4/AVCC 比特流无法使用编解码器副本打开流 0 的比特流过滤器 h264_mp4toannexb:I

【问题讨论】:

你可以使用这个扩展chrome.google.com/webstore/detail/hls-downloader/… 【参考方案1】:

您的命令完全不正确。输出格式不是rawvideo,并且您不需要将mp4 中包含的h264 转换为MPEG-TS 使用的Annex B 格式时使用的比特流过滤器h264_mp4toannexb例子。您要改用 aac_adtstoasc 来代替 AAC 流。

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

【讨论】:

您好,这个答案帮助我从 m3u8 url 录制实时流,视频也保存在 output.mp4 中。我的问题是我们可以在这个命令中以秒/分钟为单位指定时间,以便保存的视频是指定的时间。目前它一直在录制并停止,直到我在控制台中按 q。提前致谢 @Mayuri -t <time> 在 s 或 hms.ms 中输入后 嘿任何人都可以帮助我获得相同案例的下载进度【参考方案2】:

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

【讨论】:

我发现ffmpeg -i http://...m3u8 -c copy live.mkv 效果很好。就在有人过来读这个的时候。 @blackmiacool:如何以编程方式实现这一目标? .ts 在某些流中也很安静 如果您有 https:// 地址,请将其更改为 http:// 否则您会收到“HTTP 错误 403 禁止”错误... 将 MKV 转换为 MP4 只需使用 ffmpeg -i file.mkv file.mp4 但为什么应该这样做吗? 在本地m3u8文件的情况下,我还必须在前面添加一个白名单,例如:ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i 02.m3u8 -c copy 02.mkv

以上是关于来自http直播m3u8文件的FFMPEG mp4? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg总结用ffmpeg进行切片生成m3u8索引文件

使用ffmpeg转码MP4至m3u8格式并切片,以及自动检测切片m3u8脚本编写

使用ffmpeg转码MP4至m3u8格式并切片,以及自动检测切片m3u8脚本编写

ffmpeg 求把m3u8如优酷的转为 mp4的命令行

cmd合并多个ts文件,ffmpeg快速转ts为mp4文件,通过m3u8合并文件

Windows平台下使用ffmpeg和segmenter实现m3u8直播点播