amerge
とchannelmap
フィルタを合わせたもの。
音声ストリームのチャンネルレイアウトを指定する amerge
音声のチャンネルレイアウトを変えるchannelmap
基本コマンド
左右それぞれのレイアウトのモノラルPCMをステレオPCMにする。
ffmpeg -i left.wav -i right.wav -filter_complex join=inputs=2 stereo.wav
個別の6トラックを1つのファイルまとめたサラウンドファイルにする。
ffmpeg -i fl.wav -i fr.wav -i fc.wav -i lfe.wav -i bl.wav -i br.wav -filter_complex "join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-LFE|4.0-BL|5.0-BR" 5.1.flac
サラウンドの音声トラックが正常に並んでいるときはオプションはシンプルにできる。
ffmpeg -i input.mov -filter_complex join=inputs=6:channel_layout=5.1 -vn 6ch.flac
映像1トラックに音声8トラックを、映像とサラウンド、ダウンミックスを個別に出力。
ffmpeg -i input.mov -filter_complex join=inputs=6:channel_layout=5.1[6ch];[a:6][a:7]join=inputs=2:channel_layout=stereo[stereo] -map 0:v -c:v copy video.mov -map [6ch] 6ch.flac -map [stereo] stereo.flac
32ビット深度以上のPCMなどをFLACに変換するときは-strict experimentalを出力ファイルの前につける。
公式ドキュメント:FFmpeg Filters Documentation : join
オプション
チャンネル配置はチャンネルレイアウトの書式に準ずる。
- inputs[int]
入力数の指定
既定値:2
範囲:1からINT_MAXまで - channel_layout[string]
チャンネルレイアウトの指定
既定値:”stereo” - map[string]
入力するファイルとストリームを左に、–で続けて右に目的の配置先を指定し別のチャンネルには|で区切って指定する。0.0は1入力目のファイルの最初のストリーム
例:”map=0.0-FR|1.0-FL”