使用 ffmpeg 剪切视频:长度不准确

Enn*_*enn 9 video ffmpeg

我试图从 00:03:00 位置开始从视频 test.wmv(10 分钟长度)中剪切 5 秒长的片段。所以我使用了以下 ffmpeg 命令。

ffmpeg -ss 00:03:00 -t 00:00:05 -i test.wmv -acodec libmp3lame -vcodec copy 1.wmv
Run Code Online (Sandbox Code Playgroud)

但它给了我一个长 11 秒的输出 wmv,这是指定持续时间的两倍。

我究竟做错了什么?任何的想法?

谢谢

Beh*_*far 9

-ssand-t-c copyor一起使用时经常发生这种情况-codec copy

不要使用copy, 并使用其他编解码器或干脆不指定-c,-codec选项。这不会发生。

例如: ffmpeg -ss 00:03:00 -t 00:00:05 -i test.wmv -acodec libmp3lame -vcodec libx264 1.mp4

  • 是的。这意味着(部分)原始视频流没有按原样使用。相反,它被解码然后再次编码,导致质量损失。更糟糕的是,如果没有为编码器指定额外的参数,它可能看起来更糟糕*很多*。 (3认同)

Raj*_*jib 5

将开始和结束参数放在输入之后。这应该会使其更加准确。

ffmpeg -i test.wmv -ss 00:03:00 -to 00:03:05 -c copy 1.wmv
Run Code Online (Sandbox Code Playgroud)

-t选项表示达到此持续时间。我用了-to。所以在你的情况下应该是

-to 00:03:05
Run Code Online (Sandbox Code Playgroud)

另外,我没有更改原始的音频编解码器。那应该有效。