我一直试图找出解决方案,但不能,如何从给定的m3u8文件中提取视频片段(例如mp4),其中视频从某个偏移开始并具有特定的持续时间。希望有人可以提供帮助。
我试过了:
ffmpeg -i http://foo.herokuapp.com/input_test.m3u8 -acodec copy -vcodec copy -y -loglevel info -f mp4 myNewVideo.mp4
它会生成视频,但现在我需要从特定的偏移开始,它需要持续一段特定的时间。我知道偏移量可能需要-ss标志,但它似乎并没有起作用。
答案 0 :(得分:2)
从30s(-ss
)开始捕获的示例,持续时间为10s(-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
在第二种情况下(-ss
之后-i
)对输出进行搜索。
如果您想在执行命令时避免一次性获取最新的3个段,也可以在-re
之前为实时流添加-i
。