我试图从视频 test.wmv(10 分钟长度)中从 00:03:00 位置开始剪切一段 5 秒长的片段。因此我使用了以下 ffmpeg 命令。
ffmpeg -ss 00:03:00 -t 00:00:05 -i test.wmv -acodec libmp3lame -vcodec copy 1.wmv
但是它给我的输出 wmv 比指定时长长 11 秒,是指定时长的两倍。
我做错了什么?有什么想法吗?
谢谢
答案1
-ss
当and-t
与-c copy
or一起使用时经常会发生这种情况-codec copy
。
不要使用copy
,而使用其他编解码器或者根本不指定选项-c
。-codec
这样就不会发生这种情况。
例如:ffmpeg -ss 00:03:00 -t 00:00:05 -i test.wmv -acodec libmp3lame -vcodec libx264 1.mp4
答案2
将开始和结束参数放在输入之后。这应该会使其更加准确。
ffmpeg -i test.wmv -ss 00:03:00 -to 00:03:05 -c copy 1.wmv
该-t
选项表示达到此持续时间。我使用了-to
。因此,对于你的情况,应该是
-to 00:03:05
另外,我没有更改原来的音频编解码器。这样应该可以。
答案3
我使用@Rajib 指南构建了一个查询,该查询可以完美地修剪具有精确持续时间/长度的视频
-i input_path -ss 00:00:00 -to 00:00:07 -c copy -copyts output_path
附加参数是为了维持输出视频质量。