Звук в NX-сессии (У кого работает?)

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

TheLT
Сообщения: 83
ОС: Gentoo

Звук в NX-сессии

Сообщение TheLT »

Здравствуйте, уважаемые форумчане,

На днях решил поразбираться с поддержкой звука в связке FreeNX и Win-клиентов. Прояснил для себя что звук пропихивается через автоматом форварднутый порт к слушающему на клиенте nxesd.exe, а на сервере требуется поддержка программами esound-демона. Без особых проблем удалось заставить работать программы, имеющие собственные esd-плагины, типа VLC и mplayer. Качественной поддержкой звука это не назовёшь, конечно, поскольку синхронизации с видео никакой нет, но всё же, лучше чем ничего. Проблемы возникли с другими программами, где явной поддержки esd нет. Таким образом, наглухо отказался запускаться, к примеру, Firefox, при su шла ругань на невозможность загрузки библиотек libesd, звука, разумеется, не было. Полагаю, это связано с 64-битной системой.

Всвязи с этим вопрос. У кого-нибудь получилось мало-мальски нормально передавать аудио через NX-сессию, будь то Linux-Linux или Linux-Windows. Как я понял в связке Linux-Linux используется ARTS, в отличие от старого ESD. Возможно в связке Linux-Linux всё прекрасно работает?

Вопрос второй. Как мне известно, у Pulseaudio есть обратная совместимость с esd. Возможна-ли его совместная работа в NX-среде? Это было-бы, полагаю, наилучшим решением, но с налёту у меня решить проблему не получилось, хотя небольшой опыт настройки Pulseaudio есть.

Буду рад услышать Ваши мысли по этому поводу. Всё-таки, на мой взгляд, тема заслуживает внимания, учитывая развитие терминальных технологий. Многим пользователям всё-таки хочется иногда послушать музыку или услышать звук на веб-сайте.
Спасибо сказали:

playnet
Сообщения: 373
Статус: изучающий
ОС: CentOS, FreeBSD

Re: Звук в NX-сессии

Сообщение playnet »

TheLT писал(а):
09.08.2009 19:40
Здравствуйте, уважаемые форумчане,

На днях решил поразбираться с поддержкой звука в связке FreeNX и Win-клиентов.
...

Тоже заинтересовался. Прежде всего, интересует звук из ФФ.
Пока глухо.
Спасибо сказали:

ram3z
Сообщения: 3

Re: Звук в NX-сессии

Сообщение ram3z »

Что решения пока нет? Мне вот тоже интересно
Спасибо сказали:

duxanx
Сообщения: 4

Re: Звук в NX-сессии

Сообщение duxanx »

Здравствуйте.

По поводу звука в сессии FreeNX.

Кто-то оптимальное решение нашел?

Я пробывал в Slackware Linux.
Поставил FreeNX и ESD. Звук играл не плохо.
До ФФ недошел.

Есть программа которая не поддерживает ESD.

Есле ее запускать через esd - в консоли - esd название программы,
она выдает звук по тесту один раз и все, виснит.
Она имеет SIP. И мне надо передавать звук по микрофону и получать.
Микрофон через FreeNX тоже незнаю как сделать.
Может кто то пробывал ?

И еще один вопрос. Я думал тогда, через Pulseaudio получать звук.
Может быть программа не висла и микрофон заработал, бы. Но через Pulseaudio не получется сделать звук вообще.
Пробывал в Fedora 10, но не вышло никак. Там ESD вообще в устройствах не появляется.
Как настроить через Pulseaudio звук ? Подробная инструкция, если есть.

Кстати, вроде в NX4 все работает, я читал, но он платный и дорогой очень, а проба 60 дней и два человека только могут работать.



Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1506
Статус: Подвинутый участник

Re: Звук в NX-сессии

Сообщение dimbor »

