alsa, кодирование многоканального звука и передача по цифре
gentooman 17 октября, 2009 - 23:11
Доброе время суток!
Собственно такая ситуация. Можно ли многоканальный звук 5.1 в alsa сжимать кодеком ac3 или dts и передавать в таком виде через цифровой выход звуковой карточки на ресивер?
Такой финт на windows работает.
»
- Для комментирования войдите или зарегистрируйтесь
Вот пока то, чего я добился.
Вот пока то, чего я добился. Ядро 2.6.31 смогло опознать мою звуковую карточку. Просто стерео по оптике есть.
Пробовал настроить как описано здесь, но не получается.
При попытке воспроизведения например в audacious
До этого он кодер не находил, поставил alsa-plugins, нашел. alsa версии 1.0.20.
через S/P-DIF вы сможете
через S/P-DIF вы сможете проиграть либо через проигрыватели, основанные на xine-lib, либо через mplayer...
$ mplayer -afm hwac3 file
...в kaffeine еще удобно xine настроить и там же слушать...
если найдете wav файлы с dts внутри, которые mplayer автоматом не распознает, то воспользуйтесь
$ mplayer -ao alsa:device=spdif file.wav
кодировать на лету невозможно в принципе, кодировать в dts невозмножно по лицензионным соображениям, в ac3 можно перекодировать например mplayer...
Через S/P-DIF у меня и так
Через S/P-DIF у меня и так играет стерео. Из коробки, как говорится, сразу как установил, безо всяких хитрых настроек.
Но на фронтальных колонках и сабвуфере (на саб НЧ фильтруется силами ресивера). А мне хотелось бы на всех.
Можно на ресивере постоянно режимы переключать (стерео -> на 5 колонок), но это не наш метод.
Второе, mplayer может передавать ac3 поток напрямую на цифровой выход. Это хорошо. Но одновременно никаких звуков уже не будет.
В поток не влезть. Опять же, если до этого смотрел тюнер/слушал музыку на всех колонках - надо трогать ресивер, чтоб переключить его в соответствующий режим.
Далее, у меня карта Creative X-Fi Titanium Fatality чего-то там. Под 200$ стоила.
Лицензию на кодирование многоканального сигнала на лету в ac3 и dts я проплатил.
Даже на сайте, когда скачиваешь такой кодер для windows, надо серийный номер вводить и т.д.
Я то думал, что она это аппаратно делает. Единственная доступная с такой функцией была.
Оказалось - софтово, на уровне драйвера.
С выходом ядра 2.6.31 она наконец обнаружилась в линуксе. Вот я и задался такой целью, настроить.
Судя по информации в инете, такое возможно.
Вопрос в том - как?
Как правильно подключить фильтр а52, присутствующий в alsa, чтобы он заработал?
всё очень просто, если фильтр
всё очень просто, если фильтр уже установлен
pcm.a52encode {
type a52
card 0
}
перегоняет шестиканальный aac/dts в ac3
заместо
card 0
можно
slavepcm "мойдевайс"
поставить и какой нить другой девайс подцепить
мой .asoundrc
любой 6тиканальный звук перегоняется в ac3
стерео апмиксит на 6 каналов и тоже пакует в ac3
только вот музычку бывает заикает в XBMC, в нём я настроил custom sound device plug:a52upmix
в твоей проге по идее тоже должно работать
speaker-test -c 2 -D a52encode
и
speaker-test -c 6 -D a52encode
по крайней мере работают без проблемс