我需要从一个位置到另一个位置从音频文件中剪切部分。当我尝试这个命令时
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(使用 gcc 4.7.2 构建于 2017 年 1 月 19 日 11:13:36)。当我尝试更新它(apt-get install ffmpeg)时,它告诉我“ffmpeg 已经是最新版本”。
最佳答案
使用 FFmpeg,参数的顺序很重要。直接出现在输入之前的所有参数都将应用于该输入。输出也是如此……直接应用于输出之前的参数。
考虑这个命令行:
ffmpeg -ss 132 -i input.mp3 output.mp3
-ss
是要查找的参数,因此 FFmpeg 会将输入文件查找到 132 秒,并在 00:00:00
处有效处理.与输出相关的其余 FFmpeg 命令不知道也不关心输入来自何处或如何查找。因此,当您使用 -to
或 -t
, 给出的时间或长度需要是 相对于输入 .也就是说,如果您想要从 132 到 139 的秒数,您需要寻找 132 的输入( -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
你可以处理你的包管理器和依赖 hell ,或者根据你的许可限制,获取最近的静态构建:https://www.johnvansickle.com/ffmpeg/
最后,考虑
-acodec copy
确保您不会通过转码进一步损害音频质量,因为您保持相同的格式。
关于audio - 使用 ffmpeg 从/到位置剪切音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508055/