是否可以使用ffmpeg从视频的开头修剪X秒(长度未指定)?


20

我需要修剪一系列长度不定的FLV录音的前1或2秒。我发现有很多资源可用于从视频中提取指定的时长(例如30秒的剪辑),但没有资源可用于继续播放视频的结尾。

这两种尝试都只是产生了视频的复制版本,没有必要的修整:

ffmpeg -ss 2 -vcodec copy -acodec copy -i input.flv output.flv

ffmpeg -ss 2 -t 120 -vcodec copy -acodec copy -i input.flv output.flv

关于第二个问题的想法是:也许如果我指定的长度超出了可能的范围,那它就结束了。没有骰子。

我知道编解码器或使用秒而不是时间码都不是问题,因为以下代码很有吸引力:

ffmpeg -ss 2 -t 5 -vcodec copy -acodec copy -i input.flv output.flv

还有其他想法吗?我愿意使用其他(基于Windows的)命令行工具,但是强烈建议使用ffmpeg,因为我已经在使用ffmpeg来创建缩略图并且对此非常熟悉。

如果有帮助,我的视频将全部在2分钟以内。

更新:

我已经切换到使用Mencoder(http://www.mplayerhq.hu/),因为ffmpeg看起来如果没有一些额外的技巧就无法完成此任务。

Mencoder可以完成我的任务的语法是:

mencoder.exe -ss 2 -oac copy -ovc copy input.flv -o output.flv

因此,您更喜欢哪个?mencoder上面的例子;还是ffmpeg下面的例子?
声音

Answers:


16

尝试:

ffmpeg -i input.flv -ss 2 -vcodec copy -acodec copy output.flv

我认为输入参数应该是第一个。


感谢您的回复。我在上面使用的参数顺序提供了相同的结果,因此我认为不是顺序。放弃ffmpeg之后,我的关键帧间隔导致了其他工具的问题。在刚刚再次讨论之后,这毕竟是关键帧间隔。之前设置为5秒,此后我设置为1秒。在5秒时,您的命令和我上面尝试的命令在开始时都会产生黑色空间(值得3秒,毫不奇怪)。在1秒钟,它可以正常工作。
marcelebrate 2011年

这也适用于mp3
geotheory,2015年

4
FFmpeg Seeking中所述-i在复制甚至使用旧版FFmpeg进行转码时,使用-ss作为输入参数(在之前)都使用关键帧搜索。这要快得多,但是会牺牲准确性。如果将其用作输出参数,则该过程可能会慢得多(即使是丢弃的部分,输入也会逐帧解码),但是很准确。即使问题很老,我认为这应该是公认的答案。
Jonathan Y.

23

事实证明,此命令将按预期从2秒开始修剪视频:

ffmpeg -i input.flv -ss 2 -vcodec copy -acodec copy output.flv

问题出在input.flv中的关键帧间隔。设置为5秒,在视频开始时会产生3秒的黑框(5-2 = 3)。此后,我将关键帧间隔更改为1秒,尽管在我的情况下2秒也可能会产生所需的结果。

更新:更新了Dave答案的排序-i-ss参数,这已得到我的认可。


2
我也有这个问题。这篇文章对我有用。我咬紧牙关,停止尝试将其-vcodec copy -acodec copy用于所有编辑命令。重新编码可以防止黑帧从我的视频开始出现,或者无法切入正确的位置(重新编码的情况下,一秒钟的差异转化为视频中几乎五秒钟的差异)。因此,我最终替换-vcodec copy-vcodec libx264 -crf 0
亨迪

2
我刚遇到同样的事情。我发现不能仅仅-vcodec copy因为切片不是从关键帧开始。直到下一个关键帧,N秒钟我都获得了静止图像或黑色图像。如果我实际上是重新编码而不是复制,它会按预期工作。因此,即使我的输入和输出都是H264,我仍然需要重新编码(使用-vcodec libx264代替-vcodec copy)。
卡尔·威尔伯

达夫斯的答案是最新版本的ffmpeg的正确答案。该-i应在之前-ss
Arete


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.