ffmpeg,将音频拉伸到 x 秒

Max*_*mit 5 audio ffmpeg ffprobe

我正在尝试使音频文件恰好为 x 秒。

到目前为止,我尝试atempo通过执行以下计算来使用过滤器

Audio length / desired length = atempo.

但这并不准确,我必须手动调整速度以使其精确匹配。

有没有其他解决方案来完成这项工作?还是我这样做不正确?

我的原始文件是 wav 文件,而我的输出是 mp3

这是一个示例命令

ffmpeg -i input.wav -codec:a libmp3lame -filter:a "atempo=0.9992323" -b:a 320K output.mp3
Run Code Online (Sandbox Code Playgroud)

更新。

通过改变我接收音频长度的方式,我能够正确计算速度。

我现在正在使用实际文件大小和采样率计算当前音频长度。

音频长度 = 文件大小 /(采样率 * 2)

采样率类似于 16000 Hz。您可以通过使用 ffprob 或 ffmpeg 来获得它。

编辑 - 已解决

弄清楚了。我错误地计算了速度。

Audio length / desired length = atempo
Run Code Online (Sandbox Code Playgroud)

应该

desired length / Audio length = atempo
Run Code Online (Sandbox Code Playgroud)

我不得不多读一点关于节奏的实际作用。希望这可以帮助某人。

vin*_*zee 0

您计算的节奏不正确。

Audio length / desired length = atempo
Run Code Online (Sandbox Code Playgroud)

应该:

desired length / Audio length = atempo
Run Code Online (Sandbox Code Playgroud)

此答案是由 OP Max Doumit在 CC BY-SA 3.0 下作为对问题ffmpeg,将音频拉伸到 x 秒的编辑发布的。