ステレオを2つのモノWAVファイルに分割する方法があるかどうか知りたいと思いました。私の最初の推測は
ffmpeg -threads "16" -i "$2" -map 0:1:1 "$3"
私のサンプルビデオには次の情報があるため:
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 39mn 0s
Bit rate mode : Constant
Bit rate : 256 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
だから私はこれが2つのチャンネルを持つ1つのオーディオストリームを持っていて、2つのモノチャンネルが欲しいです。最初はmap_channelで試しましたが、うまくいきませんでした。エラーメッセージが表示されていました。
Syntax error, mapchan usage: [file.stream.channel|-1][:syncfile:syncstream]
だから私は上記のコードでもう一度試しましたが、少なくともffmpegは何かをしましたが、結果は私が期待したものではなく、2つのモノwavファイルに分解するのではなく、結果は次のとおりでした。
info.system.container = WAVE
info.system.size = 449413166 Bytes
info.system.size = 428.59 MiB
info.system.playtime = 2340.69 s
info.audio0.codec = PCM
info.audio0.desc =
info.audio0.format_endianness = Little
info.audio0.format_sign = Signed
info.audio0.format_resolution = 16 bits
info.audio0.samprate = 48000 Hz
info.audio0.channels = 2
再び2つのオーディオチャネルがあるので、どこで問題が発生しましたか?
Ffmpegを使用すると、ステレオから2つの個別のモノファイル、または1つのファイル内の2つのモノストリームに移動するために知っているいくつかの方法があります。
-map_channel
オプションffmpeg -i stereo.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav
pan
音声フィルターffmpeg -i stereo.wav -filter_complex \
"[0:0]pan=1|c0=c0[left]; \
[0:0]pan=1|c0=c1[right]" \
-map "[left]" left.wav -map "[right]" right.wav
channelsplit
音声フィルターこれにより、2つの個別のモノストリームを持つ1つの出力ファイルが作成されます。
ffmpeg -i input.m4a -filter_complex channelsplit out.mka
そのためには channelsplit filter を使用する必要があります。 -mapはこれを行うことができません。例えば:
ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
私が提供したドキュメントへのリンクを確認してください。