duxanx писал(а):
30.01.2012 18:54
И еще один вопрос. Я думал тогда, через Pulseaudio получать звук.
Может быть программа не висла и микрофон заработал, бы. Но через Pulseaudio не получется сделать звук вообще.
Пробывал в Fedora 10, но не вышло никак. Там ESD вообще в устройствах не появляется.
Как настроить через Pulseaudio звук ? Подробная инструкция, если есть.

О rаких-либо инструкциях не известно. Если сами откроете тайну укрощения ESD, то будет первая.
По поводу PA, рекомендую посмотреть на opennx в качестве клиента. Краем глаза видел, что его разработчик энтим делом занимался.

duxanx писал(а):
30.01.2012 18:54
Кстати, вроде в NX4 все работает, я читал, но он платный и дорогой очень, а проба 60 дней и два человека только могут работать.

4-й - не OSS, а посему среди джентельменов тутошней грядки его упоминание считается моветоном. ;)
Спасибо сказали:

duxanx
Сообщения: 4

Re: Звук в NX-сессии

Сообщение duxanx »

Спасибо за ответ dimbor.

Я клиент OPENNX пробывал. я так понял сто он не сильно и отличается.
От NX клиента. Там (клиент OPENNX) и там клиент NX , есть поддержка мультимедиа (галочка).
Только в OPENNX почемуто nxesd.exe не завершает процес.
А так ничего сильно разного в работе не заметил.
Правда OPENNX выдает сообщение при Подготовке мультисервисов - "Не удалось запустить мультимедиа сервисы ",
я так понял ESD.

Я стал копать логи сессии и увидел:

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

** (nautilus:3424): WARNING **: Unable to add monitor:

(nautilus:3424): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
ERROR: ld.so: object 'libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored.
gnome-session[3369]: WARNING: Application 'libcanberra-login-sound.desktop' failed to register before timeout
ERROR: ld.so: object 'libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored.
I: caps.c: Limited capabilities successfully to CAP_SYS_NICE.
I: caps.c: Dropping root privileges.
I: caps.c: Limited capabilities successfully to CAP_SYS_NICE.


Я так понял что это и имеют ввиду клиенты NX или OPENNX что не могут запустить мультимедиа сервисы.
На Slackware Linux OPENNX и Логи не проверял так как там ESD работал, нужно будет попробовать.
В Slackware Linux нет Pulseaudio.

Еще пробовал в node.conf прописать как писали иностранцы.

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

# FreeNX with ENABLE_ESD_PRELOAD="1" will automatically try to setup
# the sound with the help of the esd media helper.
#
# Currently ESD will be used just by the Windows NX Client.
#
# Be sure that $ESD_BIN_PRELOAD is in your path, does exist and work
# before enabling this directive.

ENABLE_ESD_PRELOAD="1"
ESD_BIN_PRELOAD="esddsp"


потом анлог Pulseaudio как я понял

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

ENABLE_ESD_PRELOAD="1"
ESD_BIN_PRELOAD="padsp"


и все тежи ошибки в логах, сессии.

В Slackware Linux этот параметр у меня работал так:
если я его прописывал тогда программа которая неподдержывала ESD запускались автоматом.
Если Не прописывал параметр тогда через коммандною строку - esd программа.

Вообщем если подытожить то у меня из под Slackware Linux у меня болеее менее получилось со звуком
(музыка играла и видео тоже, правда вот не каждая программа хорошо играет через ESD ).
И я доволен этим результатом. А вот из под Fedora 10 нет. Может из-за Pulseaudio ?
Но я пытался удалить Pulseaudio и компилировал ALSA. Но не появляется у меня ESD в устройствах.
А через Pulseaudio я думал что многие программы будут работать.

Так вот незнаю, пока мысли и интерес немного иссяк. Буду ждать, может что то поменяется. Идея сама хорошая.
Спасибо сказали:

achilles85
Сообщения: 15
ОС: Ubuntu 12.04 LTS; Win 7

Re: Звук в NX-сессии

Сообщение achilles85 »

