Домашний сервер

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Icecast создает аудио потоки на различных платформах. Позволяя нам использовать Raspberry Pi. Он легко устанавливается и работает на Raspbian Lite с настройкой безголового сервера для повышения эффективности, но подойдет любой вариант Raspbian. Используя Raspian Lite вместе с Icecast, вы можете передавать потоковое аудио из любого каталога или списка каталогов, которые вы предоставляете на сервер в файле XML. Вы можете использовать другое программное обеспечение наряду с Icecast для управления различными аспектами аудиопотока. Alsa является одним из самых популярных и часто используемых сторонних программ, используемых на многих аудиосерверах, включая Icecast.

С Alsa вы можете:

  • Воспроизведение потоков из исходного приложения, такого как Ices
  • Управляйте настройками звука с помощью командной строки
  • Микшируйте аудио с программным микшированием в текстовом интерфейсе

Потоковая передача во время воспроизведения не будет отставать из-за нехватки доступных аппаратных ресурсов, используемых другими приложениями, потому что Icecast не работает в GUI таким образом.

Распбиан для запуска Icecast

Если в будущем вы модернизируете свое оборудование с Pi, Raspbian будет дистрибутивом, созданным на основе Debian. Это почти Debian. Все, что вы научитесь делать в Raspbian, можно сделать снова на стандартном ПК в дистрибутивах Debian или Ubuntu.

Pi дает вам возможность совершать ошибки менее чем за 40 долларов. Вы не будете плакать из-за денег, которые потратили, если они ломают ошибки, которые вы могли бы совершить на полноценном HTPC-сервере. Raspberry Pi – это микрокомпьютер. Это означает, что меньше, чем мини-компьютер. Это самое маленькое компьютерное устройство, которое вы можете купить и собрать самостоятельно.

3 лучших автономных загрузчика Bittorrent:

  1. Персональное облачное хранилище WD My Cloud 4 ТБ – NASМузыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi
  2. Buffalo LinkStation 210 Персональное облачное хранилище и медиа-сервер NAS 2 ТБМузыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi
  3. Бездисковое сетевое хранилище Synology America DiskStation с 2 отсекамиМузыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Требования к Icecast

Из этого туториала вы узнаете некоторые основные сведения о ваших знаниях и опыте работы с Raspberry Pi.

  • Raspbian Lite установлен на SD-карту
  • Вы уже собрали оборудование для Pi
  • Raspbery Pi подключен к домашней сети и интернету
  • Вы знаете, как вводить команды в командной строке

Если нет, пожалуйста, обратитесь к превосходной справочной документации Raspberry Pi, доступной на веб-сайте их организации.

Лучше избегать префикса каждой команды, sudoя рекомендую переключиться на суперпользователя с помощью sudo.

sudo su

Чтобы сделать это, войдите под своим паролем пользователя, который по умолчанию является «малиновым» для пользователя pi.

Оказавшись в командной строке, полезно всегда сначала запускать обновления и обновлять систему.

apt-get update apt-get dist-upgrade

Подготовка Pi к Icecast

Большая часть процесса установки любого вида сервера – это подготовка системы. Мы должны убедиться, что наша установка Raspbian Lite готова использовать оборудование для получения качественного звука. Многие аудиосерверы работают с полным набором пакетов репозитория Alsa.

apt-get install libogg-dev libvorbis-dev libshout-dev libxml2 libasound2 libasound2-doc alsa-utils alsa-oss alsamixergui

Добавить пользователя pi в аудио группу для Alsa

Создайте группу под названием audio и сделайте пользователя pi частью группы audio, чтобы предоставить Alsa те же разрешения, что и для pi. Если вы предпочитаете, создайте другого пользователя для Icecast.

groupadd audio usermod -aG audio pi

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Добавление пользователя пи в аудиогруппу

Список ваших звуковых устройств

Термины «звуковая карта» и «звуковое устройство» могут использоваться взаимозаменяемо при настройке ваших устройств. Чтобы увидеть список ваших устройств захвата звука использовать arecord.

arecord -l

Pi не показывает ничего, пока вы не создадите его с PCM, что означает импульсную кодовую модуляцию. PCM манипулирует звуком внутри компьютера. Мы будем использовать его для создания модулей для подключения драйверов Alsa к звуковым устройствам. Звуковое устройство для подключения будет встроенной звуковой системой Pi в качестве «звуковой карты».

XML-файлы Alsa asound.conf и .asoundrc

Эту конфигурацию можно настроить глобально, создав файл asound.conf.

