根据这篇文章你只能剪切时间,但不能指定何时从原始视频中剪切。所以结束时间总是错误的。您需要在时间轴上计算每次视频何时结束。
例如
-ss 01:30:40 -to 03:03:05
将以错误的顺序剪切视频,因为它不是从视频的 00:00:00
开始计算,而是从 -ss 01:30:40
开始计算
有解决方法吗?
示例命令:
ffmpeg -ss 00:14:15 -an -i "2022-05-30.mp4" -to 01:30:40 -crf 23 -c:v libx264 PART1.mp4
我会在这里损失
14:15
分钟,这显然是一个错误。
我需要从结束时间中提取 14:15
以获得结果视频的正确时间。当涉及到多个视频编辑时,这真是太烦人了。
FFmpeg 的行为与它的名称完全一样。您的主要问题是缺乏对复杂 FFmpeg 选项结构的理解。具体来说,您正在混合
-ss
input 选项和 -to
output 选项。切入正题,试试这个:
ffmpeg -ss 00:14:15 -to 01:30:40 -i "2022-05-30.mp4" -an -crf 23 -c:v libx264 PART1.mp4
文档非常清楚它们是什么类型的选项(输入/输出/全局)。其中一些,包括
-ss
和 -to
,可以是输入或输出,具体取决于它们的位置。放错位置会导致意想不到的结果,就像您经历过的那样。
FFmpeg 中存在一些挑剔的时序条件问题,但我认为您的情况不属于这些问题。