簡介與其他資料:
http://www.mobile01.com/topicdetail.php?f=510&t=3734550
其他範例:
http://www.mobile01.com/topicdetail.php?f=510&t=4487462
聲道編號與布局名稱
mono: FC
聲道布局名稱為 `mono`,單聲道,聲道 #0 就是 `FC`
stereo: FL+FR
聲道布局名稱為 `stereo` ,2 聲道。聲道 #0 - 1: `FL`, `FR`
5.1(side): FL+FR+FC+LFE+SL+SR
聲道布局名稱為 `5.1(side)`,6 聲道,聲道 #0 - 5: `FL`, `FR`, `FC`, `LFE`, `SL`, `SR`。
查詢各音訊布局各聲道編號
可用 `-layouts` 查詢得知更多布局:
ffmpeg -layouts
查詢音訊的聲道布局
使用 ffmpeg 讀取影片檔
ffmpeg -i movie.mkv
假設輸出結果是這樣:
```
Input #0, matroska,webm, from 'movie.mkv':
Duration: 00:40:38.08, start: 0.000000, bitrate: 21128 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x800 [SAR 1:1 DAR 12:5], 24 fps, 24 tbr, 1k tbn, 48 tbc
Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:3(eng): Subtitle: subrip
```
由以上結果可知音訊布局是 `5.1(side)`
降混聲道 (Dwonmix)
要將聲道以混合的方式由多變少可以使用 `-ac` 選項。當設定的輸出的聲道數量數比輸入還要少時,會以混合輸入聲道的方式減少聲道。
降混 2 聲道以上至立體聲 (stereo)
使用 `-ac 2` 降混為雙聲道:
ffmpeg -i input.wav -ac 2 output.wav
特殊降混
表面上是將多個聲道降混到較少的聲道,但透多聲道的訊息被矩陣編碼給隱藏到輸出的聲道內容之中,特過支援的解碼器或與設備可以將隱藏的多聲道訊息還原回多聲道。
降混 6 聲道以上至 Dolby Pro Logic II
使用 `aresample` 過濾器提供的 `matrix_encoding` 選項降混為 DPL2。
ffmpeg -i input.wav -ac 2 -af "aresample=matrix_encoding=dplii" output.m4a"
也可使用 qaac / refalac 的自訂 matrix mixer 來處理。
qaac / refalac: http://www.mobile01.com/topicdetail.php?f=510&t=3747920
提取聲道
提取 1 個聲道為單聲道 (mono)
使用 `channelsplit` 過濾器提取第一個(#0)聲道:
ffmpeg -i input.wav -filter_complex "channelsplit=channel_layout=stereo[c0][c1]" -map "[c0]" channel_0.wav
使用 `-map_channel` 選項提取第一個(#0)聲道:
ffmpeg -i input.flac -map_channel 0.0.0 output.flac
使用 `pan` 過濾器提取第一個(#0)聲道:
ffmpeg -i input.flac -af "pan=1c|c0=c0" output.flac
使用 `pan` 過濾器提取輸入音訊的左聲道:
ffmpeg -i input.flac -af "pan=1c|FC=FL" output.flac
提取 2 個聲道為立體聲 (stereo)
使用 `pan` 過濾器提取 FL 與 FR 輸出為雙聲道:
ffmpeg -i input.wav -af "pan=stereo|c0=FL|c1=FR" output.wav
使用 `pan` 過濾器提取聲道編號0與1輸出為雙聲道:
ffmpeg -i input.wav -af "pan=stereo|c0=c0|c1=c1" output.wav
使用 `-map_channel` 提取聲道編號0與1輸出為雙聲道:
ffmpeg -i input.wav -map_channel 0.0.0 -map_channel 0.0.1 output.wav
複製聲道
要將聲道以複製的方式由少變多可以使用 `-ac` 選項。當設定的輸出的聲道數量數比輸入還要多時,會以複製輸入聲道的方式增加聲道。也可以使用 `-map_channel` 重複選取同樣的輸入聲道來得到相同的內容的新聲道。
mono → stereo
FL = input_FC
FR = input_FC
使用 `-ac` 選項:
ffmpeg -i input.wav -ac 2 output.wav
使用 `pan` 過濾器:
ffmpeg -i input.wav -af "pan=stereo|c0=c0|c1=c0" output.wav
`-map_channel` 選項:
ffmpeg -i input.wav -map_channel 0.0.0 -map_channel 0.0.0 output.wav
`amerge` 過濾器:
ffmpeg -i input.wav -filter_complex "[0:a][0:a]amerge=inputs=2[aout]" -map "[aout]" output.wav
混合聲道
stereo → stereo 兩個聲道互相混合
FL = input_FL + input_FR
FR = input_FL + input_FR
使用 `pan` 過濾器來互相混合左右聲道:




























































































