ffmpeg文檔34-音頻濾鏡

34 音頻濾鏡

當你配置編譯FFmpeg時,先採用--disable-filters能夠禁止全部的濾鏡,而後顯式配置想要支持的濾鏡。web

下面是當前可用的音頻濾鏡算法

adelay

延遲一個或者多個音頻通道express

它接受以下選項:app

  • delays框架

    參數是以|分隔的列表字符串,分別用於指明對應各個通道延遲的微秒(milliseconds)數。應提供至少一個大於0的延遲。未使用的延遲將被靜默忽略。若是延遲值數量小於通道數量,則剩餘通道不會被延遲。dom

adelay例子

  • 第一通道延遲1.5秒,第三通道0.5秒(其它通道均不延遲變化)async

    adelay=1500|0|500ide

aecho

重複應用於音頻輸入(回聲效果)濾鏡函數

回聲反射聲音,能夠天然發生在山區大型建築(有時)談話時,或者大叫時,數字回聲效果模擬這種行爲,一般用來幫助填補一個樂器或聲音的(回聲)。原始信號和發射信號的時差就是delay(延遲),而反射信號的響度是decay(衰減)。多個回聲能夠有不一樣的延遲和衰減。工具

要描述一個回聲效果須要以下的參數值(注意下面的參數之間用分隔):

  • in_gain

    設置輸入得到的反射信號強度,默認0.6.

  • out_gain

    設置輸出增長反射信號強度,默認0.3.

  • delays

    一個由|分隔原始信號和反射做用的指代延遲時間的字符串列表,單位是微秒(milliseconds)。每一個延遲容許範圍(0-90000.0),默認爲1000

  • decays

    設置一個由|分隔的反映信號響度衰減值的列表,每一個衰減值範圍是(0-1.0),默認爲0.5.

aecho例子

  • 讓一個聲音聽起來像兩倍

    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

aeval

根據指定的表達式修改(改變、變化)一個音頻信號

這個濾鏡接受一個或者多個表達式(對每一個通道),這些表達式計算用於相應的音頻信號。

它接受下面的參數:

  • 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例子

  • 一半音量

    aeval=val(ch)/2:c=same

  • 轉化相位的第二個通道::

    aeval=val(0)|-val(1)

afade

對輸入音頻應用淡入淡出效果

下面是跟上來的濾鏡參數:

  • 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彎曲

afade例子

  • 15秒的一個音頻淡入

    afade=t=in:ss=0:d=15

  • 25秒的音頻淡出

    afade=t=out:st=875:d=25

aformat

讓輸入音頻約束成爲指定格式。該框架會採用最合適(少)的格式轉換

它接受下面的參數:

  • sample_fmts

    一個用|分隔的列表,列出了採樣格式

  • sample_rates

    一個用|分隔的列表,列出了採樣率

  • channel_layouts

    一個用|分隔的列表指定通道佈局.

    參考通道佈局瞭解通道佈局相關語法。

若是一個參數被省略,全部的值都是容許的。

強制輸出爲8位 或者16位 立體聲

aformat=sample_fmts=u8|s16:channel_layouts=stereo

allpass

