The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"Раздел полезных советов: Создание системы трансляции звука н..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Создание системы трансляции звука н..."  +/
Сообщение от auto_tips (??) on 09-Дек-13, 19:51 
Появилась задача реализовать звуковое оповещение на территории предприятия. Проблема заключается в том, что оператор с микрофоном и прочими звукодевайсами находится на расстоянии 2-х километров от места где должны висеть колонки. Таким образом построение аналоговой системы очень дорогое удовольствие. При этом по всей территории существует действующая компьютерная сеть. То есть нужно организовать трансляцию звука через эту сеть.

Для этого нам нужно будет использовать один компьютер как «транслятор», а другие как «приемники». Для построения сервера трансляции я использовал OS Linux Debian7.2, Icecast2 — сервер трансляции и Ices2 — организатор потока. Для построение клиента подвернулось очень интересное решение. Наткнулся на вот такое устройство: http://raspberrypi.ru/ - Одноплатный компьютер на базе процессора ARM 11 c тактовой частотой 700 mhz и 512mb RAM. И операционную систему к нему: XBMC Raspbian.

++ Установка сервера:

После установки Debian доставляем следующие пакеты: icecast2 ices2 pulseaudio

   apt-get install icecast2
   apt-get install ices2
   apt-get install pulseaudio

после чего ставим pulseaudio в автозапуск

   update-rc.d pulseaudio enable

iceast2 конфигурация:

для начала включаем использование icecast2. Для этого в файле /etc/default/icecast2 меняем

   ENABLE=false
на
   ENABLE=true

после чего правим файл конфигурации /etc/icecast2/icecast.xml

   <icecast>
       <limits>
           <clients>100</clients> <!-- Максимальное кол-во клиентов -->
           <sources>8</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>ПАРОЛЬ</source-password>
           <relay-password>ПАРОЛЬ</relay-password>
           <admin-user>admin</admin-user>
           <admin-password>ПАРОЛЬ</admin-password>
       </authentication>

       <hostname>localhost</hostname> <!-- Название сервера трансляции -->

       <listen-socket>
          <port>8000</port> <!-- Порт трансляции -->
       </listen-socket>
       <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="/" dest="/status.xsl"/>
       </paths>

       <logging>
           <accesslog>access.log</accesslog>
           <errorlog>error.log</errorlog>
           <loglevel>3</loglevel>
           <logsize>10000</logsize>
       </logging>

       <security>
           <chroot>0</chroot>
       </security>
   </icecast>
    
проверяем работоспособность:

   /etc/init.d/icecast2 start

запускаем браузер, в адресной строке пишем : http://127.0.0.1:8000, авторизуемся, радуемся :-)

после чего ставим icecast2 в автозапуск

   update-rc.d icecast2 enable


++ Конфигурация Ices2

примеры конфигурационных файлов находятся в /usr/share/doc/ices2/examples

мне нужно чтобы все что звучит на компе транслировалось в сеть. Используем ices-alsa.xml
копируем его в /etc:

   сp /usr/share/doc/ices2/examples/ices-alsa.xml /etc

после чего правим конфиг:

/etc/ices-alsa.xml

   <?xml version="1.0"?>
   <ices>

       <background>1</background>  <!-- 1- Запуск в фоновом режиме -->
       <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">pulse</param> <!-- Устройство с которого берется поток -->
               <param name="metadata">1</param>
               <param name="metadatafilename">test</param>
           </input>

           <instance>
            
               <hostname>АДРЕС_СЕРВЕРА_ТРАНСЛЯЦИИ</hostname> <!-- Адрес icecast2 сервера -->
               <port>8000</port> <!-- Порт icecast2 сервера -->
               <password>ПАРОЛЬ</password> <!-- Пароль к icecast2 серверу -->
               <mount>/example1.ogg</mount> <!-- Название потока -->
               <yp>1</yp>   <!-- allow stream to be advertised on YP, default 0 -->

               <encode>
                   <quality>1</quality>
                   <samplerate>22050</samplerate>
                   <channels>2</channels>
               </encode>

               <downmix>0</downmix>

               <resample>
                   <in-rate>44100</in-rate>
                   <out-rate>22050</out-rate>
               </resample>
           </instance>
        </stream>
   </ices>

++ Автозапуск ices2

С автозапуском ices2 появились определенные проблемы. Он должен запуститься самым  последним, желательно после старта GNOME. По этому  используем графическое приложение «Настройки запуска приложений» для настройки автозапуска  ices2. Добавляем «Приложения → Системные → Параметры → Запускаемые приложения»
Говорим «добавить», имя: Название приложения (Ices2), команда: /usr/bin/ices2 /etc/ices-alsa.xml, описание: Описание приложения (Starting Streaming Ices2).

