當你配置編譯FFmpeg時,先採用--disable-filters
能夠禁止全部的濾鏡,而後顯式配置想要支持的濾鏡。web
下面是當前可用的音頻濾鏡算法
延遲一個或者多個音頻通道express
它接受以下選項:app
delays框架
參數是以|
分隔的列表字符串,分別用於指明對應各個通道延遲的微秒(milliseconds)數。應提供至少一個大於0的延遲。未使用的延遲將被靜默忽略。若是延遲值數量小於通道數量,則剩餘通道不會被延遲。dom
第一通道延遲1.5秒,第三通道0.5秒(其它通道均不延遲變化)async
adelay=1500|0|500ide
重複應用於音頻輸入(回聲效果)濾鏡函數
回聲反射聲音,能夠天然發生在山區大型建築(有時)談話時,或者大叫時,數字回聲效果模擬這種行爲,一般用來幫助填補一個樂器或聲音的(回聲)。原始信號和發射信號的時差就是delay
(延遲),而反射信號的響度是decay
(衰減)。多個回聲能夠有不一樣的延遲和衰減。工具
要描述一個回聲效果須要以下的參數值(注意下面的參數之間用:
分隔):
in_gain
設置輸入得到的反射信號強度,默認0.6.
out_gain
設置輸出增長反射信號強度,默認0.3.
delays
一個由|
分隔原始信號和反射做用的指代延遲時間的字符串列表,單位是微秒(milliseconds)。每一個延遲容許範圍(0-90000.0),默認爲1000
decays
設置一個由|
分隔的反映信號響度衰減值的列表,每一個衰減值範圍是(0-1.0),默認爲0.5.
讓一個聲音聽起來像兩倍
aecho=0.8:0.88:60:0.4
若是延遲十分短,那聽起來像一個機器人(金屬)音樂
aecho=0.8:0.88:6:0.4
一個十分長延遲(回聲)的聲音好像在一個空曠山谷裏聽露天音樂會。
aecho=0.8:0.9:1000:0.3
同上,但不僅一座山的效果(屢次反射回音)
aecho=0.8:0.9:1000|1800:0.3|0.25
根據指定的表達式修改(改變、變化)一個音頻信號
這個濾鏡接受一個或者多個表達式(對每一個通道),這些表達式計算用於相應的音頻信號。
它接受下面的參數:
exprs
設置一個用|
分隔的對應於各個通道的表達式。若是輸入通道數量比表達式數量大,則最後指定的表達式用於其他通道
channel_layout, c
設置輸出通道佈局。若是不指定,通道佈局採用通道佈局數值表達式。若是設置爲same
則採用輸入通道相同的佈局(這是默認值)
幀各通道的計算表達式中,下面的項目被容許。:
ch
當前表達式對應通道索引 expression
n
評估樣本數量,從0開始
s
採樣率
t
一秒內採樣點數量。
nb_in_channels
nb_out_channels
輸入和輸出通道索引
val(CH)
the value of input channel with number CH
注意這個濾鏡比較慢,要快速處理你可能須要dedicated
濾鏡
一半音量
aeval=val(ch)/2:c=same
轉化相位的第二個通道::
aeval=val(0)|-val(1)
對輸入音頻應用淡入淡出效果
下面是跟上來的濾鏡參數:
type, t
指定濾鏡效果,能夠是fade-in
,或者fade-out
start_sample, ss
指定的數量開始樣品開始應用褪色的效果。默認是0S
nb_samples, ns
指定實現淡入/淡出效果的樣品數量,最終淡入效果輸出的音頻音量同於輸入,而淡出將靜音。默認音頻採樣率爲44100。
start_time, st
指定淡入/淡出效果開始的時間,默認爲0。這個值必須被以持續時間語法來描述。它能夠用來替代start_sample
選項。
duration, d
指定淡化效果持續時間。以持續時間語法來描述。在效果的最後,淡入使得音量同於輸入音頻,淡出則靜音。默認持續時間由nb_samples
定義。 這裏設置了就替代了nb_samples
curve
設置曲線過渡衰減,接受下面的值:
tri
選擇三角形,線性斜坡(默認)
qsin
選擇正弦波
hsin
選擇正弦波的一半
esin
選擇指數正弦
log
選擇對數
ipar
選擇倒拋物線
qua
選擇二次
cub
選擇立方
squ
選擇平方根
cbr
選擇立方根
par
選擇拋物線
exp
選擇指數
iqsin
選擇正弦波反季
ihsin
選擇倒一半的正弦波
dese
選擇雙指數插值
desi
選擇雙指數S彎曲
15秒的一個音頻淡入
afade=t=in:ss=0:d=15
25秒的音頻淡出
afade=t=out:st=875:d=25
讓輸入音頻約束成爲指定格式。該框架會採用最合適(少)的格式轉換
它接受下面的參數:
sample_fmts
一個用|
分隔的列表,列出了採樣格式
sample_rates
一個用|
分隔的列表,列出了採樣率
channel_layouts
一個用|
分隔的列表指定通道佈局.
參考通道佈局瞭解通道佈局相關語法。
若是一個參數被省略,全部的值都是容許的。
強制輸出爲8位 或者16位 立體聲
aformat=sample_fmts=u8|s16:channel_layouts=stereo
應用一個兩極(two-pole)全通(all-pass)濾波器的中心頻率(Hz)的frequency
,和filter-width值width
。一個allpass
濾鏡能夠改變音頻的頻率相位關係而不改變其頻率振幅關係。(能夠實現移相)
濾鏡接受下面的選項:
frequency, f
設置頻率,單位Hz.
width_type
設置帶寬濾波器的帶寬單位,有下面的類型
h
Hz
q
Q-Factor
o
octave——8度 音階
s
slope
width, w
指定一個過濾器的帶寬width_type單位
合併兩個或兩個以上的音頻流到一個多通道流
濾鏡接受下面的選項:
inputs
設置輸入數量,默認爲2
若是輸入的通道佈局是不相交的,所以可兼容,輸出將設置相應的通道佈局和渠道,並在必要時從新排序。若是輸入的通道佈局是不可分離的,則輸出將會是第一個輸入的全部通道,而後第二個輸入的全部通道,在這種順序下,輸出的通道佈局將默認通道數設爲總數。
例如:若是第一個輸入是2.1
(FL+FR+LF
)和第二個輸入爲FC+BL+BR
,則輸出是5.1
通道佈局,而且按:a1,a2,b1,a3,b2,b3
設置輸出通道佈局(這裏a1是第一個輸入的第一個通道FL
,b1是第二個輸入的第一個通道FC
)
在另外的應用中,若是兩個輸入都是立體聲,則輸出會默認爲:a1,a2,b1,b2
,即輸出流顯示爲一個4通道音頻流,這多是一個非預期的值。
全部的輸入必須有相同的採樣率和格式。
若是輸入沒有相同的持續時間,輸出將在最短期中止。
合併兩個單聲道爲立體聲
amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
合併多個到1個視頻和6個音頻流
ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
混合多個音頻輸入到單路音頻輸出(疊加混合音頻,不一樣於前面的amerge)
注意這個濾鏡只支持浮動採樣(amerge
和pan
音頻濾鏡支持不少格式)。若是amix
濾鏡輸入有一個整數採樣,則aresample
濾鏡會自動插入轉換成浮動採樣。
例如:
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
會把3個輸入音頻流混合成一個輸出流,持續時間採用第一個輸入流的持續時間而且有3秒的結束過渡。
它支持下面的參數:
inputs
輸入數,若是沒有指定則默認爲2
duration
肯定流結束的方法,有:
longest
按最長持續時間輸入(默認)
shortest
按最短持續時間輸入
first
按第一個輸入持續時間
dropout_trnsition
過渡時間,單位秒,指一個輸入流結束時音量從正常到無聲漸止效果,默認爲2秒
輸入音頻源不變的到輸出
在一個音頻流的末尾添加無聲。
它能夠用來同ffmpeg -shortest
一塊兒把最短的音頻流延長到視頻相同長度。
選項介紹見下:
packet_size
設置墊的包大小字節,默認4096.
pad_len
設置要添加到最後的採樣點數量(實爲時間的一種表達,採樣率必定則採樣點個數決定了持續時間,這裏只設置了差值)。值達到後終止。它與whole_len
互斥
whole_len
設置最小的音頻流總輸出樣本點數(就是直接設置總持續時間的一種方式),若是這個值大於輸入音頻數,則墊上差值到最後。它與pad_len
互斥
若是既不設置pad_len
也不設置whole_len
,則接在後面的靜音將一直持續。
添加1024個靜音樣本點到輸入末尾
apad=pad_len=1024
讓輸出至少有10000個樣本點,不足就添加靜音樣本點到末尾
apad=whole_len=10000
利用ffmpeg添加靜音樣本點,讓視頻和音頻有一樣長的持續時間(以視頻時間爲準的)。
ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
添加一個移相到輸入音頻
移相器濾鏡建立一系列的波峯和波谷的頻譜。波峯和波谷的位置調製,這樣他們會隨着時間變化,創建一個全面的效果。
可接受參數介紹見下:
in_gain
設置輸入增益,默認 0.4.
out_gain
設置輸出增益,默認0.74
delay
設置延遲,單位微秒,默認3.0.
decay
設置衰減權重,默認0.4.
speed
設置調製速度,單位Hz,默認 0.5.
type
設置調製類型,默認 triangular.
它接受下面的值:
‘triangular, t’
‘sinusoidal, s’
對輸入音頻按指定的參數重採樣,使用了libswresample
庫,若是沒有特殊設定,將自動在輸入和輸出設置間轉換。
這個濾鏡還能夠用於拉伸/壓縮音頻數據,使其匹配時間戳,或者經過注入靜音/剪切來匹配時間戳
濾鏡接受的語法:[sample_rate:]resampler_options
,這裏sample_rate
是新採樣率,resampler_options
是一個由:
分隔的key=value
選項參數值對列表。參考ffmpeg重採樣手冊完整了解支持的選項。
重採樣爲44100Hz:
aresample=44100
拉伸/壓縮採樣來適應時間戳,最大1000個樣本點每秒:
aresample=async=1000
設置每一個輸出音頻幀中樣本點個數
除了最後一個輸出包括有包含不一樣數量的樣本點外,這個濾鏡使得持續中的每一個數據包中包含一致數量的樣本點。
濾鏡接受下面的選項:
nb_out_samples, n
設置每一個輸出音頻幀中樣本點個數,它替代做爲每一個通道樣本點個數,默認1024
pad, p
若是設置爲1,則濾鏡在最後一個音頻幀中補0填充,這樣全部幀都有同樣的樣本點個數。默認爲1
例如,設置每幀樣本點個數爲1234,且禁止最後幀補齊
asetnsamples=n=1234:p=0
從新設置採樣率而不改變PCM數據。這將致使速度和音調的變化。
濾鏡接受下面的選項:
sample_rate, r
設置輸出的採樣率,默認爲44100Hz
對每一個輸入流音頻幀顯示其所含各類信息。輸入音頻不被改變
信息由一個序列的鍵值對構成, 鍵值對的格式爲 key:value
下面的信息將被顯示(做爲鍵值對的鍵名):
n
當前的輸入(音頻)幀序號,從0開始計數
pts
輸入幀的時間戳,按時基計數,時基依賴於濾鏡輸入,一般爲1/sample_rate
pts_time
輸入幀時間戳按秒的表示
pos
輸入幀中輸入流中的偏移(文件讀寫指針位置), -1表示該信息不可用 和/或者 無心義 (例如合成音頻)
fmt
採樣格式
chlayout
通道佈局
rate
音頻幀的採樣率
nb_samples
每幀中(每一個通道)採樣點數
checksum
音頻數據Adler-32校驗和(以十六進制數據形式輸出) ,對於連續音頻數據,數據被看做是都鏈接在一塊兒的。
plane_checksums
一個Adler-32校驗和列表,對應於每一個數據塊
顯示音頻通道的時域統計信息。統計計算和顯示每一個音頻通道,值適合狀況下還提供總體圖。
它接受下面的選項:
length
按秒給出的小窗口長(指統計動態移動窗),用於RMS測量波峯和波谷。默認爲0.05(50微秒),容許值範圍爲:[0.1-10]
每一個顯示用選項的介紹見下A:
DC offset
從0振幅位移
Min level
最小採樣點 水平
Max level
最大采樣點 水平
Peak level dB
RMS level dB
標準的峯值和有效值測量,單位dBFS
RMS peak dB
RMS trough dB
在短窗口中波峯和波谷RMS值水平測量
Crest factor
標準比率RMS的峯值水平 (注意不是dB值了).
Flat factor
平整度(即連續樣本具備相同值)信號的峯值水平(即最小水平或最大級別)。
Peak count
計數屢次(而不是樣品的數量),信號達到最小水平或最大水平
將兩個音頻流控制的發到緩衝區
濾鏡接受下面的選項:
expr, e
設置一個用於判斷哪一個流被送出的表達式。若是結果爲負則第一個流被轉發,不然若是爲非負則第二個流被轉發。表達式中容許下面的變量:
b1 b2
分別指代緩衝區中每一個輸入音頻流到目前爲止轉發數量
s1 s2
到目前爲止,已經轉發的每一個流的採樣點數量
t1 t2
當前時間每一個流的時間戳 stream
默認表達式爲t1-t2
, 它意味着把時間戳小的流進行轉發
壓力測試amerge
經過隨機發送給緩衝區做爲有錯誤的輸入,同時避免太多同步失鎖:
amovie=file.ogg [a] ; amovie=file.mp3 [b] ; [a] [b] astreamsync=(2*random(1))-1+tanh(5*(t1-t2)) [a2] [b2] ; [a2] [b2] amerge
經過須要 壓縮/拉伸 和/或 採樣點/填補靜音 來讓音頻數據和時間戳同步。
這個濾鏡不默認編譯,請使用aresample來壓縮/拉伸。
它接受下面的參數:
compensate
若容許則經過拉伸/壓縮來讓數據匹配時間戳。默認禁止。當禁止時數據對時間戳將以靜音補齊
min_delta
觸發數據丟棄/補齊的 時間戳與音頻數據最小差別(按秒爲單位)默認爲0.1。若是默認值仍是不完美同步,能夠嘗試設置爲0
max_comp
當compensate=1
時,每秒最大補齊樣本點數,默認爲500.
first_pts
這時一個時基單位(其實設置在前面補齊/去除 時間),第一個PTS爲 1/sample_rate, 它容許了在開始補齊/去除 的時間量。默認狀況下, 沒有假定一個,全部沒有補齊/調製。 例如 要讓一個音頻和另外的視頻同步,可能須要在前面加上/或者減去 一些樣本點
調整音頻節奏(變奏)
濾鏡接受1個參數,表示音頻節奏。若是不知道,則默認爲1.0,表示不變,參數值範圍爲[0.5,2.0]
減慢爲80%
atempo=0.8
加快爲125%
atempo=1.25
建設連續輸入中的部分做爲輸出。
接受下面的參數:
start
以秒爲單位的開始時間戳。即所指時間樣本點將做爲輸出的第一個樣本點
end
以秒爲單位的結束時間戳。即所指時間前最後一個樣本點將做爲輸出的最後樣本點,其所指樣本點及其後的均被丟棄。
start_pts
相似start
,除了它的不是以秒爲單位
end_pts
相似end
, 除了它不是一秒爲單位
duration
輸出的持續時間
start_sample
要輸出的第一個樣本點序號
end_sample
要丟棄的第一個樣本點序號,(其前的最後一個樣本點是輸出的最後一個樣本點)
其中start
, end
和duration
採樣持續時間格式描述,參考相關章節以瞭解詳情。
注意前面的start
/end
和duration
是看幀的時間戳,而有_sample
的選項則只是簡單的對傳入數據的樣本點計數。全部如start
/end_pts
和start
/end_sample
會形成不一樣的結果(當時間戳不許確、或從0開始)。還要注意這個濾鏡並不修改時間戳。若是你想讓輸出時間從0開始,則在其後插入atrim
濾鏡
若是同時有多個start
或end
選項被設置,濾鏡嘗試(貪婪算法)保留儘可能多的樣本點做爲輸出(即start
和end
差最大的)。若是想保留多個塊,須要鏈接多個atrim
濾鏡來應用(多個次輸入源,接atrim
後再鏈接起來)
默認全部輸入被保留。全部它可被配置爲保留結束前的一切。
例子:
丟棄指定時間外的輸入:
ffmpeg -i INPUT -af atrim=60:120
僅保留開始的1000幀
ffmpeg -i INPUT -af atrim=end_sample=1000
應用一個經過中心點頻率frequency
定義的兩極Butterworth(巴特沃斯)帶通濾波器,其有3dB的帶寬。csg
選項指定一個常數做爲默認增益(峯值增益 Q ,默認值爲0)。濾鏡到期後每一個8分音度有6dB的衰減。
濾鏡接受下面的選項:
frequency, f
設置濾鏡的中心點頻率,默認3000.
csg
設置增益常數,若想增益倍值爲1(不變化),則值默認爲0。
width_type
設置指定帶通濾波的類型:
h
Hz
q
Q-Factor
o
octave-8分音度
s
slope-斜率
width, w
設置帶通濾波帶寬(單位爲width_type
)
應用一個經過中心點頻率frequency
定義的兩極Butterworth(巴特沃斯)帶通濾波器,其有單側3dB的帶寬。濾鏡到期後每一個8分音度有6dB的衰減。
frequency, f
設置濾鏡的中心點頻率,默認3000.
width_type
設置指定帶通濾波的類型:
h
Hz
o
octave-8分音度
s
slope-斜率
width, w
設置帶通濾波帶寬(單位爲width_type
)
使用雙刀擱置濾波器增長或減小低音(低)音頻的頻率響應,相似於一個標準的高保真的音控。這也被稱爲擱置平衡(EQ)。
濾鏡接受下面選項:
gain, g
設置在0Hz的增益,其可用的範圍約爲-20(大振幅)+20。要合適的值以防被削波(振幅過大超出說了樣本格式容許值範圍就削波)
frequency, f
設置濾鏡的中心點頻率,默認100 Hz.
width_type
設置指定帶通濾波的類型:
h
Hz
o
octave-8分音度
s
slope-斜率
width, w
設置帶通濾波帶寬(單位爲width_type
)
應用一個 biquad
IIR(無限衝激響應)濾鏡,它有b0、b一、b2和a0、a一、a3 分別做爲分子和分母。
Bauer(鮑爾)立體聲雙聲道的轉換,使耳機聽立體聲音頻記錄
它接受下面的參數:
profile
預約義橫向進給水平
default
默認水平 (fcut=700, feed=50).
cmoy
Chu Moy circuit (fcut=700, feed=60).
jmeier
Jan Meier circuit (fcut=650, feed=95).
fcut
截至頻率,單位Hz
feed
進給水平,單位Hz
從新映射輸入通道
它接受下面的參數:
channel_layout
輸出流通道佈局
map
從輸入到輸出的通道映射。參數值是一個由|
分隔的映射關係描述列表。每一個爲in_channel-out_channel
或者in_channel
格式。in_channel
能夠用於輸入通道名稱(例如FL表示左前)或者在輸入通道中的索引數。out_channel
能夠用輸出通道名稱或者索引數。若是out_channel
被省略,則從0開始遞增映射每一個輸出通道
若是沒有設置map
,濾鏡將隱式映射,保留所指(通道佈局中對應通道)
例如,要把一個5.1 聲道的MOV文件下變換
ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
則將建立一個輸出WAV文件,其只有2個聲道(立體聲)。
又如要修復一個5.1聲道AAC編碼中不當的通道順序
ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:channel_layout=5.1' out.wav
把輸入音頻流的每一個通道分開做爲多個輸出流
它接受下面的參數:
channel_layout
指定輸入通道佈局,默認爲 "stereo"
例如從輸入MP3文件中分離立體聲
ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
會建立一個包含2個音頻流的Matroska文件,其中一個對應於原來的左聲道,另一個對應於右聲道。
劃分5.1聲道的WAV文件:
ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]' -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]' front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]' side_right.wav
給聲音添加合唱效果
可讓獨唱變得像合唱,但也能夠用於儀表。
合唱與回聲效應都有短延遲,可是回波延遲是常數,合唱則採用不一樣的正弦或三角調製。調製深度範圍定義了調製延遲(播放以前或以後的延遲)。所以延遲的聲音聽起來較慢或更快,這是原來周圍的延遲調整聲音,像是有一個與合唱總體略微差別。
它接受下面的參數(每一個參數項若是有多個可能值用|
分隔):
in_gain
設置輸入增益,默認0.4.
out_gain
設置輸出增益,默認0.4.
delays
設置延遲,延遲一般在40ms - 60ms
decays
設置衰減
speeds
設置速度
depths
設置深度
一個延遲(二人合唱效果):
chorus=0.7:0.9:55:0.4:0.25:2
2個延遲(三人合唱效果):
chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
3個延遲(四人及更多合唱效果):
chorus=0.5:0.9:50|60|40:0.4|0.32|0.3:0.25|0.4|0.3:2|2.3|1.3
音頻壓縮或擴展的動態範圍(動態壓縮)
它接受下面的參數(參數值有多個時用|
分隔,各個參數間用:
分隔):
attacks
decays
一個以秒計時的單通道輸入信號計量瞬時水平平均值的計算窗口寬度列表。attacks
用於指示增長,decays
用於指示衰減。對於大多數狀況,加強時間(響應音頻聲)應該比衰減時間短,由於人類的耳朵感受中,忽然大聲的音頻錄音比忽然減弱更敏感。典型的對加強採用0.3秒,對衰減採樣0.8秒。
points
一個要進行傳輸的點的列表,以dB指定相對於最大可能信號的振幅。每一個關鍵節點由下面的語法描述: x0/y0|x1/y1|x2/y2|....
或者 x0/y0 x1/y1 x2/y2 ....
即由|
或者空格分隔的列表。
全部的輸入值(頻點)必須按遞增排序(傳遞函數——放大倍數,不須要單調遞增),點值0/0
表示可能覆蓋(對應0/輸出的按dB值增益)。典型值有-70/-70|-60/-20
soft-knee
設置對全部關節點的曲線半徑,默認爲 0.01
gain
以dB爲單位設置附加增益,對應於全部設置爲須要得到傳輸的點。這容許調整總體增益,默認爲0
volume
以dB爲單位設置初始化音量,其做爲開始是每一個通道的假設值,即容許用戶提供一個名義上的初始值。例如一個很是大的增益並不適用於初始信號在開始運做時有沒有壓縮。一個典型的表示最初十分安靜的值是-90dB,默認爲 0.
delay
以秒爲單位設置延遲。當即輸入音頻分析,但音頻延遲以前美聯儲音量調節器。指定一個延遲約等於加強/衰減時間容許濾鏡有效地預測而不是被動的模式運做。它默認爲0。
爲音樂適合在嘈雜環境中聽時讓音樂更安靜和響亮:
compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
另外的例子是耳語和爆炸部分音頻:
compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
一個噪聲門,對於噪聲對於音頻有較低水平信號:
compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
另一個噪聲門, 此次噪聲對於音頻有更高水平信號。this time for when the noise is at a higher level than the signal (使它在某些方面,相似於壓制):
compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
將直流轉換應用到音頻。
這能夠有助於消除直流偏置(可能由硬件問題引發的記錄鏈)的音頻。直流偏置的影響是減小空間,所以體積。astats
濾鏡能夠用來肯定一個信號直流偏移。
shift
設置直流偏置,容許值爲[-1, 1].它疊加到音頻上
limitergain
可選,它應該有一個遠低於1的值(例如 0.05 或0.02)用來防止裁剪。
讓聲音更容易在耳機聽
這個爲44.1kHz立體聲(即CD音頻格式)添加cues
(線索)。讓聲音聽起來像離開了耳機,是在揚聲器前面(標準應該播放的環境)。
它從SoX移植來。
應用一個兩極平衡(EQ)峯值濾鏡。經過這個濾鏡,信號電平值在選定的頻率能夠加強或者衰減(不想bandpass
和bandreject
濾鏡),而其它頻率不變。
爲了產生複雜的平衡曲線,這個過濾器能夠被使用幾回,每個都有不一樣的中心頻率。
濾鏡接受以下選項:
frequency, f
設置中心頻點,單位 Hz.
width_type
設置帶通濾波寬度定義類型
h
Hz
q
Q-Factor
o
octave
s
slope
width, w
設置帶通濾波寬度,其關聯width_type
gain, g
設置對應增益,單位dB
1000 Hz 增長爲10dB,帶寬200HZ
equalizer=f=1000:width_type=h:width=200:g=-10
在1000Hz處增長爲2dB,帶寬Q 1,在100Hz處增長爲5dB,帶寬Q2:
equalizer=f=1000:width_type=q:width=1:g=2,equalizer=f=100:width_type=q:width=2:g=-5
爲音頻增長翻邊效果
濾鏡接受下面的選項:
delay
以微秒爲單位設置延遲,範圍0-30,默認爲0
depth
以微秒爲單位設置swep延遲,範圍0-10,默認2
regen
設置再生百分比(延遲信號反饋),範圍-95-95,默認0
width
設置的延遲信號與原始混合比例。從0到100不等。默認值是71。
speed
設置每秒掃描(Hz),範圍0.1-10,默認0.5
shape
設置波形,可能值爲triangular
或者sinusoidal
,默認sinusoidal
phase
對多個通道設置波形轉換百分比,範圍0-100,默認25
interp
設置延遲線內插方法,可能值爲linear
或quadratic
,默認linear
指定頻率3dB的高通濾波器。這個濾波器能夠是單極或者雙極(默認),濾波器每極有6dB倍頻(每極10倍頻是20dB)
濾鏡接受下面選項:
frequency, f
設置頻點,默認3000.
poles, p
設置極數,默認2
width_type
設置帶寬計算模式.
h
Hz
q
Q-Factor
o
octave
s
slope
width, w
設置帶寬,其根據width_type
計數,僅對雙極濾鏡,有0.707q的.巴特沃斯響應
把多個輸入流鏈接成一個多通道流
它接受下面參數:
inputs
輸入流數,默認2
channel_layout
通道佈局,默認stereo
map
從輸入流映射通道,參數是'|'分隔的字符串。每一個input_idx.in_channel-out_channel
都是映射自輸入流。input_idx
是0起始的輸入了流索引。stream._in_chnnel
設置輸出流的標識,(例如:FL對應於左前退),其選定須要更多的音視頻出入。
這個濾鏡可用於未顯式映射的一些應用。首先試圖找到一個匹配行,若是沒有就把第一個未使用的視頻的音頻信號插入。
鏈接3個輸入(正確設置通道佈局)
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
從6路音頻合成爲5.1輸出到
ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
out
加載一個LADSPA(Linux音頻開發人員的簡和插件API)插件
編譯選項:--enable-ladspa
,接受下面的值。
file, f
描述LADSPA庫所在文件,若是LADSPA_PATH
環境變量被定義,LADSPA
插件將在被逗號分隔的各個路徑中查找(LADSPA_PATH中的)。不然採樣標準查找順序查找: HOME/.ladspa/lib/
, /usr/local/lib/ladspa/
,/usr/lib/ladspa/
.
plugin, p
指定庫中的插件。有些庫只有一個插件,而另一些可能有多個。若是沒有設定,則指定庫中全部的插件將被列出
controls, c
有由’|’分隔的浮點數指列表,以肯定加載的行爲(例如延遲、閥值或者增益) 。控制參數須要由語法:c0=value0|c1=value1|c2=value2|...
,這樣來設置第i個選項值。若是設置爲help
將輸出有效的控制器和可用的打印控制參數
sample_rate, s
指定採樣率,默認44100,僅用於插件有0號輸入。
nb_samples, n
設置每一個通道每一個輸出幀中包含的樣本點數。默認1024,僅用於插件有0號輸入。
duration, d
設置最小持續時間。參考持續時間語法來描述.注意實際返回的結果持續時間可能大於指定時間,生成的音頻老是少一個完整的幀。若是沒有特別指定,或者表示持續時間的值爲負數,則代表生成的音頻持續不斷。僅用於於插件有0號輸入。
列出amp(LADSPA e例子插件)庫中有效插件:
ladspa=file=amp
列出全部有效的控制項和有效值範圍(對vcf_notch插件,其在VC庫中):
ladspa=f=vcf:p=vcf_notch:c=help
利用計算機音樂工具包(CMT)插件庫模擬低質量的音頻設備:
ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
使用TAP-plugins添加混響的音頻(湯姆-Tom-的音頻處理插件):
ladspa=file=tap_reverb:tap_reverb
產生白噪聲,有.2振幅:
ladspa=file=cmt:noise_source_white:c=c0=.2
利用Metronome from the C* Audio Plugin Suite (CAPS)庫中的C* Click插件,產生20bmp的內容:
ladspa=file=caps:Click:c=c1=20'
應用C* Eq10X2 - Stereo 10段均衡效應:
ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
它支持下面的命令:
cN
編輯N-th
控制值
若是指定的值無效,會忽略它。
應用3dB頻點倍帶寬的低通濾波器。它能夠是單極或者雙極的(默認)。濾鏡每一個8度有6dB的衰減(20dB 則是10倍)
濾鏡接受下面的選項:
frequency, f
設置頻點,默認500.
poles, p
設置極數,默認2
width_type
設置帶寬計算模式.
h
Hz
q
Q-Factor
o
octave
s
slope
width, w
設置帶寬,其根據width_type
計數,僅對雙極濾鏡,有0.707q的.巴特沃斯響應
按指定的增益關係混合。濾鏡接受通道佈局和一組通道定義
這個濾鏡也能夠有效的從新映射通道音頻流。
濾鏡接受的參數格式爲:"l|outdef|outdef|..."
l
輸出通道佈局或者通道號
outdef
輸出通道指定,格式: "out_name=[gain*]in_name[+[gain*]in_name...]"
out_name
輸出通道名,每一個通道 (FL, FR, 等) 或者通道索引數 (c0, c1, etc.)
gain
增益倍數,1表示不變
in_name
採用的輸入通道,參考out_name
的介紹。它不能是混合了名字和索引號的輸入通道(描述)
若是在通道描述中有‘=’而不是‘<’,則代表對指定通道老是按1倍重整(代表不變),從而避免削波噪音
例如,若是想下變換立體聲爲單聲道,並且更大的權重是在左聲道:
pan=1c|c0=0.9*c0+0.1*c1
一個定製的下變換工做與 3- 4- 5- 和7- 通道環繞
pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
通道再映射僅在下面的狀況起效:
增益爲0或者1
每一個輸入僅有一個通道輸出
若是這些條件都知足,濾鏡將通知用戶("Pure channel mapping detected"-「純通道映射發現」),並使用一個優化和無損方法從新映射。
例如:若是有一個5.1聲道要映射立體聲,去除擴展通道:
pan="stereo| c0=FL | c1=FR"
對於同一個源,你也能夠交換左前和右前,保持輸入佈局:
pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
若是是立體聲源,要對左前通道靜音(但保持立體聲通道佈局):
pan="stereo|c1=c1"
仍然是立體聲,把右前用兩次:
pan="stereo| c0=FR | c1=FR"
ReplayGain掃描儀濾鏡。這個濾鏡以一個音頻流做爲輸入和輸出也不改變。在過結束後顯示track_gain
和track_peak
。
轉換音頻採樣格式,採樣率和通道佈局,它通常不直接使用。
檢測一個音頻流中的靜音。
這個濾鏡是在檢測到輸入音頻小於或等於一個噪音公差值,且持續時間大於或等於最低噪音持續時間時輸出日誌消息
輸出的時間和持續時間以秒爲單位
濾鏡接受下面的選項:
duration, d
設置需通告的靜默持續時間(默認爲2秒).
noise, n
設置噪聲限,能夠採樣爲dB描述 (指附加值的dB表示) 或者振幅比,默認爲-60dB或者0.001 0.001.
檢測5秒靜默,-50dB的噪音限
silencedetect=n=-50dB:d=5
噪音限爲0.0001 檢測靜默(靜默時長2秒)
ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
從音頻的開始、中間或者結束刪除靜默
濾鏡接受以下選項:
start_periods
這個值用來指定在開始時應該做爲靜默削減的音頻幅度,0表示不削減,指定一個非0值則表示直到找到一個非靜默值時的都被削減掉。一般該值爲1,而更高的值甚至能夠削減掉全部的音頻。默認爲0
start_duration
指定一個非靜默持續時間閥值,若是非靜默時間超過該閥值則不被削減,不然記爲連續靜默中的脈衝噪音。經過增長這個值,脈衝噪聲能夠視爲靜默被修剪掉,缺省爲0
start_threshold
這個用於指出該做爲靜默的樣本值。對於數字音頻,值爲0確定很合適做爲代表是靜默的,但對於模擬音頻(ADC獲取的),你可能但願增長這個值(做爲背景噪音),能夠指定dB值或者振幅比,默認爲0
stop_periods
指定爲從音頻削減沉默數。爲了從中間削減沉默,須要爲stop_periods
指定一個負數值。這個值被視爲有積極的價值,用於顯示效果應該重啓start_periods規定的處理,使其適合於去除的沉默的音頻。默認值是0。
stop_duration
指定一個時間的沉默以前,必須存在音頻不是複製,經過指定一個更高的持續時間,沉默會更多的留在音頻中,默認爲0.
stop_threshold
這個值相似start_threshold
,可是是從音頻末尾削減。也能夠用dB值或者振幅比指定,默認爲0
leave_silence
這代表stop_duration
長度的音頻應該原封不動的在每一個週期的開始沉默,例如若是你想刪除長單詞之間的停頓,但不想徹底刪除停頓。默認值是0。
下面的示例說明了如何使用這個過濾器開始錄音,而不包含一般發生的按鍵後的延遲按,即按下鍵到開始記錄之間的靜默:
silenceremove=1:5:0.02
對頻點的3倍(上下)利用雙刀擱置(two-pole shelving)濾鏡增長或者減小頻率響應,相似於高保真的音控,也被稱爲擱置平衡(EQ)
濾鏡接受下面選項:
gain, g
Give the gain at whichever is the lower of ~22 kHz and the Nyquist frequency. Its useful range is about -20 (for a large cut) to +20 (for a large boost). Beware of clipping when using a positive gain.
frequency, f
設置頻點,默認3000Hz.
width_type
設置帶寬計算模式.
h
Hz
q
Q-Factor
o
octave
s
slope
width, w
設置帶寬,其根據width_type
計數,僅對雙極濾鏡,有0.707q的.巴特沃斯響應
調整輸入音量
接受下面的參數:
volume
設置音頻音量表達式
輸出值是剪輯的最大值
輸出音頻音量有以下關係::
output_volume = volume * input_volume
默認爲 "1.0".
precision
這個參數指出數學(計算)精度
它決定哪些輸入樣本格式將被容許,這影響伸縮量的精度.
fixed
8-bit整形,它限於輸入是 U8, S16, 和 S32.
float
32-bit 浮點,它限於輸入格式是FLT,這是默認值
double
64-bit 浮點;它限於輸入格式是DBL
replaygain
選擇當輸入幀數據遇到`ReplayGain`(重演設置——音量增益)時的處理 drop 丟掉ReplayGain,按原始標準 (默認值). ignore 忽略ReplayGain側數據,可是離開它的框架 track 採用軌道設置,若是存在 album 採用專輯設置,若是存在
replaygain_preamp
在應用`replaygain`的前置放大增益,單位dB replaygain_preamp默認值爲0.0.
eval
設置若是計算音量表達式 它接受如下值: ‘once’ 僅在初始化時計算一次,或者`volume`命令被髮生時 ‘frame’ 在每一個輸入幀都從新計算 默認‘once’.
音量表達式支持下面的參數:.
n
幀數 (從0開始計數)
nb_channels
通道數
nb_consumed_samples
總的通過濾鏡的樣本點數
nb_samples
當前幀中樣本點數
pos
在文件中的幀偏移
pts
幀的PTS
sample_rate
採樣率
startpts
流開始來的PTS計數
startt
流開始來的時間
t
幀時間
tb
時間戳時基
volume
最近設置的音量值
注意若是計算模式是once
,則除了sample_rate
和tb
有效外其餘都無效而等於NAN
濾鏡支持下面的命令:
volume
編輯音量表達式。這個命令接受相同選項和語法做爲命令參數
若是描述的表達式無效,它將保持當前值
replaygain_noclip
經過限制防止剪裁
默認對於replaygain_noclip
爲1
調整輸入音量
volume=volume=0.5
volume=volume=1/2
volume=volume=-6.0206dB
在上面的例子中所指定的選項名volume
能夠省略,例如:
volume=0.5
輸入音頻功率增長6dB,使用定點精度
volume=volume=6dB:precision=fixed
一個音頻在10秒後5秒內逐漸削弱效果
volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
檢測輸入音頻音量
濾鏡沒有參數,輸入也不會被編輯。統計數據將在輸入流結束後輸出到日誌中。
特別是它顯示平均音量(均方根),最大音量(每一個樣本基礎上)和開始來的音量直方圖(從最大音量累計1/1000樣本)
全部的音量都是相對於最大PCM值的
這裏有一個輸出實例:
[Parsed_volumedetect_0 0xa23120] mean_volume: -27 dB [Parsed_volumedetect_0 0xa23120] max_volume: -4 dB [Parsed_volumedetect_0 0xa23120] histogram_4db: 6 [Parsed_volumedetect_0 0xa23120] histogram_5db: 62 [Parsed_volumedetect_0 0xa23120] histogram_6db: 286 [Parsed_volumedetect_0 0xa23120] histogram_7db: 1042 [Parsed_volumedetect_0 0xa23120] histogram_8db: 2551 [Parsed_volumedetect_0 0xa23120] histogram_9db: 4609 [Parsed_volumedetect_0 0xa23120] histogram_10db: 8409
它意味着:
平均音量是-27dB,或 10……-2.7
最大音量點爲-4dB或者說介於-4dB 到-5dB
有6個樣本點是-4dB,62個-5dB,286個-6dB 等等
換句話說,提供+4dB的音量不會引發任何剪裁(削波),而提升+5dB就有6個地方會削波。