Inicio rápido
Antes de empezar
Section titled “Antes de empezar”Deben cumplirse cuatro condiciones. Si alguna no se cumple, resuélvala ahora: cada una de ellas provoca más adelante un síntoma que parece una avería de Castmux y no lo es.
- Una URL de origen que ya haya reproducido. Ábrala primero en VLC en su portátil. Si VLC no puede reproducirla, Castmux tampoco, y pasará la próxima hora leyendo registros sobre un problema que está en el servidor de origen.
- Un grupo multicast que tenga permiso para usar.
239.10.0.1:1234es una primera opción razonable:239.0.0.0/8es el rango de ámbito administrativo, por lo que no entrará en conflicto con nada enrutado. Confirme con el responsable de la red que el grupo y el puerto están libres. - El equipo en el mismo segmento de capa 2 que los televisores. El multicast no atraviesa un router salvo que alguien haya configurado PIM, lo cual queda fuera del alcance de esta guía. La misma VLAN, la misma red de switches.
- Saber qué interfaz de red da a los televisores. Necesitará el nombre —
eth0,eth1,enp1s0—, no solo «la de la derecha». Casi todos los fallos al final de esta página se deben a que la ruta multicast apunta a la otra.
Inicie el equipo
Section titled “Inicie el equipo”Cree un directorio en el host para la configuración y, a continuación, inicie el contenedor:
# A plain host directory, so config.yaml stays readable and backup-ablesudo mkdir -p /opt/castmux/config
sudo docker run -d --name castmux --restart unless-stopped \ --network host \ --cap-add NET_RAW \ --cap-add NET_ADMIN \ -v /opt/castmux/config:/config \ -e CASTMUX_WEB_USERNAME=admin \ -e CASTMUX_WEB_PASSWORD=choose-something-better \ castmux/castmux:latestCada opción es imprescindible:
—network host
El multicast tiene que emitirse en la LAN real. En una red bridge de Docker los paquetes se generan perfectamente y luego no van a ninguna parte, porque el bridge es un segmento distinto de aquel en el que están los televisores. No hay ningún contador que lo muestre; simplemente parece que todo funciona y nadie recibe nada.
—cap-add NET_RAW
Permite la captura de paquetes. Castmux usa libpcap para dos cosas: detectar qué clientes se han unido realmente a un grupo, que es lo que controla la emisión bajo demanda, y medir el bitrate real que sale por la interfaz. Sin ello, ambas funciones quedan ciegas.
—cap-add NET_ADMIN
Permite inspeccionar y gestionar la ruta multicast. Castmux comprueba la tabla de rutas desde fuera del proceso de emisión, porque un flujo enviado a un destino sin ruta informa de éxito desde dentro.
-v /opt/castmux/config:/config
El único archivo YAML se encuentra aquí como /config/config.yaml. Monte un directorio del host (bind mount) en lugar de usar un volumen con nombre, para que, cuando no se pueda acceder a la interfaz web, siga pudiendo leer y editar la configuración con un editor de texto normal.
Inicie sesión
Section titled “Inicie sesión”Abra http://<appliance>:8080 en el navegador e inicie sesión con las credenciales que definió en el entorno. El puerto 8080 es el predeterminado y puede cambiarse con --port.
El pie de página debería mostrar una cadena de versión, valores de CPU y memoria, y tasas de red por interfaz. Si es así, el proceso está sano y puede empezar a añadir canales.
Añada su primer canal
Section titled “Añada su primer canal”En la página UDP channels, elija Add channel y rellene:
| Campo | Qué introducir en esta primera prueba |
|---|---|
| Name | Cualquier nombre reconocible. Se usa en la vista de registro y, con el motor pass-through, como nombre de servicio en el transport stream. |
| Source type | HLS. |
| Source URL | La URL que reprodujo en VLC. Una lista de reproducción maestra sirve. |
| Destination address | 239.10.0.1 |
| Destination port | 1234 |
| Engine | Deje el valor predeterminado, el motor pass-through. Si resulta que la fuente es fMP4/CMAF en lugar de segmentos MPEG-TS, cambie al motor de remultiplexado; consulte Motores de emisión. |
| Force always-on | Márquelo. Consulte la nota siguiente. |
Confirme que está realmente en el aire
Section titled “Confirme que está realmente en el aire”Guarde el canal y espere unos segundos. Un canal pass-through suele producir su primer paquete unos dos segundos después de iniciarse; el motor de remultiplexado tarda unos cuatro segundos y medio.
Compruebe el indicador de bitrate UDP
Section titled “Compruebe el indicador de bitrate UDP”En la tarjeta del canal, mire el indicador UDP bitrate. Debe ser distinto de cero.
Este es el indicador que importa, y merece la pena entender por qué. Las demás métricas —frecuencia de fotogramas, velocidad, bitrate de la fuente— proceden del propio motor informando sobre sí mismo. Un motor puede estar totalmente convencido de que está emitiendo sin que nada llegue a la red. El bitrate UDP se mide con libpcap en la propia interfaz: cuenta los paquetes que han salido de verdad. Es la única señal que no puede generar un proceso que le está mintiendo, y también la única que funciona igual con ambos motores.
Verifique en un cliente
Section titled “Verifique en un cliente”Desde una máquina en el mismo segmento que los televisores:
ffplay udp://@239.10.0.1:1234
# or, with VLCvlc udp://@239.10.0.1:1234La @ no es decorativa. Sin ella, el cliente intenta enviar al grupo en lugar de unirse a él, y no verá nada mientras el equipo parece perfectamente sano.
Vuelva a activar la emisión bajo demanda
Section titled “Vuelva a activar la emisión bajo demanda”Una vez confirmado que el canal funciona, edítelo y desmarque force always-on. El canal se detendrá poco después de que se vaya el último espectador y volverá a iniciarse cuando se una uno. Con el motor pass-through, cuente con la primera imagen unos dos segundos después de la unión.
Un televisor al que se le ha cambiado de canal no siempre anuncia su salida de inmediato, así que hay una breve espera antes de que Castmux detenga el flujo. Es intencionado: detener y reiniciar en cada cambio de canal sería peor para el espectador que mantenerlo unos segundos más de lo estrictamente necesario.
Una advertencia durante las pruebas: la vista previa del navegador cuenta como espectador. Un canal bajo demanda con una vista previa abierta seguirá activo, lo cual es práctico y, en ocasiones, confuso.
Siguientes pasos
Section titled “Siguientes pasos”Antes de añadir el resto de los canales, lea Requisitos. En un equipo pequeño, la capacidad está limitada por la memoria, y la memoria se agota de golpe, no de forma gradual.