30 сент. 2010 г.

NX Client + Multimedia support

Появилась интересная задачка - получить звук с удаленного терминала на локальную рабочую станцию. И там и там linux (Debian Lenny и Ubuntu Lucid), терминал - NX (не ванильный NX-free от NoMachine), а RX@Etersoft, но в данном вопросе сие неважно). 
Немного потыкавшись по интернетам, выяснил, что сие возможно, причем без излишнего шаманства. Разработчики клиента добавили функционал "проброса" аудио-потока через nx-сессию, поэтому со стороны клиента достаточно в настройках подключения во вкладке Services выставить галку Multimedia Support. 
С серверной стороны действий несколько больше. Вскрытие показало, что для передачи аудио-потока используется eSound. В принципе, никаких допольнительных настроек оного не требуется, достаточно просто его установить:
apt-get install esound
Затем выставляем галку "Включить программное смешивание звука (ESD)" в Система - Параметры - Звук - вкладка Звук. Если установлен пакет gnome-audio, то тут же можно проверить работоспособность на звуковых файлах, нажав "Воспроизвести".
В принципе, всё. Можно слушать музыку, смотреть фильмы и так далее, нужно лишь установить какой-нибудь поддерживающий esd медиаплаер. Например, для работы с amaroK нужно в настройках движка xine (должна быть установлена библиотека libxine1) выставить модуль вывода esd. 
Непонятно, правда, как правильно задать вывод через esd для vlc, я ниасилил сделать это в интерфейсе настроек. Однако рабочим является такой вариант: vlc --aout=esd file:///home/user/Track1.mp3. Предварительно стоит установить пакет vlc-plugin-esd, который по умолчанию не всегда установлен.
Таким образом, если ширина канала позволяет, звук идет без артефактов. Теоретически, думаю, можно регулировать канал потока, но этим я не занимался пока что.