Радио поточно на FreeBSD 10 с IceCast и Ices

Радио поточно на FreeBSD 10 с IceCast и Ices

Следващият урок обяснява как да настроите IceCast радио стрийминг сървър и да възпроизвеждате аудио файлове (музика или подкасти) на платформата FreeBSD. Този урок предполага, че използвате FreeBSD 10.0 или по-нова версия и че сте влезли като root потребител. Предполага се също, че имате текстов редактор за редактиране на конфигурационни файлове.

Преди да започнем, важно е да разберем трите части на сървъра за аудио стрийминг. Първо, имаме самия сървърен софтуер, IceCast. IceCast действа като централен хъб, където аудио потоците влизат и се изпращат. Услугата IceCast приема аудио потоци от изходни клиенти. Клиентите за източник са програми, които четат аудио файлове или други източници на аудио, като микрофони. В нашия пример изходният клиент е Ices и доставя аудио поток към сървъра IceCast. Третият компонент е слушащ клиент. Аудио потоците пътуват от сървъра IceCast до слушателите, които след това чуват аудиото. Обикновено слушащият клиент е настолно приложение, като уеб браузър, VLC мултимедиен плейър или WinAMP. Визуално подредбата изглежда така:

 Source client (Ices) --> IceCast server --> Listening client (browser)

За да настроим IceCast стрийминг сървър на FreeBSD, първо инсталираме самия сървърен софтуер. Това може да стане, като изпълните следната команда.

 pkg install icecast2

След това отваряме /etc/rc.confфайла и активираме фоновата услуга IceCast. Това става чрез добавяне на следния текст в долната част на /etc/rc.confфайла.

 icecast_enable="YES"

Следващата ни стъпка е да конфигурираме услугата IceCast. Пакетът IceCast се доставя с примерен конфигурационен файл, който можем да модифицираме. Този примерен файл се намира в /usr/local/etcдиректорията. Ще направим копие на този примерен файл, преди да го редактираме.

 cd /usr/local/etc
 cp icecast.xml.sample icecast.xml

Сега искаме да редактираме няколко ключови полета на icecast.xmlфайла. Повечето от файла могат да бъдат оставени с настройките по подразбиране, но трябва да променим информацията за вход. Ние можем да направим това, като посетите удостоверяване секция (около линия 30) и промяна на източника паролата и реле-паролата на нещо подходящо. Тези пароли ще ни позволят да предаваме поточно данни към сървъра IceCast от клиент-източник. Трябва също да променим променливите admin-user и admin-password на нещо уникално за нашата система. Тези две идентификационни данни пазят уеб-базирания интерфейс на IceCast сървъра. След това, около ред 150, трябва да променим променливите mount-name , username ипарола . Тези три променливи защитават точката на монтиране на сървъра IceCast. И накрая, в долната част на icecast.xmlфайла трябва да видим раздел за сигурност , който е коментиран. Трябва да премахнем символите за отваряне <-- и затваряне --> от целия параграф за сигурност . След като icecast.xmlфайлът е променен, запазете файла.

След като конфигурационният файл бъде редактиран, искаме да активираме регистрирането. За да направите това, изпълнете следните команди.

 mkdir /var/log/icecast
 chown nobody:nogroup /var/log/icecast

Накрая стартираме сървъра IceCast. Това кара сървъра да слуша за входни и входящи клиентски връзки.

 service icecast2 start

Сървърът IceCast е готов и работи, така че сега трябва да му предоставим нещо за игра. Следващата ни стъпка е да инсталираме клиента за източник на Ices. FreeBSD в момента не предлага двоичен пакет за Ices, така че трябва да го изградим от портове. Това може да стане чрез изпълнение на следните команди.

 portsnap fetch
 portsnap extract
 cd /usr/ports/audio/ices
 make install
 make clean

Изходният клиент на Ices ще се нуждае от потребителски акаунт и регистриране. За да създадете потребител за софтуера Ices и да зададете парола за акаунта, изпълнете тези команди.

 pw groupadd ice
 pw useradd ices -g ice -m
 passwd ices

Със създадения потребител вече можем да активираме регистриране за Ices.

 mkdir /var/log/ices
 chown ices:ice /var/log/ices

Оттук нататък вече не трябва да се нуждаем от root потребителски достъп и можем да работим като потребител на ices . След това трябва да създадем две директории. Една директория, music, ще съдържа аудио файловете, които ще предаваме поточно. Втората директория, conf, ще съдържа нашите конфигурационни файлове.

 su ices
 cd /home/ices
 mkdir music conf
 cp /usr/local/share/ices/ices-playlist.xml conf/configuration.xml

