ffmpeg 3.4 から追加のフィルタ。サラウンドを HRIRs(head-related impulse response, 頭部インパルス応答) ファイル web.archive.orgを元に頭部伝達関数(HRTF)を適用しユーザの周りに仮想スピーカを作ってステレオとして出力するheadphoneフィルタの使い方。

HRIRsファイルの配布ページが重たい場合はミラーを上げている。

HRIRsファイルには DFC, MINP, RAWがあり、基本コマンドにはSubject_001_Wav.zipを使っている。

基本コマンド

5.1ch の音声に映像をコピーして 2ch で出力
ffmpeg -i input -i azi_30_ele_0_DFC.wav -i azi_330_ele_0_DFC.wav -i azi_0_ele_0_DFC.wav -i azi_100_ele_0_DFC.wav -i azi_260_ele_0_DFC.wav -filter_complex "[0:a][1][2][3][3][4][5]headphone=FL|FR|FC|LFE|BL|BR" -vcodec copy output.mp4
2ch の音声を 5.1ch にsurroundフィルタで変換し映像をコピーして 2ch で出力
ffmpeg -i input -i azi_260_ele_0_DFC.wav -i azi_100_ele_0_DFC.wav -i azi_0_ele_0_DFC.wav -i azi_30_ele_0_DFC.wav -i azi_330_ele_0_DFC.wav -filter_complex "[a:0]surround[0a];[0a][1][2][3][3][4][5]headphone=FL|FR|FC|LFE|BL|BR" -vcodec copy output.mp4
公式ドキュメント:FFmpeg Filters Documentation : headphone

オプション

ゲインの設定をしても音量が変わらず、チャンネルマッピングmap以外の設定の方法がよく分からない。個別チャンネルの音量設定はpanフィルタでもできる。

  • map[string]
    入力音声を配置し畳み込み処理をする。チャンネル毎に“|”で区切り、出力音声より多い数を入力する。基本は元となる音声にサラウンドのチャンネル数だけ HRIRs ファイルを入力する
  • gain[float]
    ゲイン(dB)の設定
    既定値:0
  • lfe[int]
    LFE ゲイン(dB)の設定
    既定値:0
  • type[float]
    処理形式の設定
    0, time (time domain processing ) 遅い
    1, freq (frequency domain processing) 速い
    既定値:1

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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