Архив:Вики Радиоанона/Настройка вещания под Linux™

Материал из Noobtype — единственного источника Истины во Вселенной
Версия от 22:07, 3 января 2012; Соус-кун (обсуждение | вклад) (http://wiki.radioanon.ru/%D1%80%D0%B0%D0%B4%D0%B8%D0%BE/linux)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Именно Linux™[1].

Нужные компоненты

Что нам нужно:

   JACK (аудиосервер)
   qjackctl (для управления JACK'ом)
   Internet DJ Console
   ALSA (есть практически везде)
   Skype (для приёма звонков)


JACK

Качаем из svn последнюю версию (необязательно оттуда, но нужен самый свежий JACK ветки 1.9.х, он стабилен):

  svn co http://subversion.jackaudio.org/jack/trunk/jack

Собираем через autogen.sh, далее (важно!) ./configure –libdir=/usr/lib (иначе либы свалятся в диру /usr/local/lib, и джек не сможет их загрузить), потом make и make install, ну ты понел.

Аналогично можно поставить и из репозитория. Приём с svn был актуален некоторое количество колов времени назад, когда в репах был старый и глючный JACK. Теперь ситуация значительно улучшилась, и версия 1.9.6 в Debian sid, скажем, отлично подходит для наших целей. Старый джек можно задетектить по версии типа 0.118, так вот, он нам не нужен.

Далее качаем qjackctl с офсайта либо из ближайшей репы для своего дистрибутива. Им будем управлять аудиосервером и втыкать проводки :3

Задаём настройки для аудиосервера, чтобы он работал долго и надёжно. Вот скриншот того, как настроил я:

(у некоторых работает с такими настройками: без галочки «Режим реал. времени (realtime)» и периодов на буфер 2)

Настоятельно рекомендую для пущего кайфу сделать округлые возбуждающие проводки:

Теперь запускаем JACK кнопкой в qjackctl и проверяем работу idjc (тут ничего сложного). Уже можно вещать, но самый смак в подключении внешнего звука в свой микрофон или другой вход.

Далее надо завернуть альсу на JACK. Для этого понадобится alsa-jack плагин (обычно в поставке всей аудиосистемы, либо доустановите из репозитория пакет alsa-plugins и/или alsa-jack) и такой вот конфиг, который следует разместить в ~ и назвать .asoundrc :

pcm.!default { type plug slave { pcm "jack" } } pcm.jack { type jack playback_ports { 0 alsa_pcm:playback_1 1 alsa_pcm:playback_2 } capture_ports { 0 alsa_pcm:capture_1 1 alsa_pcm:capture_2 } } ctl.mixer0 { type hw card 0 }

Можете сделать скрипты по переименованию этого конфига в .asoundrc и, положим, в .asound.bak, чтобы отключать заворот на JACK, когда вы его не используете (иначе альса не будет работать просто). В общем-то, этого вполне достаточно для организации эфира со скайпом. Добавив умения включать вещание с DSP-входа (безумная галочка в настройках), можно подключить на этот вход модульный синтезатор типа milkytracker и вещать восьмибитку в первозданном звучании, благо, этот синтезатор умеет выводить прямо на JACK без извратов с альсой.

Вот как делается подключение других программ. Нажимаем в qjackctl кнопку Connect и видим входы и выходы JACK. Можно просто перетаскивая вход на выход (или наоборот) создавать соединения и направлять звук. Cкриншот подключения скайпа в микрофонный вход:

Обратите внимание на устройство alsa-jack.jackP.18787.38 — это скайп, выводящий звук через альса-плагин. Его нужно подключить на вход IDJC, который называется mic_lt и mic_rt для левого и правого канала соответственно. Делать это следует перед тем, как выводить позвонившего в эфир, т.е. сначала можно с ним поговорить с отключенным в IDJC микрофоном, далее подключить его в этом окне с проводами и, включив в IDJC микрофон, общаться вместе. Это базовый скилл, далее вы можете подключать на dsp вход другую программу (правда, при этом нельзя говорить и включать музыку в самом IDJC, но, думаю, если переподключить кабели в соединениях, можно добиться чего угодно). Вещание с DSP включается в настройках IDJC, найдёте нужную галку.

Скрин с IDJC


ВНИМАНИЕ!

Если у вас skype отваливается от джека/виснет с бесконечным лупом после 5-10 секунд начала разговора, значит, прыщебляди соснули сраные проприетарщики и впрямь закосячили последнюю бету. Подобное поведение наблюдается на 2.1.0.81, но на предыдущей 2.1.0.47 всё прекрасно-замечательно и не глючит. Вывод? Откатываемся на прошлую бету.

Ссылки на скачивание собственно последней рабочей с jack'ом версии:

   Debian
   SuSE
   Dynamic
   Static
   Ubuntu 8 32bit
   Ubuntu 8 amd 64bit

Да-да, они хранят все старые версии, просто не дают на них ссылки. На всякий случай все эти пакеты были забэкаплены, так что в случае неработоспособности ссылок — пишите в конфе, выложим локально. Mumble

Толком не тестировалось, но всё же. Появился патч для Mumble, добавляющий поддержку JACK. Этого долго ждали, и оно свершилось! Сам патч для сорсов. Собранные бинарники:

   Debian Stable x86
   Debian Unstable x86
   Debian Stable amd64
   Debian Unstable amd64
   Fedora 14 x86

Если JACK не запущен, в списке его не будет. Сервер обитает на radioanon . ru .

Шаманства для Ubuntu 8.10 от xcellent

Описываемые шаманства касаются версии Ubuntu 8.10, однако могут в теории работать на будущих или предыдущих версиях дистрибутива.

Основная полезная инфа находится по ссылке: http://ubuntuforums.org/showthread.php?t=577914. В Убунту ALSA собрана без JACK плагина, соответственно Скайп не сможет давать звук. Чтобы это пофиксить, нам нужен будет плагин JACK из дебиановского пакета, который по ссылке: http://packages.debian.org/lenny/i386/libasound2-plugins/download. Желательно, чтобы версия плагина и ALSA совпадала или была не выше версии ALSA (возможны конфликты).

Пакет — это обычный архив, открываем его менеджером архивов и находим три файла: libasound_module_pcm_jack.a, libasound_module_pcm_jack.la, libasound_module_pcm_jack.so. Файлы копипастим в /usr/lib/alsa-lib с правами администратора.

Алсо, не забываем о конфиге .asoundrc в хомяке, который в Убунту должен иметь вид:

pcm.idjcvoip {

   type plug
   slave { pcm "idjcjack" }

} pcm.idjcjack {

 type jack
 playback_ports {
   0 idjc-mx:voip_recv_lt
   1 idjc-mx:voip_recv_rt
 }
 capture_ports {
   0 idjc-mx:voip_send_lt
   1 idjc-mx:voip_send_rt
 }

}

Далее, когда плагин установлен и конфиг создан, перезагружаемся, потом в Skype в Настройки/Устройства выбираем idjcvoip во все поля. Проверяем на запущенном JACK и idjc есть ли звук в тестовом звонке. Если есть, значит Skype теперь можно смешивать в idjc в поток. Короче, работает.

Pulseaudio и Jack

Чтобы подружить pulseaudio c jack, достаточно поставить один пакет - pulseaudio-module-jack (в ubuntu sudo aptitude install pulseaudio-module-jack) и можно будет работать. Но нельзя будет подключить skype, так как он по умолчанию использует pulseaudio и jack не сможет его подхватить. Чтобы это исправить, придется сделать следующее:

   1. Установить pulseaudio-module-jack (в ubuntu sudo aptitude install pulseaudio-module-jack)
   2. Запретить автоматический перезапуск pulseaudio командой: echo autospawn = no > ~/.pulse/client.conf
   3. Запустить qjackctl, настроить его по скриншоту (убивать пульсу при запуске и перезапускать после)
   4. ???
   5. Можно вещать.
  1. Да, блять, это действительно зарегистрированная торговая марка, пруф.