使用ffmpeg将音频从位置切换到位置

使用ffmpeg将音频从位置切换到位置

问题描述:

我需要从位置到位置的音频文件中剪切零件。当我试图此命令使用ffmpeg将音频从位置切换到位置

ffmpeg -ss 132 -t 139 -i original.mp3 new.mp3 

它开始在第二个132,并添加下一个139秒到新的文件。

我需要的是从第二个132到139秒

,当我试图

ffmpeg -ss 132 -to 139 -i original.mp3 new.mp3 

它给了我一个错误:

Unrecognized option 'to' 
Failed to set value '139' for option 'to' 

(我不想告诉多少秒,只是从/到)。

- 我有ffmpeg版本0.8.20-6:0.8.20-0 + deb7u1(建立于2017年1月19日11:13:36与gcc 4.7.2)。当我尝试更新它(apt-get install ffmpeg)时,它告诉我“ffmpeg已经是最新版本”。

-ss是输入选项,而-t-to是输出选项。所以,你需要这样做:

ffmpeg -ss 60 -i 'les nuits 128k.m4a' -to 70 -c copy out.m4a 
+0

它给了我一个错误:无法识别的选项'到',无法为选项'设置'的值'139' - 并且没有创建输出文件 – Mike

+0

@Mike是4年前添加的,所以这是你的问题http://github.com/FFmpeg/FFmpeg/commit/2d70446 –

+0

正如我上面所示,我有该软件的最新版本。那么你认为这个问题是什么? – Mike

的ffmpeg -i “original.mp3” -ss 60 -to 70 “new.mp3”

这对我的作品。

+0

请注意,这是一种非常低效的方式来寻求。在开始输出之前寻找输入要高效得多。 – Brad

对于FFmpeg,参数的排序很重要。所有直接在输入之前出现的参数都将应用于该输入。直接应用于输出之前,输出参数也是如此。

考虑一下这个命令行:

ffmpeg -ss 132 -i input.mp3 output.mp3 

-ss是寻求参数,因此FFmpeg的将寻求在输入文件到132秒,并在00:00:00有效治疗这一点。相对于输出的其余FFmpeg命令不知道或不关心输入来自哪里或如何找到输入。因此,当您使用-to-t时,给定的时间或长度需要为,相对于输入。也就是说,如果您想要秒132到139,则需要查找139(-ss 132 -i input.mp3)的输入,然后运行输出7秒(-t 7 output.mp3-to 00:00:07 output.mp3)。

你可以阅读更多关于这一点,以及有关的详细信息帧精确的文档或不(再编码与否):https://trac.ffmpeg.org/wiki/Seeking

至于-to不在那里......

As I shown above, I have the latest version of the software.

你绝对肯定做不是远程有FFmpeg的最新版本。您可能拥有任何分支管理器所拥有的最新版本,并且它可能已在今年建成,但如果您检查下载页面,则截至本文撰写的最新版本是3.3.4。https://www.ffmpeg.org/download.html

您可以与您的包管理系统和依赖地狱处理,或根据您的许可限制,捡最近的静态编译:https://www.johnvansickle.com/ffmpeg/

最后,考虑-acodec copy确保你不伤害质量您的音频进一步通过转码,因为你保持相同的格式。

+2

对不起。不知道你对小编辑敏感,以提高准确性。 – LordNeckbeard

+0

@LordNeckbeard我不是,但那不仅仅是一个小小的修改,也没有为我已经写过的内容添加任何实质内容,并且增加了一些本来归功于我的附加意见。 (我并不是不同意你的看法:笨蛋,不是,我只是希望你把评论留下来作为你的评论。) – Brad