El tutorial següent explica com configurar un servidor de transmissió de ràdio IceCast i reproduir fitxers d'àudio (música o podcasts) a la plataforma FreeBSD. Aquest tutorial suposa que esteu executant FreeBSD 10.0 o superior i que heu iniciat sessió com a usuari root. També es va suposar que teniu un editor de text per editar fitxers de configuració.
Abans de començar, és important entendre les tres parts d'un servidor de transmissió d'àudio. Primer, tenim el programari del servidor en si, IceCast. IceCast actua com un centre central on entren i s'envien els fluxos d'àudio. El servei IceCast recull fluxos d'àudio dels clients font. Els clients font són programes que llegeixen fitxers d'àudio o altres fonts d'àudio, com ara micròfons. En el nostre exemple, el client font és Ices i proporciona un flux d'àudio al servidor IceCast. El tercer component és un client que escolta. Els fluxos d'àudio viatgen des del servidor IceCast als oients que després escolten l'àudio. Normalment, un client d'escolta és una aplicació d'escriptori, com ara un navegador web, el reproductor multimèdia VLC o WinAMP. Visualment, la disposició és així:
Source client (Ices) --> IceCast server --> Listening client (browser)
Per configurar un servidor de streaming IceCast a FreeBSD, primer instal·lem el programari del servidor. Això es pot fer executant la següent comanda.
pkg install icecast2
A continuació, obrim el /etc/rc.conffitxer i activem el servei de fons IceCast. Això es fa afegint el text següent a la part inferior del /etc/rc.conffitxer.
icecast_enable="YES"
El nostre següent pas és configurar el servei IceCast. El paquet IceCast s'envia amb un fitxer de configuració de mostra que podem modificar. Aquest fitxer de mostra es troba al /usr/local/etcdirectori. Farem una còpia d'aquest fitxer de mostra abans d'editar-lo.
cd /usr/local/etc
cp icecast.xml.sample icecast.xml
Ara volem editar alguns camps clau del icecast.xmlfitxer. La major part del fitxer es pot deixar amb la configuració predeterminada, però hauríem de canviar la informació d'inici de sessió. Podem fer això visitant la autenticació de la secció (a la línia al voltant de 30) i el canvi de la font de contrasenya i retransmetre-contrasenya a alguna cosa apropiat. Aquestes contrasenyes ens permetran transmetre dades al servidor IceCast des d'un client font. També hauríem de canviar les variables admin-user i admin-password per alguna cosa única per al nostre sistema. Aquestes dues credencials protegeixen la interfície web del servidor IceCast. Aleshores, al voltant de la línia 150, hauríem de canviar les variables mount-name , username icontrasenya . Aquestes tres variables protegeixen el punt de muntatge del servidor IceCast. Finalment, a la part inferior del icecast.xmlfitxer hauríem de veure una secció de seguretat que s'ha comentat. Hauríem d'eliminar els símbols d' obertura <-- i de tancament --> al voltant del paràgraf de seguretat . Un cop icecast.xmlcanviat el fitxer, deseu-lo.
Un cop editat el fitxer de configuració, volem habilitar el registre. Per fer-ho, executeu les ordres següents.
mkdir /var/log/icecast
chown nobody:nogroup /var/log/icecast
Finalment, iniciem el servidor IceCast, això fa que el servidor escolti les connexions d'entrada i de client entrants.
service icecast2 start
El servidor IceCast està en funcionament, així que ara hem de proporcionar-li alguna cosa per jugar. El nostre següent pas és instal·lar el client font d'Ices. FreeBSD actualment no ofereix un paquet binari per a Ices, de manera que hem de construir-lo des de ports. Això es pot fer executant les ordres següents.
portsnap fetch
portsnap extract
cd /usr/ports/audio/ices
make install
make clean
El client d'origen d'Ices necessitarà un compte d'usuari i un registre. Per crear un usuari per al programari Ices i establir una contrasenya al compte, executeu aquestes ordres.
pw groupadd ice
pw useradd ices -g ice -m
passwd ices
Amb l'usuari creat, ara podem habilitar el registre per a Ices.
mkdir /var/log/ices
chown ices:ice /var/log/ices
A partir d'aquí, ja no hauríem de necessitar l'accés d'usuari root i podem operar com a usuari d' ices . A continuació, hem de crear dos directoris. Un directori, music, contindrà els fitxers d'àudio que transmetrem. El segon directori, conf, contindrà els nostres fitxers de configuració.
su ices
cd /home/ices
mkdir music conf
cp /usr/local/share/ices/ices-playlist.xml conf/configuration.xml
Ara tenim un fitxer de configuració de mostra al seu lloc. És hora d'editar el conf/configuration.xmlfitxer per adaptar-lo al nostre entorn. Les úniques parts del fitxer que hem de canviar són al voltant de la línia 60. Aquí hem de proporcionar la contrasenya i la ubicació de muntatge que hem establert al icecast.xmlfitxer. Per exemple, si establim el nostre nom de muntatge al icecast.xmlfitxer com a /radio.ogg, hauríem de canviar el paràmetre de muntatgeconfiguration.xml del nostre fitxer perquè també sigui . El nostre camp de contrasenya ha de coincidir amb la contrasenya font que hem creat al fitxer. Un cop editat el nostre fitxer, haurem de desar els nostres canvis./radio.oggconfiguration.xmlicecast.xmlconfiguration.xml
Amb el fitxer de configuració al seu lloc, el següent pas hauria de ser copiar els fitxers d'àudio que volem transmetre al musicdirectori. Els fitxers d'àudio haurien d'estar tots en .oggformat, ja que IceCast no gestionarà els .mp3fitxers amb la seva configuració predeterminada. Una vegada que tots els fitxers d'àudio que volem transmetre estan al musicdirectori, hem de crear una llista de reproducció. Una llista de reproducció és un fitxer de text senzill amb una llista de la música que volem reproduir. Podem crear fàcilment una llista de reproducció amb les ordres següents.
cd /home/ices/conf
ls -d ../music/*.ogg > playlist.txt
Els fitxers d'àudio es reproduiran en l'ordre en què apareixen al playlist.txtfitxer. El fitxer es pot editar en qualsevol editor de text per ajustar l'ordre de l'àudio en streaming.
Tot el que hem de fer per començar a transmetre els nostres fitxers d'àudio és executar aquesta ordre.
ices configuration.xml
Nota al marge: sovint volem executar el client font d'Ices i després tancar la sessió i anar a fer una altra cosa. En aquest cas, m'agrada executar Ices des d'una sessió de pantalla . Aquí teniu un exemple de com executar gels amb pantalla.
screen
cd /home/ices/conf
ices configuration.xml
A continuació, premeu Ctrl + A i toqueu la tecla D. Això desconnectarà la sessió de pantalla i ens permetrà tancar la sessió mentre Ices reprodueix àudio en segon pla. Més tard, podem aturar Ices iniciant sessió i executant:
screen -r
killall ices
exit
Ara ens podem connectar al nostre servidor al port 8000 en un navegador web per escoltar el nostre flux d'àudio. L'URL serà com http://myservername:8000. Aquesta adreça es pot posar a disposició del públic si voleu que altres escoltin la reproducció.
Abans, he esmentat que IceCast reprodueix .oggfitxers i no .mp3. Això és bastant fàcil de superar a FreeBSD. Com a usuari root, podem instal·lar una eina de conversió, anomenada sox , que convertirà els nostres .mp3fitxers en .oggfitxers. Suposant que tots els nostres .mp3fitxers es troben al /home/ices/musicdirectori, podem instal·lar sox i realitzar una conversió de la següent manera:
pkg install sox
cd /home/ices/music
for i in *.mp3; do sox ./"$i" ./"$i".ogg; done
Aleshores podem actualitzar la nostra llista de reproducció utilitzant:
cd ../conf
ls -d ../music/*.ogg > playlist.txt
Si us plau, tingueu en compte que la transmissió d'àudio pot consumir ample de banda. Un o dos clients que escolten la nostra emissora de ràdio no requeriran gaire amplada de banda, però 50 o més clients podrien empènyer un servidor sobre l'ample de banda mensual assignat. És una bona idea habilitar el límit d'ample de banda al servidor de transmissió per evitar costos financers inesperats.