Всем привет! Вот я тоже столкнулся с этой проблемой. Правда у меня звука вообще нет! Что можно сделать? В файлике node.conf я редактировал строки связанные с авторизацией.
Спасибо сказали:

duxanx
Сообщения: 4

Re: Звук в NX-сессии

Сообщение duxanx »

achilles85 писал(а):
01.02.2012 10:16
Всем привет! Вот я тоже столкнулся с этой проблемой. Правда у меня звука вообще нет! Что можно сделать? В файлике node.conf я редактировал строки связанные с авторизацией.


node.conf - это не главное.
Звук будет и без node.conf работать.
Главное ESD. От него все зависит. (Как говорили.)

"Что можно сделать?"
Есле хочешь поэкспорементировать, на Slackware Linux попробуй.

Там Pulseaudio нет. Просто ставиш NX и пакет ESD. Все.
Выставляешь в программах что б воспроизводили звук через ESD.

А так, как мне сказали NX4 ждать нужно.
Спасибо сказали:

achilles85
Сообщения: 15
ОС: Ubuntu 12.04 LTS; Win 7

Re: Звук в NX-сессии

Сообщение achilles85 »

А можно ли в 10.04 удалить pulseaudio, затем поставить ESD? Работать будет?
Спасибо сказали:

duxanx
Сообщения: 4

Re: Звук в NX-сессии

Сообщение duxanx »

achilles85 писал(а):
09.02.2012 09:37
А можно ли в 10.04 удалить pulseaudio, затем поставить ESD? Работать будет?


Я пробывал, не получилось.

Может быть у тебя получится.
Хоть как нибудь, или с pulseaudio или без, наверно уже неважно.

Но, если у тебя получится, тогда расскажешь.

И кстати, так хочется все свойства NX4.

Вообщем, есле ты что нибудь узнаешь, новое про звук, или бессплатный (мечта) NX4 , то расскажешь :rolleyes: .

Удачи achilles85 !

Спасибо сказали:

ShotSDV
Сообщения: 142
ОС: Mandriva

Re: Звук в NX-сессии

Сообщение ShotSDV »

Клиент на винде, сервер Дебиан 6 х32, со звуком никаких проблем, включая ФФ
Спасибо сказали:

achilles85
Сообщения: 15
ОС: Ubuntu 12.04 LTS; Win 7

Re: Звук в NX-сессии

Сообщение achilles85 »

Есть мануал как настроить FreeNX на Debian?
Спасибо сказали:

ShotSDV
Сообщения: 142
ОС: Mandriva

Re: Звук в NX-сессии

Сообщение ShotSDV »

achilles85 писал(а):
24.02.2012 11:49
Есть мануал как настроить FreeNX на Debian?

http://wiki.etersoft.ru/RX
Спасибо сказали:

achilles85
Сообщения: 15
ОС: Ubuntu 12.04 LTS; Win 7

Re: Звук в NX-сессии

Сообщение achilles85 »

Поставил RX@Etersoft на debian 6. Звука нет, на самом сервере звук есть. Подскажите что нужно сделать?
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1506
Статус: Подвинутый участник

Re: Звук в NX-сессии

Сообщение dimbor »

В общем, допрыгался он - звук в nx - заказали его. Значит буду исполнять. Скидывайтесь на венки. Все будет GPL, как обычно.
Новости пока такие:
  • нативный pulseaudio работоспособен при linux-linux. С дуплексом, т.е. скайп под nx-сессией пашет - с тестовой теткой поговорил, была без ума от моего гундявого фальцета. Т.е. esd - надо в топку.
  • win-клиент не приоритетен, но тоже будет точиться - второй очередью.
  • планируется два варианта. Один будет завязан на механизм отключения шифрования ($EXTERNAL_PROXY_IP во freenx), второй - инкапсуляция в ssh-соединение (проброс порта на серверный локалхост). Второй вариант ближайшие дни буду пристально разглядывать на тему ограничений в битрейте. (Если кто быстро подскажет, как зажать канал сетевухи в ксеновской виртуалке, буду очень благодарен.Upd: уже просветил хороший человек)
  • по клиентам: сначала и основной - opennx, т.к. его можно курочить. nxclient получится использовать в первом варианте с помощью хитрой обвязки. Хотя есть хулиганская идейка и насчет второго.
  • freenx точно будет патчиться, nxssh.exe (win) - очень возможно останется целым. Остальная требуха не при делах.
  • теоретически можно присобачить клиентскую камеру. У кого-то еще не безлимитка? ;)