nano /etc/asound.conf

Локальная конфигурация для pi (или другого пользователя) может храниться в файле asoundrc. Несмотря на то, что вы можете создать глобальный файл конфигурации для настройки своих настроек, обычная настройка использует профиль пользователя.

nano /home/pi/.asoundrc

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Создание файла asoundrc

Вставьте следующее в новый файл asound.conf или asoundrc с буфером обмена.

pcm.!default { type hw card 1 } ctl.!default { type hw card 1 }

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Создание звуковых устройств PCM с Alsa

Последовательное использование клавиш CTRL + «O» + Enter + «X» перезаписывает пустой файл asound.conf и завершается.

Alsa позволяет вам настроить ваши параметры как глобально, так и локально. Конфигурационные файлы для Alsa используются для настройки параметров микширования программного обеспечения Alsa. Сказать, что глобальные настройки наследуются, может не соответствовать действительности для всех аппаратных средств и конфигураций. Можно легко создать настройки, которые совместно используются двумя файлами, а не наследуются.

Несомненно, вы можете сделать с этими файлами гораздо больше, чем может рассказать любой учебник или руководство. Особенно, если вы добавите базы данных и другое программное обеспечение, которое использует Alsa и PCM, легко столкнуться со всеми видами настроек, улучшений и сумасшедших реализаций сервера Icecast. Когда вы будете довольны настройками в XML, перезагрузитесь, чтобы изменения вступили в силу.

reboot

Тест Alsa для Icecast

Теперь проверь Alsa!

speaker-test -c2

При запуске команды тестирования вы должны услышать белый шум от обеих колонок.

Потоковое mp3 с mpg123 на Icecast

Для проверки потоковой передачи mp3 из онлайн-источника установите mpg123 для воспроизведения mp3- файлов.

apt-get install mpg123

Запустите команду mpg123 для потоковой передачи SomaFM.com.

mpg123 http://ice1.somafm.com/u80s-128-mp3

Устройства Icecast и PCM

Команды для воспроизведения других доступных звуковых устройств можно настроить с помощью PCM, чтобы превратить грубую команду в чистую, аккуратную. PCM облегчает запоминание и использование этих команд.

aplay --device=hw:1,0 /usr/share/sounds/alsa/Front_Center.wav

Поскольку мы должны знать тип и номер оборудования с помощью этой глупой команды, мы должны помнить каждое устройство по номеру. Это может в конечном итоге стать проблемой. Выглядит даже лучше, если использовать имя, которое вы создаете для своего устройства с помощью PCM.

aplay -D primary /usr/share/sounds/alsa/Front_Center.wav

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

aplay -l

Добавление имен PCM к аппаратным устройствам выполняется путем запуска команды, чтобы найти тип оборудования устройства, и присвоения каждому устройству имени с помощью PCM.

arecord -l

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

speaker-test -c2 -D plughw:1,0

Использование «PCM hw type» позволяет определять псевдонимы для звуковых устройств и карт. Кроме того, вы можете настроить совместимое USB-устройство захвата звука. Как и многие отличные аудио драйверы и программное обеспечение, мир Alsa существует в командной строке. Вы найдете множество рецептов для улучшения и расширения возможностей на основе Alsa.

Шаблон блока кода PCM

Это полный шаблон с синтаксисом для добавления устройства.

pcm.NAME { type hw card INT/STR # the card is identified by an integer or a string [device] INT # Assign the device a number for PCM (default 0) [subdevice] INT # Default -1 so it uses first available device mmap_emulation BOOL # Enables mmap emulation for ro/wo devices }

Можно назначить любое pcm.NAMEзначение. Цель состоит в том, чтобы иметь возможность запускать команды для звуковых устройств без использования большого количества технической информации. Используя наш шаблон блока кода, мы можем добавить блок кода для каждого звукового устройства.

pcm.NAME { type hw card 0 device 0 }

Если вы измените pcm.NAMEна pcm.primary, это позволит вам запустить Alsa play с этой командой.

aplay -D primary /usr/share/sounds/alsa/Front_Center.wav

Вы больше не ссылаетесь на тип оборудования в своей команде, как раньше, имея возможность ссылаться на новый pcm.NAME.

aplay --device=hw:1,0 /usr/share/sounds/alsa/Front_Center.wav

Прямая трансляция аудио на Icecast

Если вы хотите использовать микрофон, превратите разъем для наушников Raspberry Pi в разъем для микрофона. Пакет программного обеспечения по умолчанию, называемый jackd и jackd2, доступен для большинства дистрибутивов Linux. Чтобы определить, какой пакет вы хотите использовать, обратитесь к FAQ по Jack, чтобы объяснить разницу.

jackd

Введите команду для установки jackd в терминал.

apt-get install jackd

Для всех настроек, посетите AlsaProject.org – Asoundrc.

Инструкции на этой странице подробно описывают, как добавить плагин. Сам проект содержит собственную коллекцию. Чтобы добавить любой из этих плагинов, используйте фрагмент кода, который следует.

Проект ALSA – ссылка на библиотеку C

Добавьте блок кода плагина в файл asound.conf или asoundrc, однако ваши настройки настроены. Помните, что файл asound.conf предназначен для глобальной конфигурации, а файл asoundrc является локальным (в данном случае это означает, что он работает как пользователь pi ).

PCM код блока для джек

Добавьте плагин для jackd в ваш файл PCM.

pcm.jackplug { 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 } }

