如何使用 ffmpeg 在远程文件上快速跳过/向前搜索?

如何使用 ffmpeg 在远程文件上快速跳过/向前搜索?

我正在使用 ffmpeg 读取几个远程视频文件并保存它们的短片段。例如,如果我想在 30 分钟处截取一小时长视频的 5 秒片段,我会创建如下命令:

ffmpeg -ss 1800 -i "http://example.com/example.mp4" -ss 0 -t 5 -c:v copy -c:a copy out.mp4

它运行良好,但是需要很长时间,因为它似乎只是从一开始就开始下载,并在到达我想要的点时完成。

我怎样才能让 ffmpeg(或者可能是另一个实用程序?)跳到我想要的视频点而不是流式播放整个视频?我认为这是可能的,因为 flash 视频播放器能够做到这一点。

答案1

您发布的命令确实可以正确有效地处理远程视频(例如来自 youtube 的视频)。也许更新的服务器ffmpeg功能更强大,或者您尝试的服务器不支持使用 HTTP 范围请求进行搜索。

一个工作示例,使用youtube-dl

video=`youtube-dl -g eRsGyueVLvQ -f best`
ffmpeg -ss 438 -i "$video" -ss 0 -t 5 -c:v copy -c:a copy out.mp4

相关内容