И да, цель поста - все ли я учел в формировании ТЗ? Может еще какие пожелания будут? Чтобы два раза не вставать.

Всех с наступившим. Пусть и к вам придет Дед Мороз!
Спасибо сказали:

playnet
Сообщения: 373
Статус: изучающий
ОС: CentOS, FreeBSD

Re: Звук в NX-сессии

Сообщение playnet »

dimbor писал(а):
01.01.2013 17:01
В общем, допрыгался он - звук в nx - заказали его. Значит буду исполнять. Скидывайтесь на венки. Все будет GPL, как обычно.


На редхатовский SPICE не смотрели? Говорят, там возможностей больше, ограничений меньше..
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 17873
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Звук в NX-сессии

Сообщение Bizdelnick »

playnet писал(а):
02.01.2013 12:02
На редхатовский SPICE не смотрели? Говорят, там возможностей больше, ограничений меньше..

Там всё круто, но он работает только для виртуалок. Соответственно либо надо на терминальном сервере создавать перюзерные виртуалки, что сожрёт массу ресурсов, либо настраивать в виртуалке мультисит, что, вполне вероятно, обеспечит гораздо больший геморрой, чем доводка NX.
RedHat, судя по всему, собирается делать упор на решение с перюзерными виртуалками. Флаг им в руки...
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1506
Статус: Подвинутый участник

Re: Звук в NX-сессии

Сообщение dimbor »

В данный момент верчу оный скайп по прикидкам ширины канала. Очень удивительные вещи получаются.
Итак стенд: dom0 под гентой, там железки и сервер pulseaudio 2.1 (pa). В domU под той-же гентой freenx, xfce4 и скайп 2.2 в качестве клиента pa. Звук для начала пущен мимо nx непосредственно на порт в dom0. Остальной сетевой трафик из гостя идет по тому же интерфейсу.

Первое, что установлено - при любой звуковой активности для звука без задержек требуется ширина около 600 килобит (тут и далее - в секунду). ~350+250 туда+обратно в зависмости от говорим/слушаем. Смотрелось посредством trafshow в dom0, average по порту pulseaudio.

Зажимаю интерфейс в dom0. Мерялки в браузере из domU подтверждают цифры минус трафик nx-сессии (~5%). Далее в скайпе на тестовом звонке. Вплоть до трех мегабит все работает. 2.5 - начинаются мелкие разрывы, но некритичные. 2 мегабита - приехали. Заикание, и тестовая девушка принимает эстонское гражданство. Иногда зависает скайп, приходится убивать. В trafshow видно, что ширина pa ужимается до ~400 килобит, но трафика самого скайпа наружу не видно. Вернее видно, но не такой уж большой - max 100 килобит на пиках. Это может и объяснимо - udp + 24000 rate + сжатие - должно скромно выходить. Пока не пойму, то-ли trafshow с цифрами лажает, то-ли скайповский трафик не весь сечет. Около полутора мегабит остаются не ловленными. Но они есть, кто-то же пододвигает pa. Точно его, тк. заикание tcp-шное - без провалов, но с задержками.

Пробовал ужимать rate в pa (там 48000 на "железных" синках и соурсах) - добился только большего безусловного торможения при любых скоростях, причем процессор не напрягается, хотя должен при пересчете. Или скайп обязан настроиться под даденые звуковым сервером параметры - те же 24000? ХЗ с этой проприетарью.

Хочется любых идей, изложения вашего собственного опыта, советов о не знаемых мною инструментах. А то давайте меня поймаем и руки поровняем. Тоже вариант.

Ведь в локалке оно работать будет, никуда не денется. В ssh же всю эту хрень завернуть, может получиться конфетка из сами знаете чего.
В качестве совсем идиотской идеи, может можно проложить между pa сервером и клиентом технологию открытого voip? Если что знайте - в детстве на ухо наступил кто-то, да еще под окном постоянно петарды взрывают. Так flac или opus?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 17873
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Звук в NX-сессии

Сообщение Bizdelnick »

Вот тут предлагается способ сжатия звука от PA через VLC: http://www.freedesktop.org/wiki/Software/P...ser/Network/RTP. Костыли, но иначе, видимо, никак.
Конечно, mp3, как по ссылке - не лучший вариант. Тут предлагают пользовать CELT: http://article.gmane.org/gmane.comp.audio....o.general/9639/. Можно, наверное, и в сторону Opus посмотреть, тем более что скайп вроде бы на него переводят.
FLAC всяко не поможет: слишком слабо сжимает, и задержка большая будет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1506
Статус: Подвинутый участник

Re: Звук в NX-сессии

Сообщение dimbor »

RTP неприменим. Он udp. Завернуть же его в ssh-ное tcp - тоже костыли плюс потери производительности. На выходе получается ужасающая инвалидная конструкция. Мультикаст излишен опять же, у нас то все интимно. А freedesktop-пульсо-вики, это да, ресурс хороший - уже третьи сутки перечитываю целиком раз за разом.
А действительно - покручу ка опус. Пока локально на пайпах pa, дабы поиметь представление. Пока даже не обращая внимание на latency. Если понравится, надо будет с tcp эти пайпы дружить. Всего лишь? Ну и конечно второй pulseaudio под nx-сессией поднимать зеркальный. Тогда получится схема: скайп - PCM терминальный pa - пайп - opus encode - ? - tcp-сокет - ? - opus decode - пайп - PCM локальный pa - локальный гудок. Ну и обратно от матюгальника - аналогично.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 17873
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Звук в NX-сессии

Сообщение Bizdelnick »

dimbor писал(а):
03.01.2013 15:15
RTP неприменим. Он udp. Завернуть же его в ssh-ное tcp - тоже костыли плюс потери производительности

Действительно, об этом я не подумал. Но вообще vlc и через HTTP умеет стримить.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1506
Статус: Подвинутый участник

Re: Звук в NX-сессии

Сообщение dimbor »

Погонял локально mpg123 -w - Some.mp3 | opusenc ... | padsp opusdec ... Даже со звуко-несуразными шеловскими пайплайнами результаты впечатляющи - жмется на лету вплоть до 12 килобит. Дальше тоже жмется, только уже неразборчиво. Это если использовать штатный синк pa на вход, что, в общем, устроит. Далее попробую выкинуть микрофон в FIFO - должно получиться. Дело за транспортом. Пока что-то ничего не находится подходящего - все предпочитают udp гонять. Редиски. Хотя cначала можно на netcat это дело завести в тестовых целях.
Спасибо сказали:

Bedazzled
Сообщения: 311
ОС: ubuntu

Re: Звук в NX-сессии

Сообщение Bedazzled »

когда тестил x2go там звук работает по дефолуту без доп наcтроек, сервер был на ubunte , клиент Win7
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1506
Статус: Подвинутый участник

Re: Звук в NX-сессии

Сообщение dimbor »

Нативный PA-шный дуплексный звук linux-linux в локалке функционирует на ура. Даже удается заузить канал за счет PA-шного же ресемплирования. На удаленку по ssh не заворачивается, потому как есть такое слово - latency. В виндовом клиенте тоже отлично за исключением ресемплирования из-за тамошней не рилтаймности оного PA. Сейчас работа в процессе, потом будет все опубликовано-расписано. Сейчас же кому невтерпеж, пошарьте в моем гите. Продеретесь через рунглиш - все поймете как. Эх, не хотел до завершения публиковать - с другой задачей вынесло наверх ;)
Спасибо сказали:

Bedazzled
Сообщения: 311
ОС: ubuntu

Re: Звук в NX-сессии

Сообщение Bedazzled »

Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1506
Статус: Подвинутый участник

Re: Звук в NX-сессии

Сообщение dimbor »

Да.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1506
Статус: Подвинутый участник

Re: Звук в NX-сессии

Сообщение dimbor »

Дошли наконец руки до публикации окончательного решения по локальному звуку в NX - freenx.
Жирное локальное - это значит, что в nx-клиентский ssh оный звук не заворачивается, требует специально-настроенного pulseaudio сервера на клиентской машине и доступного с терминального сервера стандартного tcp-порта PA (4713). (Т.е. как обычно - в случае использования клиентских ресурсов сервер с клиентом меняются местами.) Функции freenx ограничены формированием для терминальной сессии окружения для корректной работы клиента PA. Выражены в соответствующем патче. Для заказчика было описано так, вроде для понимания доступно:

По реализации: Сделано в рамках первичной задачи "нужен скайп". Включается переменной ENABLE_DIRECT_NATIVE_PA_CHECK, требует EXPORT_USERIP (в принципе потом можно отвязать, но зачем). Существует абсолютно автономно от режима соединения freenx - есть USERIP, значит проверяет доступность стандартного порта PA (4713) у клиента. Валидный IP есть всегда кроме соединения из-за NAT вроде. Порт доступен - экспорт PULSE_SERVER. Далее проверяется наличие удаленных ресемплированных sink/source по предопределенным именам. При наличии экспортируются также PULSE_SINK, PULSE_SOURCE. При отсутствии - приложения, поддерживающие PA-звук, работают с дефолтными sink/source. Приложения alsasound, esound не поддерживаются.

Клиентская сторона:

Требуется открытый наружу стандартный порт PA. Можно сконигурировать клиента статически /etc/pulse/default.pa. Привожу пиджин из серверного конфига:

2) In client's puseaudio server must be loaded module
module-native-protocol-tcp auth-anonymous=1 listen=0.0.0.0 port=4713
To secure instead auth-anonymous it's possible to use auth-ip-acl=<ts_ip_addr;...>

3) To lower-quality resamplig load following modules at client side
module-null-sink sink_name=ts_receiver rate=8000 channels=1
module-loopback source=ts_receiver.monitor sink=<your_default_sink>
module-null-sink sink_name=ts_sender rate=8000 channels=1
module-loopback source=<your_default_source> sink=ts_sender
Rates and channels digits are not a dogma and may be set in balance between your
greed and inet-link opportunities

Или есть вариант конфигурить скриптом. Свой прилагаю. Как лучше?

Перспективы и варианты несжатого звука:

- При надобности alsasound придется поднимать сервер PA в терминале и пользовать module-tunnel. Канал распухнет - к бабке не ходи.
- Если модули RTP держат не только мультикаст, а еще точка-точка, имеет смысл проверить возможность их работы. Не исключая предыдущего пункта.


Замечание, что за зверь - ресемплирование: Поскольку PA звук жать не умеет и не планирует, предпринята попытка сузить потребный канал, сделав качество погадостнее - стандартные телефонные 8 КГц. Сужается.
Скрипт, с которым экспериментировал - настраивал PA на nx-клиенте, цепляю в пост.
Про win-клиентов - тудысь тоже ставится PA, службой. Инсталятор с егоным скриптом цепляю тоже.

Второе замечание: на всех клиентах имеет смысл поставить auth-ip-acl=<ts_ip_addr;...>. Чтобы вся локалка не слушала ваш микрофон.

Третье замечание: Галку про мультимедиа в клиенте не трогать!