Вече разполагаме с примерен конфигурационен файл. Време е да редактираме conf/configuration.xmlфайла, за да отговаря на нашата среда. Единствените части от файла, които трябва да променим, са около ред 60. Тук трябва да предоставим паролата и местоположението за монтиране, които сме задали във icecast.xmlфайла. Например, ако зададем нашето име за монтиране във icecast.xmlфайла да бъде /radio.ogg, тогава трябва да променим параметъра за монтиране на нашия configuration.xmlфайл също да бъде . Нашето поле за парола трябва да съвпада с паролата на източника, която създадохме във файла. След като нашият файл бъде редактиран, ще трябва да запазим промените си./radio.oggconfiguration.xmlicecast.xmlconfiguration.xml

След като конфигурационният файл е на място, следващата стъпка трябва да бъде да копираме аудио файлове, които искаме да прехвърлим поточно в musicдиректорията. Всички аудио файлове трябва да са във .oggформат, тъй като IceCast няма да обработва .mp3файлове със своите настройки по подразбиране. След като всички аудио файлове, които искаме да предаваме, са в musicдиректорията, трябва да създадем плейлист. Плейлистът е обикновен текстов файл със списък на музиката, която искаме да предаваме поточно. Можем лесно да създадем плейлист със следните команди.

 cd /home/ices/conf
 ls -d ../music/*.ogg > playlist.txt

Аудио файловете ще се възпроизвеждат в реда, в който се появяват във playlist.txtфайла. Файлът може да се редактира във всеки текстов редактор, за да коригира реда на поточно аудио.

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

 ices configuration.xml

Странична бележка: Често може да искаме да стартираме клиента с източник на Ices и след това да излезем и да направим нещо друго. В такъв случай обичам да стартирам Ices от екранна сесия. Ето пример за това как да стартирате ices с екран.

 screen
 cd /home/ices/conf
 ices configuration.xml

След това натиснете Ctrl + A и докоснете клавиша D. Това ще отдели екранната сесия и ще ни позволи да излезем, докато Ices възпроизвежда аудио във фонов режим. По-късно можем да спрем Ices, като влезем и изпълним:

 screen -r
 killall ices
 exit

Вече можем да се свържем с нашия сървър на порт 8000 в уеб браузър, за да слушаме нашия аудио поток. URL адресът ще изглежда така http://myservername:8000. Този адрес може да бъде публично достъпен, ако искате да позволите на другите да слушат потока.

По-рано споменах, че IceCast възпроизвежда .oggфайлове, а не .mp3. Това е сравнително лесно за преодоляване във FreeBSD. Като root потребител, можем да инсталираме инструмент за преобразуване, наречен sox , който ще преобразува нашите .mp3файлове във .oggфайлове. Ако приемем, че всички наши .mp3файлове са в /home/ices/musicдиректорията, можем да инсталираме sox и да извършим преобразуване, както следва:

 pkg install sox
 cd /home/ices/music
 for i in *.mp3; do sox ./"$i" ./"$i".ogg; done

След това можем да обновим нашия плейлист, използвайки:

 cd ../conf
 ls -d ../music/*.ogg > playlist.txt

Моля, имайте предвид, че аудио стриймингът може да бъде с интензивен трафик. Един или двама клиенти, които слушат нашата радиостанция, няма да изискват много честотна лента, но 50 или повече клиенти могат да прокарат сървър над определената му месечна честотна лента. Добра идея е да активирате ограничаване на честотната лента на сървъра за поточно предаване, за да избегнете неочаквани финансови разходи.


Как да инсталирате Tiny Tiny RSS Reader на FreeBSD 11 FAMP VPS

Как да инсталирате Tiny Tiny RSS Reader на FreeBSD 11 FAMP VPS

Използване на различна система? Tiny Tiny RSS Reader е безплатен четец и агрегатор с отворен код, самостоятелно хостван уеб базиран новинарски канал (RSS/Atom), предназначен да

Как да инсталирате Wiki.js на FreeBSD 11

Как да инсталирате Wiki.js на FreeBSD 11

Използване на различна система? Wiki.js е безплатно и модерно уики приложение с отворен код, изградено на Node.js, MongoDB, Git и Markdown. Изходният код на Wiki.js е публичен

Как да инсталирате Pagekit 1.0 CMS на FreeBSD 11 FAMP VPS

Как да инсталирате Pagekit 1.0 CMS на FreeBSD 11 FAMP VPS

Използване на различна система? Pagekit 1.0 CMS е красива, модулна, разширяема и лека, безплатна система за управление на съдържанието (CMS) с отворен код с

Как да инсталирате MODX Revolution на FreeBSD 11 FAMP VPS

Как да инсталирате MODX Revolution на FreeBSD 11 FAMP VPS

Използване на различна система? MODX Revolution е бърза, гъвкава, мащабируема система за управление на съдържанието (CMS) от корпоративен клас, написана на PHP. То и

Настройка на OpenBSD 5.5 64-битов

Настройка на OpenBSD 5.5 64-битов

Тази статия ви превежда през настройката на OpenBSD 5.5 (64-битов) на KVM с Vultr VPS. Стъпка 1. Влезте в контролния панел на Vultr. Стъпка 2. Щракнете върху РАЗГРАЖДАНЕ

Как да инсталирате osTicket на FreeBSD 12

Как да инсталирате osTicket на FreeBSD 12

Използване на различна система? osTicket е система за билети за поддръжка на клиенти с отворен код. Изходният код на osTicket се хоства публично на Github. В този урок

Как да инсталирате Flarum Forum на FreeBSD 12

Как да инсталирате Flarum Forum на FreeBSD 12

Използване на различна система? Flarum е безплатен софтуер за форуми от следващо поколение с отворен код, който прави онлайн дискусията забавна. Изходният код на Flarum се хоства o

Как да активирате TLS 1.3 в Nginx на FreeBSD 12

Как да активирате TLS 1.3 в Nginx на FreeBSD 12

Използване на различна система? TLS 1.3 е версия на протокола за сигурност на транспортния слой (TLS), който беше публикуван през 2018 г. като предложен стандарт в RFC 8446

Инсталирайте WordPress на OpenBSD 6.2

Инсталирайте WordPress на OpenBSD 6.2

Въведение WordPress е доминиращата система за управление на съдържанието в интернет. Той захранва всичко от блогове до сложни уебсайтове с динамично съдържание

Как да инсталирате Subrion 4.1 CMS на FreeBSD 11 FAMP VPS

Как да инсталирате Subrion 4.1 CMS на FreeBSD 11 FAMP VPS

Използване на различна система? Subrion 4.1 CMS е мощна и гъвкава система за управление на съдържанието (CMS) с отворен код, която носи интуитивно и ясно съдържание

Как да конфигурирате DJBDNS на FreeBSD

Как да конфигурирате DJBDNS на FreeBSD

Този урок ще ви покаже как да конфигурирате DNS услуга, която е лесна за поддръжка, лесна за конфигуриране и която като цяло е по-сигурна от класическия BIN

Как да инсталирате стека Nginx, MySQL и PHP (FEMP) на FreeBSD 12.0

Как да инсталирате стека Nginx, MySQL и PHP (FEMP) на FreeBSD 12.0

FEMP стек, който е сравним с LEMP стек в Linux, е колекция от софтуер с отворен код, който обикновено се инсталира заедно, за да даде възможност на FreeBS

Инсталиране на MongoDB на FreeBSD 10

Инсталиране на MongoDB на FreeBSD 10

MongoDB е NoSQL база данни от световна класа, която често се използва в по-новите уеб приложения. Той осигурява заявки с висока производителност, разделяне и репликация

Как да инсталирате Monica на FreeBSD 12

Как да инсталирате Monica на FreeBSD 12

Използване на различна система? Monica е система за управление на лични взаимоотношения с отворен код. Мислете за него като за CRM (популярен инструмент, използван от търговските екипи в th

OpenBSD като решение за електронна търговия с PrestaShop и Apache

OpenBSD като решение за електронна търговия с PrestaShop и Apache

Въведение Този урок демонстрира OpenBSD като решение за електронна търговия, използващо PrestaShop и Apache. Apache е необходим, тъй като PrestaShop има сложен UR

Инсталиране на Fork CMS на FreeBSD 12

Инсталиране на Fork CMS на FreeBSD 12

Използване на различна система? Fork е CMS с отворен код, написан на PHP. Изходният код на Forks се хоства на GitHub. Това ръководство ще ви покаже как да инсталирате Fork CM

Как да инсталирате Directus 6.4 CMS на FreeBSD 11 FAMP VPS

Как да инсталирате Directus 6.4 CMS на FreeBSD 11 FAMP VPS

Използване на различна система? Directus 6.4 CMS е мощна и гъвкава, безплатна и с отворен код Headless Content Management System (CMS), която предоставя на разработчиците

Повишаване на сигурността за FreeBSD с помощта на IPFW и SSHGuard

Повишаване на сигурността за FreeBSD с помощта на IPFW и SSHGuard

VPS сървърите често са насочени от натрапници. Често срещан тип атака се появява в системните регистрационни файлове като стотици неоторизирани опити за влизане в ssh. Настройвам

Настройте httpd в OpenBSD

Настройте httpd в OpenBSD

Въведение OpenBSD 5.6 въведе нов демон, наречен httpd, който поддържа CGI (чрез FastCGI) и TLS. Не е необходима допълнителна работа за инсталиране на новия http

Настройте iRedMail на FreeBSD 10

Настройте iRedMail на FreeBSD 10

Този урок ще ви покаже как да инсталирате груповия софтуер iRedMail на нова инсталация на FreeBSD 10. Трябва да използвате сървър с поне един гигабайт o

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

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

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече