ffmpeg 3.4 から追加予定のフィルタ。入力した音声の周波数からフロントとリアの音声を分けてサラウンド(5.1ch など)に変換する surround
フィルタの使い方。
基本コマンド
アンプなどにもよるがサラウンドは 48KHz じゃないとサラウンドでデコードしないこともある。コーデックも aac や pcm よりも ac3 のほうがデコードの汎用性が高い。既定値では入力音声のチャンネル数 chl_in はステレオになっている
ffmpeg -i input -af surround -ar 48000 -vcodec copy -acodec aac output.ts
sox
がインストールされている場合は sox
でリサンプリングする
ffmpeg -i input -af aresample=48000:resampler=soxr,surround -vcodec copy -acodec aac output.ts
サラウンドの各チャンネルを出力するには channelsplit
フィルタを使う
ffmpeg -i input -filter_complex surround,channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR] -map [FL] FL.wav -map [FR] FR.wav -map [FC] FC.wav -map [LFE] LFE.wav -map [SL] SL.wav -map [SR] SR.wav
公式ドキュメント:FFmpeg Filters Documentation : surround
オプション
- chl_out[string]
出力チャンネル数。指定値は FFmpeg Utilities Documentation : Channel Layout を参照
規定値:5.1 - chl_in[string]
入力チャンネル数。指定値は FFmpeg Utilities Documentation : Channel Layout を参照
規定値:stereo - level_in[float]
入力音量レベル
規定値:1 - level_out[float]
出力音量レベル
規定値:1 - lfe[boolean]
LFE(Low-frequency effect) チャンネル、いわゆるサラウンドチャンネルの 0.1ch のこと、の出力を許可する
規定値:1(許可) - lfe_low[int]
LFE カットオフの下限 Hz
規定値:128 - lfe_high[int]
LFE カットオフの上限 Hz
規定値:256