0
Найти на сайте: параметры поиска

 

 

Icecast2 + Ices2

непонятки с модулем ALSA
  
Сообщений: 0
Всем привет. Поставили предо мною задачу по реализации передачи музыки, а так же голосовых сообщений на большие (порядка 3 км) расстояния. Конечно же, как всегда, так, что бы было как можно более бесплатно. Вести монтаж линии в такую даль - дело неблагородное. К тому же накануне в те края подвели оптоволокно. Одним словом, локальная сеть есть. Тут-то я и вспомнил про свой горячо любимый Mint. Немного погуглив, решил взять для этих целей связку Icecast2 + Ices2, благо в репах все есть. Собственно и взял. Гайдов на эту тему более чем предостаточно, но если кому-то надо - могу привести свой, но не суть.
Если в чем-то неправ, прошу меня поправить, но работать приблизительно оно должно так (по сути работает, но есть нюансы, см. внизу поста) :
Ices хавает с устройства 'default' аудио-поток, затем посылает и монтирует его в указанной точке к серверу вещания Icecast, который в свою очередь выбрасывает аудио в сеть в виде ogg файла (в моём случае).
Далее на любом ПК из сети мы открываем скаченный с через веб-интерфейс Icecast'а файл Examples1.ogg, и открываем его, к примеру, в VLC проигрывателе, и слышим всё, что попадает в зону слышимости микрофона сервера.

Ставим Icecast2, конфигурируем. Мой конфиг:
<icecast>
<location>Earth</location>
<admin>icemaster@localhost</admin>
<limits>
<clients>100</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>
<authentication>
<source-password>password</source-password>
<relay-password>password</relay-password>
<admin-user>admin</admin-user>
<admin-password>password</admin-password>
</authentication>
<hostname>localhost</hostname>
<listen-socket>
<port>8000</port>
</listen-socket>
<mount>
<mount-name>/example-complex.ogg</mount-name>
<username>othersource</username>
<password>hackmemore</password>
<max-listeners>1</max-listeners>
<dump-file>/tmp/dump-example1.ogg</dump-file>
<burst-size>65536</burst-size>
<fallback-mount>/example2.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<intro>/example_intro.ogg</intro>
<hidden>1</hidden>
<no-yp>1</no-yp>
<authentication type="htpasswd">
<option name="filename" value="myauth"/>
<option name="allow_duplicate_users" value="0"/>
</authentication>
<on-connect>/home/icecast/bin/stream-start</on-connect>
<on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
</mount>
<mount>
<mount-name>/auth_example.ogg</mount-name>
<authentication type="url">
<option name="mount_add" value="http://myauthserver.net/notify_mount.php"/>;
<option name="mount_remove" value="http://myauthserver.net/notify_mount.php"/>;
<option name="listener_add" value="http://myauthserver.net/notify_listener.php"/>;
<option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>;
</authentication>
</mount>
<fileserve>1</fileserve>
<paths>
<basedir>/usr/share/icecast2</basedir>
<logdir>/var/log/icecast2</logdir>
<webroot>/usr/share/icecast2/web</webroot>
<adminroot>/usr/share/icecast2/admin</adminroot>
<alias source="/" destination="/status.xsl"/>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
</logging>
<security>
<chroot>0</chroot>
<changeowner>
<user>icecast2</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>

прописываем все что необходимо, согласно мануалам, запускаем
sudo service Icecast2 start
host:8000 откликается, страницу показывает, админку выдает, проблем нет.

Дальше аналогично ставим Ices2. Конфигурируем:

<ices>
<background>0</background>
<logpath>/var/log/ices</logpath>
<logfile>ices.log</logfile>
<logsize>2048</logsize>
<loglevel>4</loglevel>
<consolelog>0</consolelog>
<stream>
<metadata>
<name>Example stream name</name>
<genre>Example genre</genre>
<description>A short description of your stream</description>
<url>http://mysite.org</url>;
</metadata>
<input>
<module>alsa</module>
<param name="rate">44100</param>
<param name="channels">2</param>
<param name="device">default</param>
<param name="metadata">1</param>on
<param name="metadatafilename">test</param>
</input>
<instance>
<hostname>localhost</hostname>
<port>8000</port>
<password>password</password>
<mount>/example1.ogg</mount>
<yp>1</yp>
<encode>
<quality>0</quality>
<samplerate>22050</samplerate>
<channels>1</channels>
</encode>
<downmix>1</downmix>
<resample>
<in-rate>44100</in-rate>
<out-rate>22050</out-rate>
</resample>
</instance>
</stream>
</ices>

По сути при такой конфигурации работает, но в данном случае важно для меня не это.

Итак, суть вопроса:

в конфиге Ices2, есть строчка:

<param name="device">default</param>

Если смотреть на оф. сайте, и прочих гайдах, народ ставит вместо 'default' нечто похожее на hw:0,0
Как я понимаю, это физический адрес нашей звуковухи.
Ок, делаем aplay -l, видим:
card 0: PCH [HDA Intel PCH, device 0: ALC233 Analog [ALC233 Analog]
Subdevices 1/1
Subdevice #0: Subdevice #0

Пытаемся указать явно: <param name="device">hw:0,0</param>
Ices запускаться отказывается, по причине отсутствия потока с данного устройства.

Быть может, у кого-нибудь есть идеи, как мне явно задать устройство, с коротого берем поток?
В начало страницы 
|
Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.