Все публикуемое было тестировано моими силами и заказчика.
Про заказчика песня отдельная. Свои обязательства не выполнил, попросту говоря - кинул. Очень удивлен, т.к меня так откровенно до этого никто не кидал. Имею основания утверждать - линуксцентр походу мошенники. Питерцы, у вас там в городе высокой культуры создалась среда для, вижу. Ну да ладно. Наверное я рылом не вышел - герои там свои. Рекламу им что-ли сделать - люблю ж бесплатно работать.

Upd 16.03.13: Часть заплатили. Не мошенники - просто раздолбаи.
Upd 06.05.13: Расплата окончательная - 25.04.13. Чтобы собачке было не больно, хвостик рубили по частям. И как с такими начальниками капитализьм строить, а?

Виндовый инсталятор: PulseAudio-1.1-2.exe
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1506
Статус: Подвинутый участник

Re: Звук в NX-сессии

Сообщение dimbor »

За 2 (два) года гадюка таки задавила жабу. Иначе говоря, рудиментарная совесть превозмогла мою же жадность.
В этой теме оставалась недоделанность штатного проброса звука, и она меня парила неприменительно к наличию спонсоров. Меж тем, звук во всяких x2go давно имеется и даже под виндой.

Представилась возможность допилить связку opennx+freenx. Сделана новая схема схема ресэмплирования для снижения аппетита в ширине канала. Поднимается pulseaudio на терминальном сервере и работает с клиентским через module-tunnel-* в обе стороны. Через ssh канал сессии, естественно, штатными средствами nx (media=1).

Установщик opennx под вин. и инструкцию брать тут(и далее по теме починенный). С линуксом тоже, надеюсь, как нибудь скоро срастется с помощью опытных людей. Откомпилировать собственноручно также никто никому не мешает.

Под вин убраны пляски с установкой PA отдельной службой. opennx запускает встроенный из под пользователя, или ищет уже запущенный ранее. Т.ч. теоретически может одновременно воспроизводить с нескольких сессий на разных серверах.

Под линуксом также само вся настройка делается автоматически - был бы PA.

Под вин, не мудрствуя с кросс-компиляцией PA, утащил бинарники из x2goclient-contrib. Ну хоть шерсти клок. Там он уже шестой - офигеть.

Ну и описание отловленной в процессе какашки. На русском, так вообще эксклюзивный материал:

Сначала попытался установить PA из прошлого поста, тот который службой, на виндовс 7. Не работает. Причина найдена на просторах. Ноутбучники так ничего и не заметили, а остальным при невоткнутом штырьке микрофона винда устройство отключает. Ситуевина актуальна для всех версий PA. Как следствие, правильным будет такой default.pa:

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

.fail
load-module module-switch-on-port-available
load-module module-native-protocol-tcp port=4713 listen=127.0.0.1 auth-anonymous=1
.nofail
load-module module-waveout sink_name=output record=0
load-module module-waveout source_name=input playback=0

Оральник с матюгальником подключаются по очереди в секции, не вызывающей всеобщего краха.

Потом средствами opennx была организована их принудительная перегрузка при старте сессии. Потому, что если при запущенном PA выткнуть и воткнуть штырек колонок, скажем, все работать конечно перестанет. Для новых старых устройств нужны новые старые модули.

Еще долго ковырялся с крахом opennx при работе через libpulse под вин. Когда пытаемся отключиться от контекста, винда пришибает opennx со страшной руганью из-за каких-то не таких сишных параметров в недрах PA. При этом правильная со всех сторон сессия в четырех случаях из пяти упевает запуститься. А если не отключаемся от контекста, надеясь на отключение по таймауту, винда уже пришибает приложение из-за некорректного уничтожения объекта. Черт бы побрал эту плюсатую инженерию с неявным их уничтожением. На ванильном си можно было докопаться хоть до ассемблера с легкостью, а тут хоть плачь.

Это все была лирика. Падать вроде перестало, но у меня только одна тестовая машинка (в виртуалки звук пропихивать сильно геморройно). В общем, я не совсем уверен, что поборото.
Спасибо сказали: