在搜索 U&L 时,我注意到有相当多的问题询问如何编写如下ffmpeg命令行的生成:
ffmpeg -i video.mp4 -ss 00:00:00 -t 00:10:00 -c copy 01.mp4
ffmpeg -i video.mp4 -ss 00:10:00 -t 00:10:00 -c copy 02.mp4
ffmpeg -i video.mp4 -ss 00:20:00 -t 00:10:00 -c copy 03.mp4
Run Code Online (Sandbox Code Playgroud)
在为此研究解决方案时,我在ffmpeg问题跟踪器中偶然发现了这张票,标题为:将输入视频拆分为多个输出视频块。
这张票突出显示了一个补丁,它使您最终能够提供一个时间点列表,以使用这样的单个命令行将视频切割成更小的部分:
$ ffmpeg -i input.avi -f segment -segment_times 10,20,40,50,90,120,180 \
-vcodec copy output02%d.avi
Run Code Online (Sandbox Code Playgroud)
该补丁似乎已在此版本的代码存储库中发布:
commit 2058b52cf8a4eea9bf046f72b98e89fe9b36d3e3
Author: Stefano Sabatini <stefasab@gmail.com>
Date: Sat Jan 28 22:36:38 2012 +0100
lavf/segment: add -segment_times option
Address trac ticket #1504.
Run Code Online (Sandbox Code Playgroud)
我从ffmpeg 站点下载了这个静态构建的ffmpeg …