各チャンネルの音声を混ぜたり無音にしたりできる pan フィルタの使い方。

基本コマンド

c1(FR) をそのままに c0(FL) を無音にしたステレオ音声。
ffmpeg -i stereo -af "pan=stereo|c1=c1" -c:v copy output
ffplay -i input -af "pan=stereo|c1=c1"

c1(FR)c0(FL) を逆にしたステレオ音声。
ffmpeg -i stereo -af "pan=stereo|c0=FR|c1=FL" -c:v copy output
ffplay -i input -af "pan=stereo|c0=FR|c1=FL"

ステレオ音声をそれぞれ別ファイルで出力。
ffmpeg -i stereo -filter_complex "[0:a]pan=1c|c0=c0[left];[0:a]pan=1c|c0=c1[right]" -map "[left]" left.wav -map "[right]" right.wav

左右のチャンネルを同じだけ合わせたステレオ音声。
ffmpeg -i stereo -af "pan=stereo|c0<1*FR+1*FL|c1<1*FR+1*FL" -c:v copy output ffplay -i input -af "pan=stereo|c0<1*FR+1*FL|c1<1*FR+1*FL"

5.1チャンネルの音声の音量を変える(FC, LFE を2倍にする)。
ffmpeg -i 6channels -af "pan=5.1|FL=FL|FR=FR|FC=2*FC|LFE=2*LFE|BL=BL|BR=BR" -c:v copy -c:a ac3 output.ts
ffplay -i input -af "pan=5.1|FL=FL|FR=FR|FC=2*FC|LFE=2*LFE|BL=BL|BR=BR"

5.1チャンネルの音声を FL と FR だけのステレオにする。
ffmpeg -i 6channels -af "pan=stereo|c0=FL|c1=FR" output

公式ドキュメント:FFmpeg Filters Documentation : pan
公式wiki:AudioChannelManipulation – FFmpeg

オプション

最初の引数で出力チャンネル数を指定し、| で区切りながら各チャンネルの設定を行う。設定を行わなければ無音チャンネルになるc0 から順番にチャンネルが割り当てられその順番は チャンネルレイアウトの書式 に準ずる。

Individual channels:
NAME           DESCRIPTION
FL             front left
FR             front right
FC             front center
LFE            low frequency
BL             back left
BR             back right

Standard channel layouts:
NAME           DECOMPOSITION
mono           FC
stereo         FL+FR
5.1            FL+FR+FC+LFE+BL+BR

設定の順番は "l|outdef|outdef|..." になる。入力チャンネルを合わせるときに = または < が使え、前者は合計が 1 を超えても超えなくてもそのまま合計する。後者は合計が 1 を超えても超えなくても 1 になるように調整し音量が大きすぎてクリップノイズが発生するのを抑える。

例えば、"pan=stereo|c1=c1" だと stereo は2チャンネル出力で c0(FL), c1(FR) の設定ができるが、c0 は何も書いていないので無音になる。最初の c1 が出力するチャンネル、次の c1 が入力したチャンネルになり、入力した c1 に出力する c1 を割り当てている。

複数ファイルを入力したときの c の番号は1入力の音声から 0 が割り振られ、振り終わったら2入力の音声が引き続き割り振られる。

  • l
    出力チャンネルレイアウトmono, stereo, 5.1 などと設定する方法と、出力チャンネル数 c0, c1, c2 などで設定する方法の2通りがある
  • outdef
    出力チャンネル数を設定したら次のように設定する "out_name=[gain*]in_name[(+-)[gain*]in_name...]"
  • out_name
    出力チャンネル名 mono, stereo, 5.1 などと設定する方法と、出力チャンネル番号 c0, c1, c2 で設定する方法の2通りがある
  • gain
    音量の累乗係数の設定。1 だと入力音量そのまま
  • in_name
    入力チャンネル名の設定。個別のチャンネルを合わせることも出来る

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)