video - 使用 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 秒才看到一个关键帧)。任何帮助将非常感激!
解决方案
好吧,我最终自己解决了这个问题。我最终同时使用了慢速搜索和快速搜索:
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
这使我可以快速从我想要寻找的位置开始(减去几秒钟来考虑关键帧),然后慢慢寻找到我想要的确切位置。
推荐阅读
- c++ - 为什么当我将向量数据复制到另一个向量时程序不断终止?
- kubernetes - Kubeadm - 创建集群后没有端口 6443
- javascript - 使用 jQuery 计算两个动态创建的文本框的总和
- javascript - 如何在 xmlhttprequest 中获取 html 页面作为响应
- php - 当用户尝试通过 URL 访问图像/pdf 文件时如何访问控制器的方法
- django - gettext 的 Django 问题无法读取 .mo 文件
- cassandra - nodetool 快照也拍摄模式快照(备份)?
- c# - 增加 reCaptcha 安全性
- python - 使用 matplotlib 在 sankey 图中连接两个以上系统会使我错位
- git - TFS/VSTS Git Cherry Pick API