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

基本コマンド

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

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

左右のチャンネルを同じだけ合わせたステレオ音声
ffmpeg -i input -af "pan=stereo|c0<1*FR+1*FL|c1<1*FR+1*FL" -vcodec copy output ffplay -i input -af "pan=stereo|c0<1*FR+1*FL|c1<1*FR+1*FL"
5.1ch の音声の音量を変える(FC, LFE を2倍にする)
ffmpeg -i input -af "pan=5.1|FL=FL|FR=FR|FC=2*FC|LFE=2*LFE|BL=BL|BR=BR" -vcodec copy -acodec ac3 output.ts
ffplay -i input -af "pan=5.1|FL=FL|FR=FR|FC=2*FC|LFE=2*LFE|BL=BL|BR=BR"

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

オプション

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

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

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

コメントを残す

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

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