这是原始命令,它删除了命令中指定的开始和结束之间的部分:
ffmpeg -i input.ext -vf "select='not(between(t,start,end))', setpts=N/FRAME_RATE/TB" -af "aselect='not(between(t,start,end))', asetpts=N/SR/TB" output.ext
有没有更好的不需要重新编码的选项?或者至少更快?
请记住,我想要的命令是删除开始和结束之间的部分而不是返回它。
例如,这不是我正在寻找的:
ffmpeg -ss start -i input.mp4 -c copy -t end output.mp4
无需重新编码,使用段格式按关键帧分割,然后连接第一个和最后一个段:
如果是部分重新编码,则仅处理中间部分,然后连接第一部分、转换部分和最后一部分。
-segment_times
在指定时间后寻找关键帧,例如 → 将剪切到 8.4444444 秒,然后从 25.333333 秒开始。编辑:是的,具有出点入点的变体,无需重新编码,按关键帧分割:
要添加编辑的中间段,只需
file edited.mp4
在第一个和最后一个输入之间添加线。出点会在大约 5 秒处切断,入点会在例如 16.888889 秒处切断,并且播放时可能会出现错误的时间
因此,尝试找到下一个关键帧: