При обработке многоканального звука возникает потребность располагать отдельно всеми моноканалами в PCM (WAV) - формате.
В подобной ситуации можно воспользоваться mplayer с фильтром pan.
В первую очередь, укажем, что нам нужен шестиканальный звук, из которого мы и будем отбирать по одной дорожке параметром -channels 6 .
Запись вывода в wav-файл будет осуществляться опцией -ao pcm:file=имя_файла
Аудиофильтр pan указывает на расположение и силу каналов. Параметры записываются через двоеточие: первый параметр указывает на число каналов (в нашем случае 1), а в последующих - сила каждого из исходных каналов в получаемом.
Для нашей ситуации такую операцию придется провести 6 раз, для каждого из моноканалов в отдельности.
Например, для surround left канала, настройки pan будут выглядеть так:
pan=1:0:0:1:0:0:0
В результате получилось
mplayer /media/m/1.ac3 -ao pcm:file=/media/video/l.wav -channels 6 -af pan=1:1:0:0:0:0:0 && mplayer /media/m/1.ac3 -ao pcm:file=/media/video/r.wav -channels 6 -af pan=1:0:1:0:0:0:0 && mplayer /media/m/1.ac3 -ao pcm:file=/media/video/sl.wav -channels 6 -af pan=1:0:0:1:0:0:0 && mplayer /media/m/1.ac3 -ao pcm:file=/media/video/lfe.wav -channels 6 -sr pan=1:0:0:0:1:0:0 && mplayer /media/m/1.ac3 -ao pcm:file=/media/video/c.wav -channels 6 -af pan=1:0:0:0:0:1:0 && mplayer /media/m/1.ac3 -ao pcm:file=/media/video/lfe.wav -channels 6 -af pan=1:0:0:0:0:0:1где /media/m/1.ac3 - исходный файл.
Один из 6 результатов выполнения команды выглядит так:
malky@malky-desktop:~$ mplayer /media/m/1.ac3 -ao pcm:file=/media/video/lfe.wav -channels 6 -af pan=1:0:0:0:0:0:1
mplayer: Symbol `ff_codec_bmp_tags' has different size in shared object, consider re-linking
MPlayer SVN-r33713-4.6.1 (C) 2000-2011 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing /media/m/1.ac3.
libavformat file format detected.
[eac3 @ 0x20bc480] max_analyze_duration reached
[eac3 @ 0x20bc480] Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (eac3), -aid 0
Load subtitles in /media/m/
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 48000 Hz, 6 ch, s16le, 1536.0 kbit/33.33% (ratio: 192000->576000)
Selected audio codec: [ffeac3] afm: ffmpeg (FFmpeg E-AC-3)
==========================================================================
[AO PCM] File: /media/video/lfe.wav (WAVE)
PCM: Samplerate: 48000Hz Channels: Mono Format floatle
[AO PCM] Info: Faster dumping is achieved with -benchmark -vc null -vo null -ao pcm:fast
[AO PCM] Info: To write WAVE files use -ao pcm:waveheader (default).
AO: [pcm] 48000Hz 1ch floatle (4 bytes per sample)
Video: no video
Starting playback...
A:8751.5 ( 2:25:51.5) of 8751.5 ( 2:25:51.5) 1.0%
Exiting... (End of file)
Следует отметить, что похожая операция должна быть удачной для любого многоканального аудиофайла, который может быть воспроизведен с помощью mplayer. Также возможно извлекать звук и из видеофайла, при этом необходимо будет добавить опции -vo null -vc null и, при необходимости, указать порядковый номер аудиодорожки, если их больше 1, параметром -aid номер (следует отметить, что для DVD-video нумерация начинается от 128, для TS контейнеров также начало нумерации может отличаться от 0).
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.