使用ffmpeg剪切音频from/to位置
Using ffmpeg to cut audio from/to position
我需要从音频文件中逐个剪切部分。当我尝试这个命令时
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'
(我不想说要多少秒,只是from/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 is already the newest version".
-ss
是输入选项,而-t
和-to
是输出选项。所以你需要这样做:
ffmpeg -ss 60 -i 'les nuits 128k.m4a' -to 70 -c copy out.m4a
ffmpeg -i "original.mp3" -ss 60 -to 70 "new.mp3"
这对我有用。
对于 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
你可以处理你的包管理器和依赖地狱,或者根据你的许可限制,获取最近的静态构建:https://www.johnvansickle.com/ffmpeg/
最后,考虑 -acodec copy
以确保您不会因转码而进一步损害音频质量,因为您要保持相同的格式。
这对我有用
ffmpeg -ss 60 -i input-audio.aac -t 15 -c copy output.aac
- -ss 60 表示,"start from second 60"
- -t 15 音频输出长度(以秒为单位)..在这种情况下,15 秒..
到 Trim 使用 FFmpeg
的音频文件
开始持续时间 = 00:00:00,
结束持续时间 = 00:00:10
audioPath = audio.mp3,
mp3Output = outputFile.mp3
cmd = "-ss $startDuration -i $audioPath -c copy -t $endDuration $mp3Output"
我需要从音频文件中逐个剪切部分。当我尝试这个命令时
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'
(我不想说要多少秒,只是from/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 is already the newest version".
-ss
是输入选项,而-t
和-to
是输出选项。所以你需要这样做:
ffmpeg -ss 60 -i 'les nuits 128k.m4a' -to 70 -c copy out.m4a
ffmpeg -i "original.mp3" -ss 60 -to 70 "new.mp3"
这对我有用。
对于 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
你可以处理你的包管理器和依赖地狱,或者根据你的许可限制,获取最近的静态构建:https://www.johnvansickle.com/ffmpeg/
最后,考虑 -acodec copy
以确保您不会因转码而进一步损害音频质量,因为您要保持相同的格式。
这对我有用
ffmpeg -ss 60 -i input-audio.aac -t 15 -c copy output.aac
- -ss 60 表示,"start from second 60"
- -t 15 音频输出长度(以秒为单位)..在这种情况下,15 秒..
到 Trim 使用 FFmpeg
的音频文件开始持续时间 = 00:00:00, 结束持续时间 = 00:00:10
audioPath = audio.mp3, mp3Output = outputFile.mp3
cmd = "-ss $startDuration -i $audioPath -c copy -t $endDuration $mp3Output"