如何将 m3u8 播放列表文件转换为视频片段

Ket*_*tan 1 ffmpeg

我一直试图找出解决方案,但无法找到如何从给定的 m3u8 文件中提取视频片段(例如 mp4)的解决方案,其中视频从某个偏移量开始并具有特定的持续时间。希望有人能帮忙。

我试过这个:

ffmpeg -i http://foo.herokuapp.com/input_test.m3u8 -acodec copy -vcodec copy  -y -loglevel info -f mp4 myNewVideo.mp4
Run Code Online (Sandbox Code Playgroud)

它生成视频,但现在我需要它从特定的偏移量开始,并且需要持续特定的持续时间。我知道偏移量可能需要 -ss 标志,但它似乎不起作用。

aer*_*tal 5

从 30 秒 ( -ss)开始,持续时间为 10 秒 ( -t)的捕获示例。

如果输入的 HLS 播放列表是VOD类型,您可以执行以下操作:

ffmpeg -ss 00:00:30 -i http://foo.herokuapp.com/input_test.m3u8 -t 10 -c copy -bsf:a aac_adtstoasc -flags +global_header -y output.mp4

如果输入是实时流,则:

ffmpeg -i http://foo.herokuapp.com/input_test.m3u8 -ss 00:00:30 -t 10 -c copy -bsf:a aac_adtstoasc -flags +global_header -y output.mp4

在第二种情况下(-ssafter -i)在输出上完成搜索。

如果您想避免在执行命令时一次获取最新的 3 个片段,您还可以为实时流添加一个-rebefore -i