2017-08-14 207 views
0

我使用ffmpeg从flac文件制作mp3。对我来说,这通常很嘈杂。FFMPEG在重新采样音频时发生扭曲

今晚,出于某种原因,当我使用我一直使用的相同命令时,转换后的音频失真。故障排除后,看起来问题在于“-out_sample_rate”标志。

我的命令:

ffmpeg -i input.flac -write_id3v1 1 -id3v2_version 3 -dither_method modified_e_weighted -out_sample_rate 44.1k -b:a 320k output.mp3 

在MP3音频,然后通过不得了导致数字削一顶进增益失真。

我试过更新ffmpeg,然后问题依然存在。我试过将各种采样率(44.1k源文件,48k源文件,96k源文件)转换为44.1k和48k mp3,每当出现转换时都会出现问题。

我在macOS上,我通过自制软件安装了ffmpeg。

任何想法?

+0

将“-out_sample_rate 44.1k”更改为“-ar 44100”的结果相同。 – jsamsf

+0

分享完整的日志。你有没有测试一个文件,这个命令早先转换得很好? – Mulvya

+0

您的“旧”文件是否仍然有效?如果是这样,那么我会提交一个样本到ffmpeg trac,因为“这是坏的”... – rogerdpack

回答

0

你确定失真来自重采样吗?

即使最差的重采样算法也不会扭曲。较差的重采样造成的更典型的伪影是由于混叠和量化噪声造成的严酷的高频。

FFmpeg的重采样器不是最好的,但它根本不坏。它不应该导致失真。足够平均使用。

源文件有多少空间?

如果不够,重采样或MP3转换可能会导致削波。 MP3编码器从信号中去除频率(即使在320kbps时),因此波形将会改变。

因此,将编码后的MP3重新导入音频编辑器并查找剪辑。

如果不知道,这一步的失真来自,分裂的命令,一看,这步导致剪辑:

ffmpeg -i input.flac -write_id3v1 1 -id3v2_version 3 -dither_method modified_e_weighted -out_sample_rate 44.1k intermediate.flac 

ffmpeg -i intermediate.flac -b:a 320k output.mp3 

应该有至少1分贝离开之前,它被转换为净空MP3。如果不是,则降低增益。

如果intermediate.flac的重新采样导致幅度的显着增益,原始input.flac的掌握不足。如果是这样(并且质量非常重要),请在音频编辑器(即Audacity,它执行比FFMpeg更好的重采样任务)中进行SR转换,并在重新采样和抖动步骤之间应用限制器以很好地降低几个强峰值。

如果这没有帮助:input.flac究竟包含什么?音乐?噪声?言语?它是自制的还是从其他东西中取出来的?

+0

要确认,数字剪辑是从增加幅度。 在我发布问题之前,我经历了将命令分开的故障排除,这是我能够将它带回重采样器的方式。当时,它似乎是导致问题的-out_sample_rate标志。再次这样做,它似乎是dither_method,只有三角形和长方形的工作(意思是,没有增加增益)。当然,这又是重新采样者。抖动方法列表:https://ffmpeg.org/ffmpeg-resampler.html – jsamsf