На этом конфигурация сервера окончена. Все что воспроизводится на сервере будет ретранслироваться в сеть.

++ Установка OpenElec XBMC на RaspbianPi

Для этого микрокомпьютера есть несколько операционных систем. Подробнее здесь: http://www.raspberrypi.org/downloads

Ссылка на скачивание OpenElec XBMC http://downloads.raspberrypi.org/openelec_latest . Качаем, распаковываем.

Для установки cначала скачиваем и устанавливаем MiniTool Partition Wizard Home edition вот отсюда: http://www.partitionwizard.com/free-partition-manager.html
Запускаем, создаём раздел Primary 150 Mb, FAT32, Active с меткой System. Еще раздел на всю свободную область флешки Primary, EXT4 с меткой Storage.
После этого переходим в раздел с распакованным дистрибутивом и делаем:

   copy target\KERNEL d:\kernel.img
   copy target\SYSTEM d:\
   copy 3dparty\bootloader\*.* d:\
   copy openelec.ico d:
   copy README.md d:\

создаем и редактируем файл d:\cmdline.txt

вписываем в него следующее:
   boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 ssh

d:\ - ваш flashdrive

После этого вставляем флешку в RaspbianPi и включаем этот компьютер.

ВАЖНО: логин root пароль openelec

Создание ссылки на вещание

В директории /storage/music

создаем файл с расширением .strm

в нем указываем источник трансяции

   http://АДРЕС_ICECAST:PORT/FILENAME

Удалённая перезагрузка OPEN Elec

На клиентской машине создаем «чистый» файл ключа:

    ssh-keygen -t rsa
   (на все вопросы отвечаем ENTER)

После этого вход на этот комп осуществляется как:

   ssh root@АДРЕС_ХОСТА

И соответственно перезарузка:

   ssh root@АДРЕС_ХОСТА reboot

и остановка

   ssh root@АДРЕС_ХОСТА poweroff


URL:
Обсуждается: https://www.opennet.ru/tips/info/2815.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от Аноним (??) on 09-Дек-13, 19:51 
>>copy target\KERNEL d:\kernel.img

Эта часть непонятна. Команда 'copy' не найдена, слэши перевернутые, и папки "d:" довольно странные. Можно упростить?

Недавно думал о такой фигне. Но мне нужно разместить несколько таких компьютеров и проигрывать на них запись по команде, конкретную запись в конкретном месте.
Эти ra-pi или аналог от PoE могут питаться? Если да, то какую громкость можно выжать с маленьким пассивным динамиком?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от Zmeyuka on 10-Дек-13, 10:08 
О какой громкости речь ? На выходе будет 5-10 мВт.
А запитать можно через PoE Splitter.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от prof_alex on 10-Дек-13, 13:31 
Одно только не ясно, зачем там pulseaudio?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от Аноним (??) on 10-Дек-13, 17:30 
Как говорится, "...а не проще ли просто выеб***?". pulseaudio на трансляторе, pulseaudio на приемнике? Хоть под винь, хоть под линь...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от pavlinux (ok) on 10-Дек-13, 19:25 
Понравилась строка: Наткнулся на вот такое устройство: Raspberrypi...     :)

Если чо, то проект существует с 2006 года, под него создана туева хуча решений,
сам проект отмечен многими журналами как "Открытие года", вот не давно "Проект года"...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от Zulu on 10-Дек-13, 21:29 
Когда я работал на одной радиостанции, звук поднимал через darkice, потому как icecast2 не умел mp3, а клиенты хотели.

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от ананим on 18-Дек-13, 14:37 
>хватило сесть и написать правила разруливания каналов прямо для ALSA.

Могли бы историю успеха (хавтушку) сюда кинуть.
Лично я бы был благодарен за пример, а то в доке сразу и не разберёшься.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

7. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от Трубовращатель on 11-Дек-13, 12:15 
opennews/art.shtml?num=38632
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от Аноним (??) on 12-Дек-13, 21:10 
Еще можно dlna заюзать и управлять хоть с телефона.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от ACCA (ok) on 08-Янв-14, 00:32 
Выдающаяся победа техники над здравым смыслом.

Подключить к усилителю автоответчик за 100р и позвонить по телефону, не?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Создание системы трансляции звука на базе Debian, Icecast2, ..."  +/
Сообщение от an (??) on 09-Янв-14, 20:50 
а вот ктото ошибется номером.... и все услышат что позвонивший думает об автоответчиках :)
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру