audio - 使用 ffmpeg 从/到位置剪切音频

标签 audio ffmpeg mp3 cut

我需要从一个位置到另一个位置从音频文件中剪切部分。当我尝试这个命令时

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/

相关文章:

.net - 使用CSCore lib获取MP3文件样本数据和信息

c - 为什么 portaudio 会突然返回回调?

javascript - 对象方法中的局部变量音频不播放

macos - YUV到mp4的转换

Flutter:如何使用flutter_ffmpeg为视频添加水印和文字等叠加层?

javascript - HTML5 网络应用程序中的音频文件播放列表?

c# - 从 FLV 中提取音频数据并注入(inject) MP3

c# - 如何播放 Windows 通知声音? (它未在 System.Media.SystemSounds 中定义)

ffmpeg rtmp流问题

java - 如何使用Java通过Mac OS Terminal运行命令