應用一個兩極(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單位

amerge

合併兩個或兩個以上的音頻流到一個多通道流

濾鏡接受下面的選項:

  • inputs

    設置輸入數量,默認爲2

若是輸入的通道佈局是不相交的,所以可兼容,輸出將設置相應的通道佈局和渠道,並在必要時從新排序。若是輸入的通道佈局是不可分離的,則輸出將會是第一個輸入的全部通道,而後第二個輸入的全部通道,在這種順序下,輸出的通道佈局將默認通道數設爲總數。

例如:若是第一個輸入是2.1FL+FR+LF)和第二個輸入爲FC+BL+BR,則輸出是5.1通道佈局,而且按:a1,a2,b1,a3,b2,b3設置輸出通道佈局(這裏a1是第一個輸入的第一個通道FL,b1是第二個輸入的第一個通道FC

在另外的應用中,若是兩個輸入都是立體聲,則輸出會默認爲:a1,a2,b1,b2,即輸出流顯示爲一個4通道音頻流,這多是一個非預期的值。

全部的輸入必須有相同的採樣率和格式。

若是輸入沒有相同的持續時間,輸出將在最短期中止。

amerge例子

  • 合併兩個單聲道爲立體聲

    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

amix

混合多個音頻輸入到單路音頻輸出(疊加混合音頻,不一樣於前面的amerge)

注意這個濾鏡只支持浮動採樣(amergepan音頻濾鏡支持不少格式)。若是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秒

anull

輸入音頻源不變的到輸出

apad

在一個音頻流的末尾添加無聲。

它能夠用來同ffmpeg -shortest一塊兒把最短的音頻流延長到視頻相同長度。

選項介紹見下:

  • packet_size

    設置墊的包大小字節,默認4096.

  • pad_len

    設置要添加到最後的採樣點數量(實爲時間的一種表達,採樣率必定則採樣點個數決定了持續時間,這裏只設置了差值)。值達到後終止。它與whole_len互斥

  • whole_len

    設置最小的音頻流總輸出樣本點數(就是直接設置總持續時間的一種方式),若是這個值大於輸入音頻數,則墊上差值到最後。它與pad_len互斥

若是既不設置pad_len也不設置whole_len,則接在後面的靜音將一直持續。

apad例子

  • 添加1024個靜音樣本點到輸入末尾

    apad=pad_len=1024

  • 讓輸出至少有10000個樣本點,不足就添加靜音樣本點到末尾

    apad=whole_len=10000

  • 利用ffmpeg添加靜音樣本點,讓視頻和音頻有一樣長的持續時間(以視頻時間爲準的)。

    ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT

aphaser

添加一個移相到輸入音頻

移相器濾鏡建立一系列的波峯和波谷的頻譜。波峯和波谷的位置調製,這樣他們會隨着時間變化,創建一個全面的效果。

可接受參數介紹見下:

  • in_gain

    設置輸入增益,默認 0.4.

  • out_gain

    設置輸出增益,默認0.74

  • delay

    設置延遲,單位微秒,默認3.0.

  • decay

    設置衰減權重,默認0.4.

  • speed

    設置調製速度,單位Hz,默認 0.5.

  • type

    設置調製類型,默認 triangular.

    它接受下面的值:

    ‘triangular, t’
    ‘sinusoidal, s’

aresample

對輸入音頻按指定的參數重採樣,使用了libswresample庫,若是沒有特殊設定,將自動在輸入和輸出設置間轉換。

這個濾鏡還能夠用於拉伸/壓縮音頻數據,使其匹配時間戳,或者經過注入靜音/剪切來匹配時間戳

濾鏡接受的語法:[sample_rate:]resampler_options,這裏sample_rate是新採樣率,resampler_options是一個由分隔的key=value選項參數值對列表。參考ffmpeg重採樣手冊完整了解支持的選項。

aresample例子

  • 重採樣爲44100Hz:

    aresample=44100

  • 拉伸/壓縮採樣來適應時間戳,最大1000個樣本點每秒:

    aresample=async=1000

asetnsamples

設置每一個輸出音頻幀中樣本點個數

除了最後一個輸出包括有包含不一樣數量的樣本點外,這個濾鏡使得持續中的每一個數據包中包含一致數量的樣本點。

濾鏡接受下面的選項:

  • nb_out_samples, n

    設置每一個輸出音頻幀中樣本點個數,它替代做爲每一個通道樣本點個數,默認1024

  • pad, p

    若是設置爲1,則濾鏡在最後一個音頻幀中補0填充,這樣全部幀都有同樣的樣本點個數。默認爲1

例如,設置每幀樣本點個數爲1234,且禁止最後幀補齊

asetnsamples=n=1234:p=0

asetrate

從新設置採樣率而不改變PCM數據。這將致使速度和音調的變化。

濾鏡接受下面的選項:

  • sample_rate, r

    設置輸出的採樣率,默認爲44100Hz

ashowinfo

對每一個輸入流音頻幀顯示其所含各類信息。輸入音頻不被改變

信息由一個序列的鍵值對構成, 鍵值對的格式爲 key:value

下面的信息將被顯示(做爲鍵值對的鍵名):

  • n

    當前的輸入(音頻)幀序號,從0開始計數

  • pts

    輸入幀的時間戳,按時基計數,時基依賴於濾鏡輸入,一般爲1/sample_rate

  • pts_time

    輸入幀時間戳按秒的表示

  • pos

    輸入幀中輸入流中的偏移(文件讀寫指針位置), -1表示該信息不可用 和/或者 無心義 (例如合成音頻)

  • fmt

    採樣格式

  • chlayout

    通道佈局

  • rate

    音頻幀的採樣率

  • nb_samples

    每幀中(每一個通道)採樣點數

  • checksum

    音頻數據Adler-32校驗和(以十六進制數據形式輸出) ,對於連續音頻數據,數據被看做是都鏈接在一塊兒的。

  • plane_checksums

    一個Adler-32校驗和列表,對應於每一個數據塊

astats

顯示音頻通道的時域統計信息。統計計算和顯示每一個音頻通道,值適合狀況下還提供總體圖。

它接受下面的選項:

  • 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

    計數屢次(而不是樣品的數量),信號達到最小水平或最大水平

astreamsync

將兩個音頻流控制的發到緩衝區

濾鏡接受下面的選項:

  • expr, e

    設置一個用於判斷哪一個流被送出的表達式。若是結果爲負則第一個流被轉發,不然若是爲非負則第二個流被轉發。表達式中容許下面的變量:

    b1 b2

    分別指代緩衝區中每一個輸入音頻流到目前爲止轉發數量

    s1 s2

    到目前爲止,已經轉發的每一個流的採樣點數量

    t1 t2

    當前時間每一個流的時間戳 stream

    默認表達式爲t1-t2, 它意味着把時間戳小的流進行轉發

astreamsync例子

壓力測試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

asyncts

經過須要 壓縮/拉伸 和/或 採樣點/填補靜音 來讓音頻數據和時間戳同步。

這個濾鏡不默認編譯,請使用aresample來壓縮/拉伸。

它接受下面的參數:

  • compensate

    若容許則經過拉伸/壓縮來讓數據匹配時間戳。默認禁止。當禁止時數據對時間戳將以靜音補齊

  • min_delta

    觸發數據丟棄/補齊的 時間戳與音頻數據最小差別(按秒爲單位)默認爲0.1。若是默認值仍是不完美同步,能夠嘗試設置爲0

  • max_comp

    compensate=1時,每秒最大補齊樣本點數,默認爲500.

  • first_pts

    這時一個時基單位(其實設置在前面補齊/去除 時間),第一個PTS爲 1/sample_rate, 它容許了在開始補齊/去除 的時間量。默認狀況下, 沒有假定一個,全部沒有補齊/調製。 例如 要讓一個音頻和另外的視頻同步,可能須要在前面加上/或者減去 一些樣本點

atempo

調整音頻節奏(變奏)

濾鏡接受1個參數,表示音頻節奏。若是不知道,則默認爲1.0,表示不變,參數值範圍爲[0.5,2.0]

atempo例子

  • 減慢爲80%

    atempo=0.8

  • 加快爲125%

    atempo=1.25

atrim

建設連續輸入中的部分做爲輸出。

接受下面的參數:

  • start

    以秒爲單位的開始時間戳。即所指時間樣本點將做爲輸出的第一個樣本點

  • end

    以秒爲單位的結束時間戳。即所指時間前最後一個樣本點將做爲輸出的最後樣本點,其所指樣本點及其後的均被丟棄。

  • start_pts

    相似start,除了它的不是以秒爲單位

  • end_pts

    相似end, 除了它不是一秒爲單位

  • duration

    輸出的持續時間

  • start_sample

    要輸出的第一個樣本點序號

  • end_sample

    要丟棄的第一個樣本點序號,(其前的最後一個樣本點是輸出的最後一個樣本點)

其中start, endduration採樣持續時間格式描述,參考相關章節以瞭解詳情。

注意前面的start/endduration是看幀的時間戳,而有_sample的選項則只是簡單的對傳入數據的樣本點計數。全部如start/end_ptsstart/end_sample會形成不一樣的結果(當時間戳不許確、或從0開始)。還要注意這個濾鏡並不修改時間戳。若是你想讓輸出時間從0開始,則在其後插入atrim濾鏡

若是同時有多個startend選項被設置,濾鏡嘗試(貪婪算法)保留儘可能多的樣本點做爲輸出(即startend差最大的)。若是想保留多個塊,須要鏈接多個atrim濾鏡來應用(多個次輸入源,接atrim後再鏈接起來)

默認全部輸入被保留。全部它可被配置爲保留結束前的一切。

例子:

  • 丟棄指定時間外的輸入:

    ffmpeg -i INPUT -af atrim=60:120

  • 僅保留開始的1000幀

    ffmpeg -i INPUT -af atrim=end_sample=1000

bandpass

應用一個經過中心點頻率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

bandreject

應用一個經過中心點頻率frequency定義的兩極Butterworth(巴特沃斯)帶通濾波器,其有單側3dB的帶寬。濾鏡到期後每一個8分音度有6dB的衰減。

  • frequency, f

    設置濾鏡的中心點頻率,默認3000.

  • width_type

    設置指定帶通濾波的類型:

    h

    Hz

    o

    octave-8分音度

    s

    slope-斜率
  • width, w

    設置帶通濾波帶寬(單位爲width_type

bass

使用雙刀擱置濾波器增長或減小低音(低)音頻的頻率響應,相似於一個標準的高保真的音控。這也被稱爲擱置平衡(EQ)。

濾鏡接受下面選項:

  • gain, g

    設置在0Hz的增益,其可用的範圍約爲-20(大振幅)+20。要合適的值以防被削波(振幅過大超出說了樣本格式容許值範圍就削波)

  • frequency, f

    設置濾鏡的中心點頻率,默認100 Hz.

  • width_type

    設置指定帶通濾波的類型:

    h

    Hz

    o

    octave-8分音度

    s

    slope-斜率
  • width, w

    設置帶通濾波帶寬(單位爲width_type

biquad

應用一個 biquad IIR(無限衝激響應)濾鏡,它有b0、b一、b2和a0、a一、a3 分別做爲分子和分母。

bs2b

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

channelmap

從新映射輸入通道

它接受下面的參數:

  • 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

channelsplit

把輸入音頻流的每一個通道分開做爲多個輸出流

它接受下面的參數:

  • 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

chorus

給聲音添加合唱效果

可讓獨唱變得像合唱,但也能夠用於儀表。

合唱與回聲效應都有短延遲,可是回波延遲是常數,合唱則採用不一樣的正弦或三角調製。調製深度範圍定義了調製延遲(播放以前或以後的延遲)。所以延遲的聲音聽起來較慢或更快,這是原來周圍的延遲調整聲音,像是有一個與合唱總體略微差別。

它接受下面的參數(每一個參數項若是有多個可能值用|分隔):

  • in_gain

    設置輸入增益,默認0.4.

  • out_gain

    設置輸出增益,默認0.4.

  • delays

    設置延遲,延遲一般在40ms - 60ms

  • decays

    設置衰減

  • speeds

    設置速度

  • depths

    設置深度

chorus例子

  • 一個延遲(二人合唱效果):

    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

compand

音頻壓縮或擴展的動態範圍(動態壓縮)

它接受下面的參數(參數值有多個時用|分隔,各個參數間用分隔):

  • 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例子

  • 爲音樂適合在嘈雜環境中聽時讓音樂更安靜和響亮:

    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

dcshift

將直流轉換應用到音頻。

這能夠有助於消除直流偏置(可能由硬件問題引發的記錄鏈)的音頻。直流偏置的影響是減小空間,所以體積。astats濾鏡能夠用來肯定一個信號直流偏移。

  • shift

    設置直流偏置,容許值爲[-1, 1].它疊加到音頻上

  • limitergain

    可選,它應該有一個遠低於1的值(例如 0.05 或0.02)用來防止裁剪。

earwax

讓聲音更容易在耳機聽

這個爲44.1kHz立體聲(即CD音頻格式)添加cues(線索)。讓聲音聽起來像離開了耳機,是在揚聲器前面(標準應該播放的環境)。

它從SoX移植來。

equalizer

應用一個兩極平衡(EQ)峯值濾鏡。經過這個濾鏡,信號電平值在選定的頻率能夠加強或者衰減(不想bandpassbandreject濾鏡),而其它頻率不變。

爲了產生複雜的平衡曲線,這個過濾器能夠被使用幾回,每個都有不一樣的中心頻率。

濾鏡接受以下選項:

  • frequency, f

    設置中心頻點,單位 Hz.

  • width_type

    設置帶通濾波寬度定義類型

    h

    Hz

    q

    Q-Factor

    o

    octave

    s

    slope
  • width, w

    設置帶通濾波寬度,其關聯width_type

  • gain, g

    設置對應增益,單位dB

equalizer例子

  • 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

flanger

爲音頻增長翻邊效果

濾鏡接受下面的選項:

  • 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

    設置延遲線內插方法,可能值爲linearquadratic,默認linear

highpass

指定頻率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的.巴特沃斯響應

join

把多個輸入流鏈接成一個多通道流

它接受下面參數:

  • 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

加載一個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號輸入。

ladspa例子

  • 列出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

Commands

它支持下面的命令:

  • cN

    編輯N-th控制值

    若是指定的值無效,會忽略它。

lowpass

應用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的.巴特沃斯響應

pan

按指定的增益關係混合。濾鏡接受通道佈局和一組通道定義

這個濾鏡也能夠有效的從新映射通道音頻流。

濾鏡接受的參數格式爲:"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的混合例子

例如,若是想下變換立體聲爲單聲道,並且更大的權重是在左聲道:

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

pan的再映射例子

通道再映射僅在下面的狀況起效:

  • 增益爲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

ReplayGain掃描儀濾鏡。這個濾鏡以一個音頻流做爲輸入和輸出也不改變。在過結束後顯示track_gaintrack_peak

resample

轉換音頻採樣格式,採樣率和通道佈局,它通常不直接使用。

silencedetect

檢測一個音頻流中的靜音。

這個濾鏡是在檢測到輸入音頻小於或等於一個噪音公差值,且持續時間大於或等於最低噪音持續時間時輸出日誌消息

輸出的時間和持續時間以秒爲單位

濾鏡接受下面的選項:

  • duration, d

    設置需通告的靜默持續時間(默認爲2秒).

  • noise, n

    設置噪聲限,能夠採樣爲dB描述 (指附加值的dB表示) 或者振幅比,默認爲-60dB或者0.001 0.001.

silencedetect例子

  • 檢測5秒靜默,-50dB的噪音限

    silencedetect=n=-50dB:d=5

  • 噪音限爲0.0001 檢測靜默(靜默時長2秒)

    ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -

silenceremove

從音頻的開始、中間或者結束刪除靜默

濾鏡接受以下選項:

  • 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例子

  • 下面的示例說明了如何使用這個過濾器開始錄音,而不包含一般發生的按鍵後的延遲按,即按下鍵到開始記錄之間的靜默:

    silenceremove=1:5:0.02

treble

對頻點的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

調整輸入音量

接受下面的參數:

  • 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_ratetb有效外其餘都無效而等於NAN

volume命令

濾鏡支持下面的命令:

  • volume

    編輯音量表達式。這個命令接受相同選項和語法做爲命令參數

    若是描述的表達式無效,它將保持當前值

  • replaygain_noclip

    經過限制防止剪裁

    默認對於replaygain_noclip爲1

volume例子

  • 調整輸入音量

    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

volumedetect

檢測輸入音頻音量

濾鏡沒有參數,輸入也不會被編輯。統計數據將在輸入流結束後輸出到日誌中。

特別是它顯示平均音量(均方根),最大音量(每一個樣本基礎上)和開始來的音量直方圖(從最大音量累計1/1000樣本)

全部的音量都是相對於最大PCM值的

volumedetect例子

這裏有一個輸出實例:

[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個地方會削波。

相關文章
相關標籤/搜索