ffmpeg: изолировать один аудиоканал

3369
stephenwade

Как я могу использовать, ffmpegчтобы изолировать один канал от аудиофайла? У меня есть стереофонический аудиофайл, и мне нужно, чтобы вывод был содержимым правого канала в монофоническом аудиофайле.

Хотя я уверен, что это довольно легко сделать, я не могу понять это. Спасибо за помощь!

6

1 ответ на вопрос

8
LordNeckbeard

You have two methods:

-map_channel

You can use the -map_channel option:

ffmpeg -i stereo.wav -map_channel 0.0.1 right_mono.wav 
  • The first 0 is the input file id
  • The next 0 is the stream specifier
  • The 1 is the channel id

So this can be translated as: first file, first stream, second channel (or right channel).

From the -map_channel documentation:

The order of the -map_channel option specifies the order of the channels in the output stream. The output channel layout is guessed from the number of channels mapped (mono if one -map_channel, stereo if two, etc.

pan audio filter

You could also use the pan audio filter:

ffmpeg -i stereo.wav -af pan=1:c0=c1 right_mono.wav 
  • 1 is output channel layout or number of channels
  • c0=c1 is the "outdef", or output channel specification
  • c0 represents the desired output channel number
  • c1 represents the input channel to use

Make sure to read the pan documentation first.

Интересно, что в файлах FLAC / WAV `-map_channel` почти мгновенно говорит" Обнаружено чистое сопоставление каналов ". Louis 10 лет назад 0
@Louis См. [Примеры переназначения] (http://ffmpeg.org/ffmpeg-filters.html#Remapping-examples) для объяснения «Обнаружено чистое сопоставление каналов». LordNeckbeard 10 лет назад 1
Ах, хорошо, так что панорамирование кажется превосходным в том, что оно может также выполнять чистое отображение каналов для файлов с потерями. Louis 10 лет назад 0
@ Луис, я думаю, так должно быть. Консольный вывод примера `-map_channel` показывает, что` -map_channel пересылается в lavfi аналогично -af pan = 0x4: c0 = c1` и [md5 muxer] (http://superuser.com/a/532223 / 110524) показывает, что потоки одинаковы. Я не совсем понимаю `0x4` LordNeckbeard 10 лет назад 0