Transmisión de radio en FreeBSD 10 con IceCast e Ices

El siguiente tutorial explica cómo configurar un servidor de transmisión de radio IceCast y reproducir archivos de audio (música o podcasts) en la plataforma FreeBSD. Este tutorial asume que está ejecutando FreeBSD 10.0 o superior y que ha iniciado sesión como usuario root. También se supone que tiene un editor de texto para editar archivos de configuración.

Antes de comenzar, es importante comprender las tres partes de un servidor de transmisión de audio. Primero, tenemos el software del servidor en sí, IceCast. IceCast actúa como un centro central donde entran y salen transmisiones de audio. El servicio IceCast toma transmisiones de audio de clientes de origen. Los clientes de origen son programas que leen archivos de audio u otras fuentes de audio, como micrófonos. En nuestro ejemplo, el cliente de origen es Ices y proporciona una transmisión de audio al servidor IceCast. El tercer componente es un cliente que escucha. Las transmisiones de audio viajan desde el servidor IceCast a los oyentes que luego escuchan el audio. Normalmente, un cliente que escucha es una aplicación de escritorio, como un navegador web, el reproductor multimedia VLC o WinAMP. Visualmente, el arreglo se ve así:

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

Para configurar un servidor de transmisión IceCast en FreeBSD, primero instalamos el software del servidor. Esto se puede hacer ejecutando el siguiente comando.

 pkg install icecast2

Luego abrimos el /etc/rc.confarchivo y habilitamos el servicio de fondo IceCast. Esto se hace agregando el siguiente texto al final del /etc/rc.confarchivo.

 icecast_enable="YES"

Nuestro siguiente paso es configurar el servicio IceCast. El paquete IceCast se entrega con un archivo de configuración de muestra que podemos modificar. Este archivo de muestra se encuentra en el /usr/local/etcdirectorio Haremos una copia de este archivo de muestra antes de editarlo.

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

Ahora queremos editar algunos campos clave del icecast.xmlarchivo. La mayor parte del archivo se puede dejar con la configuración predeterminada, pero debemos cambiar la información de inicio de sesión. Podemos hacer esto visitando la autenticación de la sección (en la línea alrededor de 30) y el cambio de la fuente de contraseña y retransmitir-contraseña a algo apropiado. Estas contraseñas nos permitirán transmitir datos al servidor IceCast desde un cliente fuente. También deberíamos cambiar las variables admin-user y admin-password a algo exclusivo de nuestro sistema. Estas dos credenciales protegen la interfaz web del servidor IceCast. A continuación, hacia abajo alrededor de la línea 150, hay que cambiar las variables de montar nombre , nombre de usuario , ycontraseña . Estas tres variables protegen el punto de montaje del servidor IceCast. Finalmente, al final del icecast.xmlarchivo deberíamos ver una sección de seguridad que ha sido comentada. Deberíamos eliminar los símbolos de apertura <- y cierre -> alrededor del párrafo de seguridad . Una vez que el icecast.xmlarchivo ha sido cambiado, guárdelo.

Una vez que el archivo de configuración ha sido editado, queremos habilitar el registro. Para hacer esto, ejecute los siguientes comandos.

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

Finalmente, iniciamos el servidor IceCast. Esto hace que el servidor escuche las entradas y las conexiones entrantes del cliente.

 service icecast2 start

El servidor IceCast está en funcionamiento, por lo que ahora debemos proporcionarle algo para jugar. Nuestro siguiente paso es instalar el cliente de origen Ices. FreeBSD actualmente no ofrece un paquete binario para Ices, por lo que debemos construirlo desde los puertos. Esto se puede hacer ejecutando los siguientes comandos.

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

El cliente de origen Ices necesitará una cuenta de usuario y un registro. Para crear un usuario para el software Ices y establecer una contraseña en la cuenta, ejecute estos comandos.

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

Con el usuario creado, ahora podemos habilitar el registro para Ices.

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

De aquí en adelante, ya no deberíamos necesitar acceso de usuario root y podemos operar como usuario de hielo . A continuación, necesitamos crear dos directorios. Un directorio, musiccontendrá los archivos de audio que vamos a transmitir. El segundo directorio, confcontendrá nuestros archivos de configuración.

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

Ahora tenemos un archivo de configuración de muestra en su lugar. Es hora de editar el conf/configuration.xmlarchivo para adaptarlo a nuestro entorno. Las únicas partes del archivo que necesitamos cambiar están en la línea 60. Aquí debemos proporcionar la contraseña y la ubicación de montaje que configuramos en el icecast.xmlarchivo. Por ejemplo, si configuramos nuestro nombre de montaje en el icecast.xmlarchivo para que sea /radio.ogg, entonces deberíamos cambiar configuration.xmlel parámetro de montaje de nuestro archivo para que también sea /radio.ogg. Nuestro campo de contraseñaconfiguration.xml debe coincidir con la contraseña de origen que creamos en el icecast.xmlarchivo. Una vez que nuestro configuration.xmlarchivo ha sido editado, necesitaremos guardar nuestros cambios.

Con el archivo de configuración en su lugar, el siguiente paso debería ser copiar los archivos de audio que deseamos transmitir al musicdirectorio. Todos los archivos de audio deben estar en .oggformato ya que IceCast no manejará .mp3archivos con su configuración predeterminada. Una vez que todos los archivos de audio que deseamos transmitir estén en el musicdirectorio, necesitamos crear una lista de reproducción. Una lista de reproducción es un archivo de texto sin formato con una lista de la música que queremos transmitir. Podemos crear fácilmente una lista de reproducción con los siguientes comandos.

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

Los archivos de audio se reproducirán en el orden en que aparecen en el playlist.txtarchivo. El archivo se puede editar en cualquier editor de texto para ajustar el orden de la transmisión de audio.

Todo lo que necesitamos hacer para comenzar a transmitir nuestros archivos de audio es ejecutar este comando.

 ices configuration.xml

Nota al margen: a menudo podemos querer ejecutar el cliente de origen Ices y luego cerrar sesión e ir a hacer otra cosa. En ese caso, me gusta ejecutar Ices desde una sesión de pantalla . Aquí hay un ejemplo sobre cómo ejecutar helados con pantalla.

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

Luego presione Ctrl + A y toque la tecla D. Eso separará la sesión de la pantalla y nos permitirá cerrar sesión mientras Ices reproduce audio en segundo plano. Más tarde, podemos detener a Ices iniciando sesión y ejecutando:

 screen -r
 killall ices
 exit

Ahora podemos conectarnos a nuestro servidor en el puerto 8000 en un navegador web para escuchar nuestra transmisión de audio. La URL se verá así http://myservername:8000. Esta dirección se puede poner a disposición del público si desea permitir que otros escuchen la transmisión.

Anteriormente, mencioné que IceCast reproduce .oggarchivos y no .mp3. Esto es bastante fácil de superar en FreeBSD. Como usuario root, podemos instalar una herramienta de conversión, llamada sox , que convertirá nuestros .mp3archivos en .oggarchivos. Suponiendo que todos nuestros .mp3archivos estén en el /home/ices/musicdirectorio, podemos instalar sox y realizar una conversión de la siguiente manera:

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

Luego podemos actualizar nuestra lista de reproducción usando:

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

Tenga en cuenta que la transmisión de audio puede requerir mucho ancho de banda. Uno o dos clientes que escuchen nuestra estación de radio no requerirán mucho ancho de banda, pero 50 o más clientes podrían empujar a un servidor sobre su ancho de banda mensual asignado. Es una buena idea habilitar la limitación de ancho de banda en el servidor de transmisión para evitar costos financieros inesperados.



Leave a Comment

Cómo instalar Blacklistd en FreeBSD 11.1

Cómo instalar Blacklistd en FreeBSD 11.1

Introducción Cualquier servicio que esté conectado a Internet es un objetivo potencial para ataques de fuerza bruta o acceso injustificado. Hay herramientas como fail2ba

How To Install Apache, MySQL and PHP (FAMP) Stack on FreeBSD 12.0

How To Install Apache, MySQL and PHP (FAMP) Stack on FreeBSD 12.0

Introduction A FAMP stack, which is comparable to a LAMP stack on Linux, is a collection of open-source software that is typically installed together t

Configurar OpenBSD 5.6 con cifrado de disco completo

Configurar OpenBSD 5.6 con cifrado de disco completo

Este tutorial le mostrará cómo configurar OpenBSD 5.6 con un disco completamente encriptado en su Vultr VPS. Una nota sobre la parte de cifrado: la mayoría de los centros de datos alrededor de

Cómo usar Sudo en Debian, CentOS y FreeBSD

Cómo usar Sudo en Debian, CentOS y FreeBSD

Usar un usuario sudo para acceder a un servidor y ejecutar comandos a nivel raíz es una práctica muy común entre Linux y Unix Systems Administrator. El uso de un sud

Cómo instalar osTicket en FreeBSD 12

Cómo instalar osTicket en FreeBSD 12

¿Usando un sistema diferente? osTicket es un sistema de tickets de soporte al cliente de código abierto. El código fuente de osTicket está alojado públicamente en Github. En este tutorial

How to Install Osclass on FreeBSD 12

How to Install Osclass on FreeBSD 12

Using a Different System? Osclass is an open source project that allows you to easily create a classified site without any technical knowledge. Its sourc

How to Install Wiki.js on FreeBSD 11

How to Install Wiki.js on FreeBSD 11

Using a Different System? Wiki.js is a free and open source, modern wiki app built on Node.js, MongoDB, Git and Markdown. Wiki.js source code is publicl

How to Install Lychee 3.1 Photo Album on a FreeBSD 11 FAMP VPS

How to Install Lychee 3.1 Photo Album on a FreeBSD 11 FAMP VPS

Using a Different System? Lychee 3.1 Photo Album is a simple and flexible, free and open source photo-management tool which runs on a VPS server. It install

Installing Fork CMS on FreeBSD 12

Installing Fork CMS on FreeBSD 12

Using a Different System? Fork is an open source CMS written in PHP. Forks source code is hosted on GitHub. This guide will show you how to install Fork CM

Crear archivo de intercambio en FreeBSD 10

Crear archivo de intercambio en FreeBSD 10

Fuera de la caja, los servidores Vultr FreeBSD no están configurados para incluir espacio de intercambio. Si su intención es una instancia de nube desechable, probablemente no necesite

Cómo cambiar el tamaño de un disco en FreeBSD

Cómo cambiar el tamaño de un disco en FreeBSD

El sistema operativo FreeBSD utiliza UFS (Sistema de archivos Unix) para su sistema de archivos de particiones raíz; también conocido como freebsd-ufs en caso de una actualización

How to Install Selfoss RSS Reader on a FreeBSD 11 FAMP VPS

How to Install Selfoss RSS Reader on a FreeBSD 11 FAMP VPS

Using a Different System? Selfoss RSS Reader is a free and open source self-hosted web-based multipurpose, live stream, mashup, news feed (RSS/Atom) reade

How to Install Matomo Analytics on FreeBSD 11

How to Install Matomo Analytics on FreeBSD 11

Using a Different System? Matomo (formerly Piwik) is an open source analytics platform, an open alternative to Google Analytics. Matomo source is hosted o

How to Enable TLS 1.3 in Nginx on FreeBSD 12

How to Enable TLS 1.3 in Nginx on FreeBSD 12

Using a Different System? TLS 1.3 is a version of the Transport Layer Security (TLS) protocol that was published in 2018 as a proposed standard in RFC 8446

How to Install Craft CMS on FreeBSD 12

How to Install Craft CMS on FreeBSD 12

Using a Different System? Introduction Craft CMS is an open source CMS written in PHP. Craft CMS source code is hosted on GitHub. This guide will show yo

Cómo instalar Backdrop CMS en un FreeBSD 11 FAMP VPS

Cómo instalar Backdrop CMS en un FreeBSD 11 FAMP VPS

¿Usando un sistema diferente? Backdrop CMS 1.8.0 es un sistema de administración de contenido (CMS) simple y flexible, amigable para dispositivos móviles, gratuito y de código abierto que nos permite

Cómo instalar ImpressPages CMS 5.0 en un FreeBSD 11 FAMP VPS

Cómo instalar ImpressPages CMS 5.0 en un FreeBSD 11 FAMP VPS

¿Usando un sistema diferente? ImpressPages CMS 5.0 es un sistema de gestión de contenido (CMS) simple y efectivo, gratuito y de código abierto, fácil de usar y basado en MVC

How to Install NodeBB forum on FreeBSD 12

How to Install NodeBB forum on FreeBSD 12

Using a Different System? NodeBB is a Node.js based forum software. It utilizes web sockets for instant interactions and real-time notifications. The NodeB

Install eSpeak on FreeBSD 12

Install eSpeak on FreeBSD 12

Using a Different System? ESpeak can generate text-to-speech (TTS) audio files. These can be useful for many reasons, such as creating your own Turin

Instalar TaskServer (taskd) en FreeBSD 11

Instalar TaskServer (taskd) en FreeBSD 11

¿Usando un sistema diferente? TaskWarrior es una herramienta de gestión de tiempo de código abierto que es una mejora en la aplicación Todo.txt y sus clones. Debido a th

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.