Теперь можно воспроизводить и записывать файлы с помощью команд с помощью программного пакета jackd.

aplay -Djackplug somefile arecord -Djackplug somefile

Плагины, которые необходимо добавить как часть этой настройки, используются для различных конфигураций микширования программного обеспечения. Скопируйте и вставьте код плагина в соответствующий файл. Если вы не хотите использовать плагин в качестве звукового устройства по умолчанию, выберите pcm.!defaultлюбое pcm.NAMEдругое.

DMIX

Это родной плагин Alsa для прямого микширования программного обеспечения для использования вместо другого серверного приложения. Микширование программного обеспечения – это процесс отправки более одного аудиопотока на одно устройство. Вы создаете смесь из одного или нескольких источников в одно место назначения.

pcm.!default { type plug slave.pcm "dmixer" } pcm.dmixer { type dmix ipc_key 1024 slave { pcm "hw:1,0" period_time 0 period_size 1024 buffer_size 4096 rate 44100 } bindings { 0 0 1 1 } } ctl.dmixer { type hw card 0 }

вздремнуть

Для нескольких входов мы можем использовать плагин под названием dsnoop.

pcm.mixin { type dsnoop ipc_key 5978293 # must be unique for all dmix plugins ipc_key_add_uid yes slave { pcm "hw:0,0" channels 2 period_size 1024 buffer_size 4096 rate 44100 periods 0 period_time 0 } bindings { 0 0 0 1 } }

асим

Этот плагин позволяет одновременно воспроизводить и захватывать.

pcm.name { type asym # Asym PCM playback STR # Playback slave name # or playback { # Playback slave definition pcm STR # Slave PCM name # or pcm { } # Slave PCM definition } capture STR # Capture slave name # or capture { # Capture slave definition pcm STR # Slave PCM name # or pcm { } # Slave PCM definition } }

Этот код показывает, как использовать плагин.

pcm.duplex { type asym playback.pcm "dmix" capture.pcm "dsnoop" }

PCM настроен для воспроизведения с помощью dmix и захвата аудио с помощью dsnoop.

alsamixer

Протестируйте любое звуковое устройство с потрясающим текстовым интерфейсом Alsa.

Откройте терминал и запустите AlsaMixer.

alsamixer

Из когда-либо находчивой вики Ubuntu я ссылаюсь на список элементов управления для пользовательского интерфейса.

  • Выберите звуковую карту с помощью F6
  • F5 для записи управления
  • Навигация с помощью левой и правой клавиш со стрелками
  • Увеличение и уменьшение громкости с помощью клавиш со стрелками вверх и вниз
  • Увеличивайте и уменьшайте громкость для левого / правого канала индивидуально с помощью клавиш «Q», «E», «Z» и «C»
  • Отключить / включить звук кнопкой «M». «ММ» означает приглушенный, а «ОО» означает немой. Обратите внимание, что строка может быть заполнена на 100%, но при этом быть отключенной, поэтому проверьте это
  • Выход из alsamixer с помощью клавиши Esc

Постоянно сохраните настройки громкости в Alsa, сохранив их с помощью Alsa.

alsactl store

Дополнительное программное обеспечение для Icecast

Установите Supercollider для подключения устройств midi и присвойте им имена PCM.

Это команда для установки Supercollider.

apt-get install supercollider

Другой пакет, который мы можем установить для Icecast Yellow Pages, это libcurl. Если вы не установите этот пакет перед установкой Icecast, у вас не будет поддержки YP.

apt-get install libcurl

Установка Icecast и льдов!

Теперь мы можем установить программное обеспечение сервера!

Для Raspbian Stretch и Raspbian Stretch Lite загрузите пакет Debian для процессоров armhf, использующих командную строку.

wget http://ftp.us.debian.org/debian/pool/main/i/icecast2/icecast2_2.4.2-1+b1_armhf.deb

Пакет также доступен на Debian.org.

Само программное обеспечение сервера теперь может быть наконец установлено!

apt-get update apt-get install icecast2

Icecast настроен в XML.

nano -c /usr/local/etc/icecast.xml

Чтобы добавить поддержку YP для включения в Желтые страницы Icecast, добавьте этот блок кода. Запомните и запомните, чтобы поддержка YP установила libcurl перед Icecast.

<directory> <yp-url-timeout>15</yp-url-timeout> <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url> </directory>

После установки сервера вам понадобится исходное приложение. Популярным выбором является Ices, который на самом деле является Ices2 в его текущей версии. Как вы могли заметить из команды установки, Icecast – это Icecast2 в своей текущей версии.

apt-get update apt-get install ices2

Настройка Ices для Icecast

Льды настроены в XML.

nano -c /etc/ices.xml

На этой странице описаны все настройки.

IceS 2.0.2 Docs – файл конфигурации

После настройки укажите XML-файл в качестве аргумента для программы во время вызова.

ices /etc/ices.xml

Файл XML может быть вызван из любого каталога, используя Ices. Многие умные рецепты доступны для запуска льдов, и многие коммерческие интернет-радиостанции используют эту технологию. Используйте следующий рецепт в качестве руководства для создания собственной частной домашней интранет-радиостанции.

Запустите свою собственную радиостанцию ​​с Icecast2 и Ices2

Если вы не используете рецепт по этой ссылке, вы можете использовать предоставленные модификации кода для добавления льдов в сценарий запуска Icecast. Это опубликовано для справки. Хотя вы, вероятно, не собираетесь управлять коммерческой радиостанцией, у гидов интернет-радиостанций есть много знаний и опыта, которыми можно поделиться по этой теме.

Ubuntu – скрипт запуска Icecast2 с поддержкой Ices2

Добавление модулей в Ices

Несколько модулей Ices доступны.

IceS 2.0.2 Docs – Модули ввода

Модули настроены в /etc/ices.xml.

  • OSS – открытая звуковая система
    • Используется в системах на основе Linux для получения живого ввода со звуковой карты
    • ALSA-ОСС
  • ALSA – продвинутая звуковая архитектура Linux
    • Как OSS, но с различными улучшениями для систем на основе Linux
    • alsa-base alsa-utils
  • StdinPCM – Стандартный вход для получения звука PCM
  • Список воспроизведения – использует список воспроизведения для чтения аудиофайлов для обработки.

Добавьте все модули в ваш файл Ices XML.

# This is the code block for the OSS Open Sound System module oss 44100 2 /dev/dsp 1 /home/ices/metadata # The code block for ALSA... alsa 44100 2 hw:0,0 2 500 1 /home/ices/metadata # This the code snip for StdinPCM stdinpcm 44100 2 1 /home/ices/metadata

Создать Ices XML плейлист для Icecast

Этот фрагмент кода снова и снова используется в XML-файле Ices в качестве шаблона для списка воспроизведения. Плейлист должен существовать в XML-файле Ices сам по себе. Если вы хотите настроить более одного списка воспроизведения, создайте и используйте более одного файла Ices XML. Создайте, сохраните и запустите этот файл с любым именем (оканчивающимся на .xml) в любом каталоге, содержащем аудиофайлы.

Это не созданный вручную список воспроизведения, а традиционный список файлов для воспроизведения. Icecast создает список воспроизведения из содержимого каталога потоковой передачи. Вы указываете Ices использовать путь к каталогу в командной строке, и Icecast создает свой собственный список воспроизведения.

basic /path/to/playlist # Specify the full path to the streaming directory 0 0 1

Вызвать Ices из командной строки легко с помощью XML-файла. Эта команда позволяет Ices вызывать файл XML из одного каталога для потоковой передачи из другого.

ices -c /etc/icecast2/icecast.xml -F /home/pi/Music/

Льды используются для воспроизведения файлов OGG, но не могут воспроизводить файлы MP3.

Воспроизведение mp3 на Icecast без льдов

Мы исполняем Icecast без льдов для воспроизведения MP3.

icecast -c /etc/icecast2/icecast.xml -F /home/pi/Music/

Для потоковой передачи URL используйте -uпереключатель с командой.

icecast -c /etc/icecast2/icecast.xml -u http://ice1.somafm.com/u80s-128-mp3

Сторонние приложения для Icecast

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

Icecast.org – сторонние приложения

Icecast Player в Google Play

Одним из популярных мобильных приложений является Icecast Player в Google Play.

Kodi Icecast addon

Попробуйте дополнение Icecast для Kodi, которое позволяет прослушивать потоки, перечисленные в Желтых страницах Icecast. Установите это дополнение из стандартного репозитория Kodi в Music addons.

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Kodi музыка аддон для Icecast

Настройки аддона Icecast

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

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Icecast аддон для настроек Kodi

Настройки аддона Icecast в режиме плеера

Измените настройки внутри аддона в режиме плеера.

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Настройки Icecast в режиме плеера

Показ текста песни на Icecast

Установка CU LRC Тексты песен для Icecast

Установите надстройку сценария CU LRC из надстроек Программы в хранилище Kodi.

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Установка дополнений из репозитория на Kodi

Перейдите в каталог Lyrics в Addons.

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Kodi репозиторий Каталог текстов песен

Аддон CU LRC находится внутри каталога Lyrics.

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Kodi репозиторий текстов песен CU LRC addon

Включить Icecast для отображения текста песни

После установки CU LRC может отображать текст в аддоне Icecast.

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Настройка CU LRC для отображения текста песни в дополнении Icecast

Поиск Icecast Желтые страницы

Поиск станции на основе ваших предпочтений для музыки.

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Поиск станций в Icecast аддон для Kodi

Для меня эта станция – Зона 51!

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

Список радиостанций Icecast в аддоне Коди

Icecast на полном HTPC

Как популярный сервер потоковой передачи музыки, Icecast – это популярное серверное приложение с множеством вкусностей. Пи для обучения. Если вы хотите построить что-то постоянное, Пи даст вам базовое образование, необходимое для начала и эксперимента. Icecast – отличный способ слушать и играть музыку.

Музыкальный сервер Icecast с потоковым исходным кодом Alsa и Ices на Raspberry Pi

CU LRC показ дополнений текстов песен

Icecast будет транслироваться по полному HTPC в качестве частной интранет-радиостанции на домашнем сервере или может использоваться для общественной и коммерческой интернет-радиопередачи. Многие дополнительные функции могут быть настроены, больше приложений можно установить и использовать с Icecast. Это игровая площадка для потокового аудио, которую можно наслаждаться не только звуком, но и технологиями.

Icecast и интернет-радио

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

Окончательный вывод

Сегодня в домашних сетях популярной тенденцией является настройка аудиовизуального сервера и DJ для собственных вечеринок и общественных мероприятий. Вдали от дома друга или родственника или в собственной гостиной вам не нужно особого повода раскручивать мелодии. Сервер, такой как Icecast, может создавать свой собственный список воспроизведения. Чтобы начать потоковую передачу, в Icecast легко указать путь к папке с музыкой, которую вы хотите воспроизвести, и он создает собственный список. Icecast также является идеальной площадкой для изучения других аудиопрограмм, улучшая при этом карманный DIY-аудиосервер DJ.

Начните слушать с Icecast сегодня!

Дополнительные ресурсы для Icecast

Alsa для Icecast

OpenSRC.org – Руководство по установке ALSA

OpenSRC.org – Руководство по установке ALSA – Быстрая установка

Adafruit.com – Raspbian Jessie – Обновление настроек alsa

AlsaProject.org – Asoundrc

RadioReference.com – ALSA

Degian.org – AlsaMixer

wiki.Ubuntu.com – AlsaMixer

Icecast и льды

Icecast.org – Icecast 2.4.1 Документы – Содержание

Icecast.org – Icecast Текущий выпуск

Icecast.org – Документы IceS 2.0.2 – базовая настройка

Icecast.org – сторонние приложения

Источник записи: https://www.smarthomebeginner.com

Похожие записи
Домашний сервер

Изменить интервал синхронизации времени Windows?

Домашний сервер

План новичка: полное руководство по установке Monit

Домашний сервер

Google OAuth Tutorial для Docker и Traefik - аутентификация для сервисов

Домашний сервер

Установите Guacamole на Docker - VNC, SSH, SFTP и RDP, как босс!

Sign up for our Newsletter and
stay informed
[mc4wp_form id="14"]

Политика конфиденциальности

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

Принять