前言
Github地址:Github
簡書地址:簡書
專輯地址:FFplay專輯
26. 音頻過濾器
配置FFmpeg構(gòu)建時,可以使用--disable-filters禁用任何現(xiàn)有過濾器。 配置輸出將顯示構(gòu)建中包含的音頻過濾器。
以下是當(dāng)前可用音頻過濾器的說明。
26.1 acompressor
壓縮器主要用于減小信號的動態(tài)范圍。 特別是現(xiàn)代音樂大多以高比率壓縮以改善整體響度。 這樣做是為了讓聽眾獲得最高的關(guān)注,"fatten"聲音,并為track帶來更多的"power"。 如果信號被壓縮得太多,之后可能聽起來暗淡或"dead",或者它可能開始 "pump"(這可能是一種強(qiáng)大的效果,但也可以完全破壞track)。 正確的壓縮是達(dá)到專業(yè)聲音的關(guān)鍵,是混音和母帶制作的高級藝術(shù)。 由于其復(fù)雜的設(shè)置,可能需要很長時間才能獲得這種效果的正確感覺。
通過檢測高于所選水平threshold(閾)值的體積并將其除以用ratio率設(shè)定的因子來完成壓縮。因此,如果將閾值設(shè)置為-12dB并且信號達(dá)到-6dB,則比率為2:1將導(dǎo)致信號為-9dB。因?yàn)閷π盘柕木_操縱會導(dǎo)致波形失真,所以可以隨時間減小。這是通過設(shè)置“Attack”和“Release”來完成的。attack確定在發(fā)生任何減少之前信號必須超過閾值的時間長度,并且release設(shè)置信號必須降至閾值以下的時間以再次減少減少。比所選擇的攻擊時間更短的信號將保持不變。之后可以通過makeup設(shè)置來彌補(bǔ)信號的整體減少。因此,將信號的峰值壓縮大約6dB并將化妝值提高到該水平會產(chǎn)生兩倍于信號源的信號。為了在壓縮中獲得更柔和的進(jìn)入,knee使硬邊緣在所選分貝范圍內(nèi)的閾值處變平。
過濾器接受以下選項(xiàng):
level_in
設(shè)置輸入增益。默認(rèn)值為1。范圍介于0.015625和64之間。
threshold
如果流的信號超過此水平,則會影響增益降低。默認(rèn)情況下為0.125。范圍介于0.00097563和1之間。
ratio
設(shè)置信號減少的比率。1:2表示如果電平比閾值高出4dB,則在降低后僅為2dB。默認(rèn)值為2。范圍介于1和20之間。
attack
在增益降低開始之前信號必須升高到閾值以上的毫秒數(shù)。默認(rèn)值為20。范圍介于0.01和2000之間。
release
在減少之前信號必須降至閾值以下的毫秒數(shù)再次減少。默認(rèn)值為250。范圍介于0.01和9000之間。
makeup
設(shè)置處理后信號放大的數(shù)量。默認(rèn)值為1。范圍是1到64。
knee
使尖銳的knee在閾值附近彎曲,以更輕柔地進(jìn)入增益減少。默認(rèn)值為2.82843。范圍在1到8之間。
link
選擇輸入流的所有通道之間的平均水平或輸入流的較大(最大)通道是否會影響減少。默認(rèn)值是平均值。
detection
如果是峰值,則應(yīng)該采取確切的信號;如果是均方根,則應(yīng)該采用RMS。默認(rèn)值是rms,大多數(shù)更平滑。
mix
輸出中使用壓縮信號的數(shù)量。默認(rèn)值為1.范圍介于0和1之間。
26.2 acontrast
簡單的音頻動態(tài)范圍壓縮/擴(kuò)展濾波器。
過濾器接受以下選項(xiàng):
contrast
設(shè)置對比度。 默認(rèn)值為33。允許的范圍介于0到100之間。
26.3 acopy
將輸入音頻源不變地復(fù)制到output。 這主要用于測試目的。
26.4 acrossfade
將交叉淡入淡出從一個輸入音頻流應(yīng)用到另一個輸入音頻流。 交叉淡入淡出在第一個流的末尾附近應(yīng)用指定的持續(xù)時間。
過濾器接受以下選項(xiàng):
nb_samples,ns
指定交叉漸變效果必須持續(xù)的樣本數(shù)。 在交叉淡入淡出效果結(jié)束時,第一個輸入音頻將完全靜音。 默認(rèn)值為44100。
duration, d
指定交叉淡入淡出效果的持續(xù)時間。 請參閱(ffmpeg-utils)接受語法的持續(xù)時間語法。 默認(rèn)情況下,持續(xù)時間由nb_samples確定。 如果設(shè)置,則使用此選項(xiàng)而不是nb_samples。
overlap, o
首先應(yīng)該與第二個流開始流結(jié)束重疊。 默認(rèn)值已啟用。
curve1
設(shè)置第一個流的交叉淡入淡出過渡曲線。
curve2
設(shè)置第二個流的交叉淡入淡出過渡曲線。
有關(guān)可用曲線類型的說明,請參閱afade過濾器說明。
26.4.1 示例
-
交叉淡入淡出從一個輸入到另一個輸入:
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac -
從一個輸入交叉淡入淡出但沒有重疊:
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
26.5 acrusher
降低音頻位分辨率。
該過濾器是具有增強(qiáng)功能的bit crusher。bit crusher用于可聽地減少采樣音頻信號的位數(shù)。這根本不會改變位深度,只會產(chǎn)生效果。比特深度減小的材料聽起來更苛刻和"digital"。該濾波器甚至可以舍入到連續(xù)值而不是離散位深度。另外,它具有D/C偏移,這導(dǎo)致信號的下半部分和上半部分的不同壓碎??逛忼X設(shè)置能夠產(chǎn)生 "softer" 的柔和聲音。
該濾波器的另一個特征是對數(shù)模式。此設(shè)置從位之間的線性距離切換到對數(shù)位。結(jié)果是更加"natural"的發(fā)聲crusher,例如它不會接收低信號。人耳具有對數(shù)感,因此這種crushing更令人愉悅。對數(shù)crushing也能夠消除鋸齒。
過濾器接受以下選項(xiàng):
level_in
設(shè)置級別。
level_out
設(shè)置等級。
bits
設(shè)置位減少。
mix
設(shè)定混合量。
mode
可以是線性的:lin或?qū)?shù)的:log。
dc
設(shè)置DC。
aa
設(shè)置抗鋸齒。
samples
設(shè)置樣品減少量。
lfo
啟用LFO。 默認(rèn)情況下禁用。
lforange
設(shè)置LFO范圍。
lforate
設(shè)置LFO費(fèi)率。
26.6 adelay
延遲一個或多個音頻通道。
延遲通道中的樣本充滿了沉默。
過濾器接受以下選項(xiàng):
delays
設(shè)置由|分隔的每個通道的延遲列表(以毫秒為單位)。 未使用的延遲將被默默忽略。 如果給定延遲的數(shù)量小于信道數(shù),則所有剩余信道將不會被延遲。 如果要延遲確切的樣本數(shù),請將'S'附加到數(shù)字。
26.6.1 示例
將第一個通道延遲1.5秒,將第三個通道延遲0.5秒,并保持第二個通道(以及可能存在的任何其他通道)不變。
adelay=1500|0|500
將第二個通道延遲500個樣本,將第三個通道延遲700個樣本,并保持第一個通道(以及可能存在的任何其他通道)不變。
adelay=0|500S|700S
26.7 aecho
將回音應(yīng)用于輸入音頻。
回聲是反射聲音,在談話或喊叫時可以在山脈(有時是大型建筑物)中自然發(fā)生; 數(shù)字回聲效果模擬此行為,通常用于幫助填寫單個樂器或人聲的聲音。 原始信號和反射之間的時間差是延遲,反射信號的響度是衰減。 多個回波可能有不同的延遲和衰減。
接下來的參數(shù)的描述如下。
in_gain
設(shè)置反射信號的輸入增益。 默認(rèn)值為0.6。
out_gain
設(shè)置反射信號的輸出增益。 默認(rèn)值為0.3。
delays
設(shè)置原始信號和以"|"分隔的反射之間的時間間隔列表(以毫秒為單位)。 每個延遲的允許范圍是(0 - 90000.0)。默認(rèn)值是1000。
decays
設(shè)置由"|"分隔的反射信號的響度列表。 每個衰減的允許范圍是(0 - 1.0)。默認(rèn)值是0.5。
26.7.1 示例
-
讓它聽起來好像有兩倍的實(shí)際演奏樂器:
aecho=0.8:0.88:60:0.4 -
如果延遲非常短,那么它聽起來像是一個播放音樂的(金屬)機(jī)器人:
aecho=0.8:0.88:6:0.4 -
較長的延遲聽起來像山區(qū)的露天音樂會:
aecho=0.8:0.9:1000:0.3 -
與上面相同,但還有一座山:
aecho=0.8:0.9:1000|1800:0.3|0.25
26.8 aemphasis
音頻強(qiáng)調(diào)濾鏡創(chuàng)建或恢復(fù)直接從LP或具有不同濾鏡曲線的強(qiáng)調(diào)CD獲取的材質(zhì)。 例如。 為了將音樂存儲在乙烯基上,必須首先通過濾波器改變信號以平衡該記錄介質(zhì)的缺點(diǎn)。 一旦播放了素材,就必須應(yīng)用逆濾波器來恢復(fù)頻率響應(yīng)的失真。
過濾器接受以下選項(xiàng):
level_in
設(shè)置輸入增益。
level_out
設(shè)置輸出增益。
mode
設(shè)置過濾模式。 用于恢復(fù)材料使用reproduction模式,否則使用production模式。 默認(rèn)為reproduction模式。
type
設(shè)置過濾器類型。 Selects medium。 可以是如下所述中的一個:
| 類型 | 解釋 |
|---|---|
| col | select Columbia |
| emi | select EMI |
| bsi | select BSI (78RPM) |
| riaa | select RIAA |
| cd | select Compact Disc (CD) |
| 50fm | select 50μs (FM) |
| 75fm | select 75μs (FM) |
| 50kf | select 50μs (FM-KF) |
| 75kf | select 75μs (FM-KF) |
26.9 aeval
根據(jù)指定的表達(dá)式修改音頻信號。
該過濾器接受一個或多個表達(dá)式(每個通道一個),它們被評估并且用于修改相應(yīng)的音頻信號。
它接受以下參數(shù):
| 參數(shù) | 含義 |
|---|---|
| exprs | 為每個單獨(dú)的通道設(shè)置|分隔表達(dá)式列表。 如果輸入通道的數(shù)量大于表達(dá)式的數(shù)量,則最后指定的表達(dá)式將用于其余輸出通道。 |
| channel_layout,c | 設(shè)置輸出通道布局。 如果未指定,則通道布局由表達(dá)式數(shù)指定。 如果設(shè)置為‘same’,則默認(rèn)情況下將使用相同的輸入通道布局 |
exprs中的每個表達(dá)式都可以包含以下常量和函數(shù):
| 參數(shù) | 含義 |
|---|---|
| ch | 當(dāng)前表達(dá)式的通道號 |
| n | 評估樣本的編號,從0開始 |
| s | 采樣率 |
| t | 評估樣品的時間以秒表示 |
| nb_in_channels | |
| nb_out_channels | 輸入和輸出通道數(shù) |
| val(CH) | 數(shù)字CH的輸入通道的值 |
注意:此過濾器很慢。 為了加快處理速度,建議使用專用過濾器。
26.9.1 示例
-
音量減半:
aeval=val(ch)/2:c=same -
第二個通道的反相:
aeval=val(0)|-val(1)
26.10 afade
將淡入/淡出效果應(yīng)用于輸入音頻。
接下來的參數(shù)的描述如下。
type,t
指定效果類型:in表示淡入效果,out表示淡出效果。默認(rèn)是淡入效果。
start_sample,ss
指定開始應(yīng)用淡入淡出效果的開始樣本的編號。默認(rèn)值為0。
nb_samples,ns
指定淡入淡出效果必須持續(xù)的樣本數(shù)。在淡入效果結(jié)束時,輸出音頻將具有與輸入音頻相同的音量,在淡出過渡結(jié)束時輸出音頻將保持靜音。默認(rèn)值為44100。
start_time,st
指定淡入淡出效果的開始時間。默認(rèn)值為0。必須將值指定為持續(xù)時間;接受語法具體請參閱2.3持續(xù)時間。如果設(shè)置,則使用start_sample選項(xiàng)替代。
duration, d
指定淡入淡出效果的持續(xù)時間。具體的語法請參閱2.3持續(xù)時間。在淡入效果結(jié)束時,輸出音頻將具有與輸入音頻相同的音量,在淡出過渡結(jié)束時輸出音頻將保持靜音。默認(rèn)情況下,持續(xù)時間由nb_samples確定。如果設(shè)置,請使用nb_samples選項(xiàng)。
curve
設(shè)置淡入淡出過渡曲線。
它接受以下值:
| 取值 | 解釋 |
|---|---|
| tri | 選擇三角形,線性斜率(默認(rèn)) |
| qsin | 選擇四分之一的正弦波 |
| hsin | 選擇一半的正弦波 |
| esin | 選擇指數(shù)正弦波 |
| log | 選擇對數(shù) |
| ipar | 選擇倒置拋物線 |
| qua | 選擇二次方 |
| cub | 選擇立方體 |
| squ | 選擇平方根 |
| cbr | 選擇立方根 |
| par | 選擇拋物線 |
| exp | 選擇指數(shù) |
| iqsin | 選擇倒四分之一的正弦波 |
| ihsin | 選擇倒半波的正弦波 |
| dese | 選擇雙指數(shù)座位 |
| desi | 選擇雙指數(shù)sigmoid
|
26.10.1 示例
-
淡入前15秒的音頻:
afade=t=in:ss=0:d=15 -
淡出900秒音頻的最后25秒:
afade=t=out:st=875:d=25