首页 > 解决方案 > 使用 FFMPEG 将大型 HLS 流传输到 MP4 剪辑

问题描述

我正在尝试从 HLS 流创建剪辑。HLS 流长达 8 小时,剪辑可以在视频中播放数小时。剪辑最多为 1 分钟。此处最相似的答案将整个视频转换为 mp4,这将需要很长时间。这是我到目前为止所拥有的:

ffmpeg -live_start_index 0 -ss 05:22:19.82667 -i https://example.com/main.m3u8 -t 00:00:55.65625 output.mp4

到目前为止,我喜欢这种实现,因为 ffmpeg 在开始拉下片段之前会在视频播放 5 小时后寻找播放列表中的所需位置。

问题是我注意到视频的前几秒经常被暂停(我的猜测是因为 ffmpeg 每 6 秒才看到一个关键帧)。任何帮助将非常感激!

标签: videoffmpegmp4http-live-streamingclip

解决方案


好吧,我最终自己解决了这个问题。我最终同时使用了慢速搜索和快速搜索:

ffmpeg -live_start_index 0 -ss 05:22:19.82667 -i https://example.com/main.m3u8 -ss 00:08:00.00 -t 00:00:55.65625 output.mp4

这使我可以快速从我想要寻找的位置开始(减去几秒钟来考虑关键帧),然后慢慢寻找到我想要的确切位置。


推荐阅读