как в mplayer выводить звук и по аналоговому выходу и по s/pdif одновременно?

Разные проблемы звука, видео, обсуждение разных устройств и т.д.

Модератор: Модераторы разделов

tull
Сообщения: 484

как в mplayer выводить звук и по аналоговому выходу и по s/pdif одновременно?

Сообщение tull »

mplayer у меня сейчас запускается с ключом -ao alsa:device=spdif -ac hwac3,hwdts,hwmpa.....
соответственно звук идет на процессор по s/pdif непосредственно в том виде, в каком он записан в фильме (ac3, dts, mpeg)
(кстати, если не делать -ac hwac3,hwdts то звук по s/pdif тоже идет, но на процессоре лампочка ac3,dts,mpeg не горит. т.е. насколько я понимаю в этом случае по s/pdif идет просто стерео в PCM)

дык вот, возникла у меня необходимость, чтобы одновременно был звук и на аналоговом выходе интегрированной звуковухи.
-ao alsa:device=front выводит на аналоговый выход, но при этом не работает s/pdif
пробовал по всякому:
-ao alsa:device=spdif,front
-ao alsa:device=spdif,device=front
-ao alsa:device=spdif:device=front
-ao alsa:device=spdif -ao alsa:device=front
и еще как-то, но не помогает.

есть какое-то решение для этого?

з.ы. сразу объясню ситуацию: жена ложится спать раньше меня, соответственно использовать колонки я уже не могу. наушники к процессору не подключаются. mplayer запускается через mythtv (HTPC-оболочка), и каждый раз лезть в настройки и менять параметры запуска мне очень неудобно. запускать mplayer вручную мне еще менее удобно - у этого компа нет ни мыши, ни клавы, только пульт.
так что мне нужен именно вариант, когда звук идет и через s/pdif и через аналоговый выход.
Спасибо сказали:
lavelas
Сообщения: 10
ОС: OpenSUSE 11.1

Re: как в mplayer выводить звук и по аналоговому выходу и по s/pdif одновременно?

Сообщение lavelas »

Частичное решение такое:

Код:

lavelas:/home/php # cat /etc/asound.conf pcm.!default plug:both ctl.!default { type hw card 0 } pcm.both { type route slave.pcm { type multi slaves { a.pcm "analog_out" a.channels 2 b.pcm "spdif_out" b.channels 2 } bindings { 0.slave a; 0.channel 0; 1.slave a; 1.channel 1; 2.slave b; 2.channel 0; 3.slave b; 3.channel 1; # 4.slave b; # 4.channel 2; # 5.slave b; # 5.channel 3; # 6.slave b; # 6.channel 4; # 7.slave b; # 7.channel 5; } } ttable { 0.0 1; 1.1 1; 0.2 1; 1.3 1; # 2.4 1; # 3.5 1; # 4.6 1; # 5.7 1; } } ctl.both { type hw card 0 } pcm.spdif_out { type dmix ipc_key 1024 slave { pcm "hw:0,2" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } } ctl.spdif_out { type hw card 0 device 2 } pcm.analog_out { type dmix ipc_key 2048 slave { pcm "hw:0,0" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } } ctl.analog_out { type hw card 0 device 0 }


Используется плагин multi, hw:0,0 - это аналоговый выход, hw:0,2 - цифровой.
Проблема в том, что у меня получилось пока только стерео раскидать. Если b.channels поменять на 6 и раскоментировать bindings и ttable для остальных каналов - выскакивает ошибка:

Код: Выделить всё

lavelas:/home/php # aplay -D plug:both 01.wav
Playing WAVE '01.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
ALSA lib pcm_params.c:2135:(snd1_pcm_hw_refine_slave) Slave PCM not usable
aplay: set_params:939: Broken configuration for this PCM: no configurations available

Как побороть или из-за чего она возникает мне не понятно.. :( буду дальше копать..

Кстати, в такой конфигурации, если в xine прописать plug:both для всего, кроме passthrough - работает и в наушниках и на spdif. Если и на passthrough - в наушниках - шум. Поэтому на passthrough прописал пока spdif_out и успокоился.
Спасибо сказали: