LinuxParty
En este tutorial explicaremos la creación de su propio servidor de streaming de audio con Icecast (OGG/MP3). Icecast fue diseñado para transmitir cualquier archivo de audio si un cliente de streaming apropiado está disponible. Para OGG / Vorbis puede utilizar icegenerator MP3. Aquí hay un pequeño tutorial de cómo configurar Icecast para el streaming OGG / Vorbis y MP3.
Este artículo contiene los siguientes temas:
Configuración del servidor: Icecast
Configurar el cliente OGG / Vorbis streaming: ices
Configurar el cliente de streaming MP3: icegenerator
Configuración del servidor: Icecast
En primer lugar obtener el software:
# yum groupinstall "Development Tools"
# yum install -y curl-devel libtheora-devel libvorbis-devel libxslt-devel speex-devel libxslt
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# cd /home
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# mkdir -p /usr/src/icecast
# cd /usr/src/icecast
# wget http://downloads.xiph.org/releases/icecast/icecast-2.3.3.tar.gz
A continuación extraiga las fuentes y cambiar al nuevo directorio:
# tar xf icecast-2.3.3.tar.gz
# cd icecast-2.3.3
A continuación, configure las fuentes:
# ./configure --prefix=/opt/icecast/2.3.3
Y finalmente compilar el código fuente y los binarios de instalación:
# make
# make install
Debe tener ahora el binario icecast bajo /opt/icecast/2.3.3/latest/bin:
# ls /opt/icecast/2.3.3/bin/icecast *
Ahora ve al directorio icecast y enlace el directorio a latest (la última versión):
# cd /opt/icecast
# ln -s 2.3.3 latest
Ahora configure icecast editando el archivo icecast.xml. Lo primero mover el archivo de ejemplo original a un lugar alternativo:
# cd /opt/icecast/latest/etc
# mv icecast.xml icecast.xml.orig
# vi icecast.xml
<icecast> <!-- LIMITS --> <limits> <clients>100</clients> <sources>10</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> <!-- GENRIC --> <authentication> <source-password>password</source-password> <admin-user>admin</admin-user> <admin-password>password</admin-password> </authentication> <hostname>MyHost/IP</hostname> <listen-socket> <port>8000</port> </listen-socket> <fileserve>1</fileserve> <!-- PATHES --> <paths> <basedir>/opt/icecast/latest/share/icecast</basedir> <webroot>/opt/icecast/latest/share/icecast/web</webroot> <adminroot>/opt/icecast/latest/share/icecast/admin</adminroot> <logdir>/var/log/icecast</logdir> <pidfile>/var/run/icecast/icecast.pid</pidfile> <alias source="/" dest="/status.xsl"/> </paths> <!-- LOG --> <logging> <accesslog>access.log</accesslog> <errorlog>error.log</errorlog> <playlistlog>playlist.log</playlistlog> <loglevel>1</loglevel> <logsize>10000</logsize> <logarchive>1</logarchive> </logging> <!-- SECURITY --> <security> <chroot>0</chroot> <changeowner> <user>icecast</user> <group>icecast</group> </changeowner> </security> </icecast>
El anterior icecast.xml es muy simple. Los límites de la primera sección define el número de máximo de estaciones de radios que desee proporcionar (fuentes = 10), la cantidad de clientes que pueden conectarse (clientes = 100), etc
La segunda sección GENERIC define un nombre de usuario, nombre de host myhost / IP), el puerto (8000) para el propio servidor, etc
La sección PATHES define las Rutas al webgui.
Icecast tiene un pequeño y fácil webgui para ver lo que está pasando y esta sección define dónde encontrar los documentos web.
La sección LOG, por supuesto, para el registro, dónde y qué iniciar etc
La Sección de Seguridad establece sí el software Icecast debe ejecutarse bajo el usuario icecast y el grupo icecast.
Ahora necesitamos tres cosas más que hacer: crear un usuario y un grupo llamado icecast tal como se define en el archivo de configuración icecast.xml creando el ambiente para los registros y un lugar para el archivo pid.
En primer lugar crear el usuario icecast con el ID 200 y el grupo icecast con el ID 200:
# groupadd -g 200 icecast
# useradd -d /var/log/icecast -m -g icecast -s /bin/bash -u 200 icecast
Con la opción -m puede establecer el directorio de los LOGs creados automáticamente y el segundo paso puede ser guardado. Ahora sólo necesita establecer el directorio para el archivo pid:
# mkdir -p /var/run/icecast
# chown -R icecast:icecast /var/run/icecast
Vamos a darle una oportunidad e iniciar el servidor icecast:
# /opt/icecast/latest/bin/icecast -c /opt/icecast/latest/etc/icecast.xml -b
Starting icecast2
Detaching from the console
Changed groupid to 200.
Changed userid to 200.
Su servidor está ejecutando como el usuario icecast y los registros se produjeron en /var/log/icecast:
# ls /var/log/icecast/
access.log error.log playlist.log
Compruebe que esté realmente funcionando:
# pgrep -fl icecast
4434 /opt/icecast/latest/bin/icecast -c /opt/icecast/latest/etc/icecast.xml -b
También el servidor icecast debe ser accesible a través del webgui dado bajo su nombre de host y el puerto, por ejemplo, http://MyHost/IP:8000/, cuando usted tenga configurado una o más estaciones se mostrarán aquí. El usuario de la webgui administrativo se define en el archivo de arriba icecast.xml - icecast. La clave en este caso es password.
Configurar el cliente OGG / Vorbis streaming: ice
Antes de poder compilar ice necesita la biblioteca libshout. Primero descargar:
# cd /usr/src/icecast
# wget http://downloads.us.xiph.org/releases/libshout/libshout-2.3.1.tar.gz
A continuación, extraer el archivo tar y cambiar al nuevo directorio:
# tar xf libshout-2.3.1.tar.gz
# cd libshout-2.3.1
Ejecute el script configure:
# ./configure --prefix=/opt/icecast/latest
Y compilar las fuentes e instalar la biblioteca:
# make
# make install
Ahora descargar el cliente de ices:
# cd /usr/src/icecast
# wget http://downloads.us.xiph.org/releases/ices/ices-2.0.2.tar.bz2
Extraiga el archivo tar y el cambie al nuevo directorio:
# tar xf ices-2.0.2.tar.bz2
# cd ices-2.0.2/
Antes de ejecutar el script de configuración, exporte la variable PKG_CONFIG_PATH para poder incluir la biblioteca libshout:
# export PKG_CONFIG_PATH=/opt/icecast/latest/lib/pkgconfig:$PKG_CONFIG_PATH
# ./configure --prefix=/opt/icecast/latest
Ahora compila el código fuente y los binarios de instalación:
# make
# make install
Compruebe que el cliente de ices está disponible:
# ls /opt/icecast/latest/bin/
icecast* ices*
Por último, configure el cliente de ices y cree su primera emisora de radio OGG / Vorbis:
# cd /opt/icecast/latest/etc/
# vi ices1.xml
<ices> <!-- GENERIC --> <background>1</background> <pidfile>/var/run/icecast/ices1.pid</pidfile> <!-- LOGGING --> <logpath>/var/log/icecast</logpath> <logfile>ices1.log</logfile> <logsize>2048</logsize> <loglevel>3</loglevel> <consolelog>0</consolelog> <!-- STREAM --> <stream> <metadata> <name>RadioStation 1: OGG</name> <genre>Varios</genre> <description>Test Radio 1</description> <url>http://MyHost/IP:8000/</url> </metadata> <input> <param name="type">basic</param> <param name="file">/opt/icecast/latest/etc/playlist1.txt</param> <param name="random">1</param> <param name="once">0</param> <param name="restart-after-reread">1</param> </input> <instance> <hostname>MyHost/IP</hostname> <port>8000</port> <password>password</password> <mount>/radiostation1</mount> </instance> </stream> </ices>
El archivo de configuración de ices es tan fácil como el archivo de configuración de Icecast. La sección GENERIC define ejecutar ices en segundo plano y donde el archivo pid puede ser encontrado.
La sección LOGGING es toda acerca del registro, dónde y qué registrar. La sección STREAM necesita un poco más de atención. Se define la estación de radio así como el nombre de la estación, donde el servidor icecast puede llegar etc
La contraseña es la contraseña de origen del archivo de configuración icecast. Si no establece una contraseña, todo el mundo puede conectarse a su servidor Icecast y crear una emisora.
Una cosa más: la lista de reproducción. La lista de reproducción es un archivo de texto plano y contiene todas las canciones que desea reproducir.
Todos los archivos OGG / Vorbis dentro de este archivo debe tener la ruta completa, por ejemplo:
# cd /opt/icecast/latest/etc/
# vi playlist1.txt
/music/artist/album/song1.ogg /music/artist/album/song2.ogg
Puede crear esta lista es muy fácil encontrar:
# find /music/artist/album/ -name "*.ogg" > /opt/icecast/latest/etc/playlist1.txt
Con el archivo de configuración de ices Y la lista de reproducción creada, Inicie ices, como el usuario icecast:
# su - icecast -c "/opt/icecast/latest/bin/ices /opt/icecast/latest/etc/ices1.xml"
Ahora eche un vistazo en el archivo de registro:
# cat /var/log/icecast/ices1.log
[2011-12-16 12:17:05] INFO signals/signal_usr1_handler Metadata update requested
[2011-12-16 12:17:05] INFO playlist-basic/playlist_basic_get_next_filename Loading playlist from file "/opt/icecast/latest/etc/playlist1.txt"
[2011-12-16 12:17:05] INFO playlist-builtin/playlist_read Currently playing "/music/artist/album/song2.ogg"
[2011-12-16 12:17:05] INFO stream/ices_instance_stream Connected to server: MyHost/IP:8000/radiostation1
...
Como se puede ver la primera estación de radio está listo y disponible bajo http://MyHost/IP:8000/radiostation1
Ahora intenta conectarse a su servidor de streaming con un cliente de audio y disfrutar escuchando su radio.
Para cada estación de radio que desea proveer es necesario crear un archivo de configuración de ices con su propia lista de reproducción, etc Eg. puede crear una estación de radio independiente para la música Rock y una estación de radio independiente para la música pop.
Configurar el cliente de streaming MP3: icegenerator
Para transmitir archivos MP3 necesita un cliente de streaming como icegenerator. Antes de poder compilar icegenerator usted tiene que instalar libshout primero.
# cd /usr/src/icecast
# wget http://downloads.us.xiph.org/releases/libshout/libshout-2.3.1.tar.gz
A continuación, extraer el archivo tar y cambiar al nuevo directorio:
# tar xf libshout-2.3.1.tar.gz
# cd libshout-2.3.1
Ejecute el script configure:
# ./configure --prefix=/opt/icecast/latest
Y compilar las fuentes e instalar la biblioteca:
# make
# make install
Para compilar icegenerator descargar el paquete fuente de http://sourceforge.net/projects/icegenerator/ y guárdelo en el directorio src. A continuación, vaya al directorio src y extraer la fuente:
# cd /usr/src/icecast
# wget http://netcologne.dl.sourceforge.net/project/icegenerator/icegenerator/0.5.5-pre2/icegenerator-0.5.5-pre2.tar.gz
# tar xfz icegenerator-0.5.5-pre2.tar.gz
# cd icegenerator-0.5.5-pre2
Ahora ejecuta el script de configuración (la opción --prefix se tendrá en cuenta, basta con ejecutar el script de configuración sin la opción --prefix):
# ./configure
Y compilar el código fuente y los binarios de instalación:
# make
# make install
Compruebe que icegenerator está disponible:
# ls -lah /usr/local/bin/ice*
-rwxr-xr-x 1 root root 55K 2011-12-16 12:41 /usr/local/bin/icegenerator*
Ahora configure icegenerator y crear su primera estación de radio MP3:
# cd /usr/local/etc
# vi icegen1.cfg
IP=192.168.1.100 PORT=8000 SERVER=2 MOUNT=/radiostation2 PASSWORD=password FORMAT=1 MP3PATH=m3u:/usr/local/etc/playlist2.m3u LOOP=1 SHUFFLE=1 NAME=RadioStation 2: MP3 DESCRIPTION=Test Radio GENRE=Varios URL=http://MyHost/IP:8000/ LOG=2 LOGPATH=/var/log/icecast/icegen1.log BITRATE=48000 SOURCE=source
El archivo de configuración es un poco más complicado que el archivo de configuración ices. Lo primero definir la IP y el puerto para su SERVIDOR Icecast. La opción SERVER es para el protocolo http o icy, aquí es http.MOUNT y PASSWORD son los mismos que la estación OGG / Vorbis, donde para llegar a la estación en sí (http://MyHost/IP:8000/radiostation2) y cómo autentificarse. La opción de formatear, ya sea streaming de MP3 (1) o OGG / Vorbis (0). LOOP y SHUFFLE para recorrer la lista de reproducción y plaing aleatorio. Nombre, descripción y GENRE describirá su radio.MP3PATH define qué archivos en secuencia, en este caso, todo ello desde una lista de reproducción m3u compatible (creado después). URL indica donde para llegar al servidor de streaming o cualquier otra dirección. Esta dirección se mostrará tal vez por su reproductor. LOG specifiy y logPath. El BITRATE define la calidad de streaming ..
# vi /usr/local/etc/playlist2.m3u
/music/artist/album/song1.mp3 /music/artist/album/song2.mp3
# find /music/artist/album/ -name "*.mp3" > /usr/local/etc/playlist2.m3u
# su - icecast -c "export LD_LIBRARY_PATH=/opt/icecast/latest/lib:$LD_LIBRARY_PATH; /usr/local/bin/icegenerator -f /usr/local/etc/icegen1.cfg"
# pgrep -fl icegen
31255 icegenerator -f /usr/local/etc/icegen1.cfg
# cat /var/log/icecast/icegen1.log
Fri Dec 16 13:44:38 2011: Connected to stream serverFri Dec 16 13:44:38 2011: Now playing song1.mp3Fri Dec 16 13:48:41 2011: Wait for all child process to terminate......
Como se puede ver la segunda estación de radio está listo y disponible bajo http://MyHost/IP:8000/radiostation2
Ahora intenta conectarse a su servidor de streaming con un cliente de audio y disfrutar escuchando su radio.
Enlaces:
Icecast, libshout and ices: http://www.icecast.org
Description for icegenerator: http://www.becrux.com/index.php?page=projects&name=icegenerator#Configuration
-
CentOS
- Configurar dirección IP estática en RHEL 8 / CentOS 8 Linux
- Cómo migrar CentOS 7 a AlmaLinux 8 usando ELevate Repo
- CERN y Fermilab han anunciado que adoptarán AlmaLinux como su sistema operativo principal.
- Instalar Nvidia Driver en AlmaLinux, Rocky Linux, CentOS, RHEL y Fedora (último controlador patentado)
- Cómo actualizar / migrar de CentOS 8 a AlmaLinux 8.5
- Rocky Linux 9 llega con todo lo necesario para replicar la distro por tu cuenta
- Solucionar Failed to download metadata for repo ‘AppStream’ CentOS / AlmaLinux / RockyLinux / Fedora / RHEL
- Cómo actualizar de CentOS 8 a Centos Stream 8
- Cómo actualizar de CentOS 8 a Rocky Linux 8
- Cómo actualizar de CentOS 8 a RHEL 8
- Avanzando después de CentOS 8 EOL
- Wi-Fi 7: el futuro estándar cuatro veces más rápido que Wi-Fi 6 y que rivalizará con el ancho de banda con los cables.
- Como reiniciar la contraseña (password) en RedHat 7 / CentOS 7
- Cómo migrar de CentOS 8 a Rocky Linux 8
- Rocky Linux el sustituto de CentOS, disponible para su descarga.