FFmpeg维基百科在提到“如何高效分割视频”时链接回了这个页面。我对这个页面是否能回答这个问题表示怀疑,所以我按照@AlcubierreDrive的建议进行了比较。
前言(2023年):“快速”定位
以下比较是使用输出定位进行编写的。通过在输入文件之前添加-ss
进行“快速定位”(输入定位),它们可以更加快速。
在FFmpeg 2.1之前,这种类型的定位可能不准确,但现在不再是这样了。
比较:一个命令与两个独立命令
echo "Two commands"
time ffmpeg -v quiet -y -i input.ts -vcodec copy -acodec copy -ss 00:00:00 -t 00:30:00 -sn test1.mkv
time ffmpeg -v quiet -y -i input.ts -vcodec copy -acodec copy -ss 00:30:00 -t 01:00:00 -sn test2.mkv
echo "One command"
time ffmpeg -v quiet -y -i input.ts -vcodec copy -acodec copy -ss 00:00:00 -t 00:30:00 -sn test3.mkv \
-vcodec copy -acodec copy -ss 00:30:00 -t 01:00:00 -sn test4.mkv
哪个输出...
Two commands
real 0m16.201s
user 0m1.830s
sys 0m1.301s
real 0m43.621s
user 0m4.943s
sys 0m2.908s
One command
real 0m59.410s
user 0m5.577s
sys 0m3.939s
我测试了一个SD和HD文件,经过几次运行和一点数学计算。
Two commands SD 0m53.94
One command SD 0m49.63
Two commands SD 0m55.00
One command SD 0m52.26
Two commands SD 0m58.60
One command SD 0m58.61
Two commands SD 0m54.60
One command SD 0m50.51
Two commands SD 0m53.94
One command SD 0m49.63
Two commands SD 0m55.00
One command SD 0m52.26
Two commands SD 0m58.71
One command SD 0m58.61
Two commands SD 0m54.63
One command SD 0m50.51
Two commands SD 1m6.67s
One command SD 1m20.18
Two commands SD 1m7.67
One command SD 1m6.72
Two commands SD 1m4.92
One command SD 1m2.24
Two commands SD 1m1.73
One command SD 0m59.72
Two commands HD 4m23.20
One command HD 3m40.02
Two commands SD 1m1.30
One command SD 0m59.59
Two commands HD 3m47.89
One command HD 3m29.59
Two commands SD 0m59.82
One command SD 0m59.41
Two commands HD 3m51.18
One command HD 3m30.79
SD文件 = 1.35GB的DVB传输流
HD文件 = 3.14GB的DVB传输流
结论
如果你处理的是高清文件,使用单一命令更好,这符合手册中关于在输入文件后使用-ss进行“慢速搜索”的建议。标清文件之间几乎没有差别。