2017-08-14 57 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