我非常喜欢FFmpeg修剪视频的方式,所以如果有人能帮助我,我会非常感激.基本上,我想要做的是:我有一个视频序列,我希望它在某一秒停止,冻结图像几秒钟(如暂停),然后再从同一帧完全再现.我可以说我正在处理三个视频:A.mp4(视频序列的第一部分),B.mp4(冻结图像)和C.mp4(视频序列的第二部分).此外,我还使用filter_complex执行叠加.
从静态图像生成视频的部分不是问题,我主要关注的是找到准确修剪和连接视频的方法.从其他帖子和来源,我发现FFmpeg修剪来自那些可以被强制的关键帧框架.但是,我获得的结果不合适,因为我的视频A以不同于C开头的帧结束.
我使用的命令如下:
ffmpeg -y -i VideoSequence.mp4 -c:v libx264 -pix_fmt yuv420p \
-force_key_frames "expr: gte(t,n_forced * 15)" -t 30 VideoOut.mp4
Run Code Online (Sandbox Code Playgroud)
[请注意,Filter Complex内部的所有内容都是关于Overlay,它工作正常]
据我所知,生成的视频应该每隔15秒就有一个Keyframe.现在,我想将视频分为两部分("在第二个15之前"和"在第二个15之后"):
ffmpeg -y -ss 00:00:01 -i VideoOut.mp4 -t 14 -c copy A.mp4
ffmpeg -y -ss 00:00:15 -i VideoOut.mp4 -t 5 -c copy C.mp4
Run Code Online (Sandbox Code Playgroud)
如上所述,我期望A.mp4的结束与C.mp4的开头"匹配"(以帧精度),但我获得的结果远非完美.
非常感谢,任何形式的帮助将不胜感激!
ffmpeg ×1