2016-11-27 74 views
0

我需要混合2個文件:A和B,其結果是文件A的一部分,並且文件B的一部分。FFMPEG自定義音頻混合濾波器

詳細我喜歡輸出是上部的總和文件A和文件B的下部

我需要的是這樣的:

ffmpeg -i A.flac -i B.flac -af "copy all from 0 to -25 dB from 'A', copy all from -25dB to -infinite from file 'B' and put these 2 parts on the output" output.flac 

-25dB是可變的,我可以調整,我想保持文件「A」的體積。

總之我喜歡用文件'B'替換文件'A'的軟背景。

有辦法做到這一點?

謝謝!!!!

回答

0

使用

ffmpeg -i a.wav -i b.wav -filter_complex 
    "[0]agate=range=0:threshold=0.056:ratio=9000:makeup=2[a]; 
    [1]acompressor=threshold=0.056:ratio=20:makeup=2[b]; 
    [a][b]amix" out.wav 

該閾值被計算如下:10 to the power of (decibel value/20)

例如-25 dB將是10^(-25/20) = 10^-1.25 = 0.056

+0

謝謝你,代碼似乎工作部分。印象似乎代碼試圖「檢測」音量並且看起來依賴於時間,但我需要一些獨立於高峯和時間的事情。我不確定是否可以這樣做。 – esposito

+0

不清楚你的意思。你能說明一下嗎? – Mulvya

+0

有些情況下信號'A'切換到'B'。我認爲過濾器檢測到'A'的低音量並將輸出切換到'B',但我喜歡上部> -25 dB總是'A',而下部<-25 db總是'B'。這獨立於音量和時間。從「A」到「B」的「切換」瞬間很容易被聽到。 – esposito