Ffplayで5.1 flacファイルを再生しようとすると、次のように自動的にストリームが検出されます。
Duration: xx:xx:xx.xx, start: 0.000000, bitrate: xxxx kb/s
Stream #0:0: Audio: flac, 48000 Hz, 5.1(side), s32 (24 bit)
ご覧のとおり、ファイルがチャネルレイアウト5.1(side)として検出されます。これにより、サイドスピーカー(実際にはリアスピーカー)が非常に静かになります。これらのチャンネルにゲインを追加すると、歪みが生じます。 FL、FR、C、LFE、RL、RRとして記述されているffplayドキュメントの他の5.1チャンネルレイアウトを使用して、それらを適切に再生したいだけです。
Ffplayドキュメントからの抜粋を次に示します。
Standard channel layout compositions can be specified by using the following identifiers:
‘5.1’
FL+FR+FC+LFE+BL+BR
‘5.1(side)’
FL+FR+FC+LFE+SL+SR
上記のレイアウトには両方とも6つのチャンネルがあります。では、「5.1(side)」ではなく「5.1」を使用するように指定するにはどうすればよいですか?
このレイアウトではオーディオがミックスされ、スピーカーでセットアップしたのはこのレイアウトです。
どうすればこれを達成できますか?
channelmap フィルターを使用できます:
ffmpeg -i input.flac -af "channelmap=channel_layout=5.1" output.flac
または、再エンコードを回避する場合は、再生時にチャンネルを再マッピングします。
ffplay -af "channelmap=channel_layout=5.1" input.flac
mpv --audio-channels=5.1 input.flac
私がやったのは、5.1(サイド)flacファイルを取得し、ffmpegで6つの.wavファイルに分割することです(最近のffmpegの相対性が必要です)。
開始するには、空のフォルダーに.flacを配置し、ターミナルのそのフォルダーにcdします。このコマンドは.wavに分割されます。 (例としてvoltest.flacを使用
ffmpeg -i ./voltest.flac -filter_complex "channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]" -map "[FL]" front_left.wav -map "[FR]" front_right.wav -map "[FC]" front_center.wav -map "[LFE]" lfe.wav -map "[SL]" back_left.wav -map "[SR]" back_right.wav
分割後、このコマンドを使用してflacに再エンコードします
ffmpeg -i front_left.wav -i front_right.wav -i front_center.wav -i lfe.wav -i back_left.wav -i back_right.wav -filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]amerge=inputs=6[aout]" -map "[aout]" output.flac
したがって、output.flacは必要に応じてマップされます。おそらく、一度に多くの.flacsを一度に実行するスクリプトを作成できます。少し実験して名前.