¿Por qué querrías un servidor RTMP propio?
Antes de entrar en configuraciones y comandos, vale la pena preguntarse: ¿realmente necesitas un servidor RTMP propio? La respuesta depende de tu situación.
Casos donde tiene sentido tener tu propio servidor
- Control total: Necesitas que tu stream pase por tu propia infraestructura por políticas de seguridad o compliance
- Red interna: Transmisiones corporativas que no deben salir a internet público
- Testing y desarrollo: Estás desarrollando una app y necesitas un servidor de pruebas
- Aprender: Quieres entender cómo funciona el protocolo RTMP desde dentro
Casos donde es mejor usar una plataforma gestionada
- Audiencias grandes (+500 viewers): La CDN y el escalamiento son complejos de manejar por tu cuenta
- ⏰ No tienes equipo DevOps: Un servidor sin mantenimiento es un servidor vulnerable
- ROI: El costo de un VPS + CDN + monitoreo + mantenimiento suele ser mayor que el de un servicio gestionado
- Restream: Retransmitir a múltiples plataformas requiere configuración adicional significativa
Realidad: Montar un servidor RTMP que funcione para pruebas es fácil. Montar uno que sea estable, seguro y escalable para producción es un trabajo de ingeniería serio. Si tu negocio depende del streaming, considera una plataforma profesional y enfoca tus recursos en crear contenido.
Servidor RTMP con Nginx: instalación paso a paso
La forma más popular y económica de montar un servidor RTMP es usando Nginx con el módulo RTMP. Es open-source, ligero y funciona en cualquier Linux.
Requisitos del servidor
| Recurso | Mínimo | Recomendado |
|---|---|---|
| CPU | 2 vCPU | 4+ vCPU |
| RAM | 2 GB | 4-8 GB |
| Disco | 20 GB SSD | 100+ GB SSD |
| Ancho de banda | 100 Mbps | 1 Gbps |
| SO | Ubuntu 22.04+ | Ubuntu 24.04 LTS |
Instalación en Ubuntu
# Actualizar sistema
sudo apt update && sudo apt upgrade -y
# Instalar dependencias
sudo apt install -y build-essential libpcre3 libpcre3-dev \
libssl-dev zlib1g-dev unzip
# Descargar Nginx y módulo RTMP
cd /tmp
wget http://nginx.org/download/nginx-1.26.2.tar.gz
git clone https://github.com/arut/nginx-rtmp-module.git
# Compilar Nginx con módulo RTMP
tar -xzf nginx-1.26.2.tar.gz
cd nginx-1.26.2
./configure --with-http_ssl_module \
--add-module=../nginx-rtmp-module
make -j$(nproc)
sudo make install
Configuración básica de Nginx RTMP
# /usr/local/nginx/conf/nginx.conf
worker_processes auto;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
# Generar HLS
hls on;
hls_path /tmp/hls;
hls_fragment 3;
hls_playlist_length 60;
}
}
}
http {
server {
listen 8080;
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
}
}
Tip: Después de configurar, inicia Nginx consudo /usr/local/nginx/sbin/nginxy prueba enviando un stream desde OBS usando la URLrtmp://tu-ip/livey cualquier stream key.
Alternativas a Nginx-RTMP: MediaMTX y SRS
Nginx-RTMP es el clásico, pero tiene limitaciones: no soporta SRT, WebRTC es complicado de añadir, y no tiene panel de gestión. Estas son las alternativas modernas más interesantes:
MediaMTX
Servidor de streaming open-source escrito en Go, distribuido como un único ejecutable y muy activo en desarrollo.
- Soporta RTMP, SRT, RTSP y WebRTC (WHIP) de entrada
- Salida en HLS (incluido LL-HLS), WebRTC (WHEP), SRT y RTSP
- Un solo binario, sin dependencias externas
- Imagen Docker oficial
- Sin transcoding integrado (requiere FFmpeg externo)
- Sin panel de gestión: todo se configura en un archivo YAML
SRS (Simple Realtime Server)
Originalmente desarrollado en China, es probablemente el servidor de streaming open-source más potente:
- RTMP, HLS, HTTP-FLV, SRT, WebRTC
- Docker oficial optimizado
- Excelente rendimiento (10,000+ conexiones concurrentes)
- Edge server para clustering CDN
- Comunidad principalmente en chino
- Sin transcoding nativo (requiere FFmpeg externo)
Comparativa rápida
| Característica | Nginx-RTMP | MediaMTX | SRS |
|---|---|---|---|
| Ingesta RTMP | Sí | Sí | Sí |
| Ingesta SRT | No | Sí | Sí |
| WebRTC | No | Sí | Sí |
| Transcoding | FFmpeg externo | FFmpeg externo | FFmpeg externo |
| Dificultad | Baja | Baja | Media |
| Docker | Comunidad | Oficial | Oficial |
| Comunidad | Grande | Mediana | Grande (Asia) |
Seguridad de tu servidor RTMP: lo que no puedes ignorar
Un servidor RTMP abierto a internet sin protección es una invitación a problemas. Estos son los puntos críticos de seguridad:
Autenticación de streams
Sin autenticación, cualquiera que conozca tu IP puede empezar a transmitir a tu servidor. Implementa al menos uno de estos métodos:
- Stream key secreta: Solo quien conozca la clave puede transmitir
- Callback HTTP: Nginx verifica la clave contra tu API antes de aceptar el stream
- IP whitelist: Solo acepta conexiones desde IPs conocidas
Protección de la señal de salida
- Tokens temporales: URLs firmadas que expiran después de X minutos
- CORS restrictivo: Solo permite reproducción desde tu dominio
- HTTPS obligatorio: Nunca distribuyas HLS sin TLS en producción
Hardening del servidor
- Firewall (UFW): Solo abre puertos 1935 (RTMP), 443 (HTTPS), 22 (SSH)
- SSH con llaves: Desactiva login por contraseña
- Actualizaciones automáticas: Mantén el sistema al día
- Fail2ban: Protección contra brute-force
- Monitoreo: Alerta si el servidor cae o el CPU se dispara
Acceso en XtreamCast: SecureToken protege la URL del stream en HLS, LL-HLS, WebRTC y SRT, el geobloqueo limita los países que pueden reproducir y ShieldPower deja el player embebido solo en tus dominios. La venta de entradas, el inicio de sesión o el SSO de tu audiencia viven en tu propia plataforma, que embebe el player.
Cuándo es hora de migrar de DIY a una plataforma profesional
No tiene nada de malo empezar con un servidor propio. Pero hay señales claras de que ya es hora de considerar una plataforma gestionada:
- Tu audiencia supera los 500 espectadores concurrentes y el servidor empieza a flaquear
- Necesitas CDN y montar y operar una CDN propia cuesta más que activarla como adicional en un servicio gestionado
- Quieres restream a YouTube, Facebook, Twitch y la configuración de FFmpeg para cada uno es un dolor de cabeza
- La grabación automática consume todo tu disco y necesitas almacenamiento en la nube
- Un evento falló por un problema de infraestructura y perdiste dinero o credibilidad
- Pasas más tiempo manteniendo el servidor que creando contenido
El costo real de un servidor DIY no es solo el VPS. Es tu tiempo, el riesgo de fallos, la falta de CDN, la ausencia de soporte y las funciones que nunca implementarás (grabación, restream, analytics, publicidad, edición en navegador).
Si lo que buscas es un servidor RTMP gratis para empezar sin instalar nada, el servidor de streaming de video gratis de XtreamCast te entrega ingesta RTMP y SRT, player para tu web y un restream a redes sociales, con hasta 10 espectadores simultáneos, sin tarjeta de crédito y sin fecha de término. Cuando el canal crece pasas a un plan de pago y el enlace de tu player sigue siendo el mismo.
Migración fácil: Si ya tienes un servidor RTMP propio y quieres migrar a XtreamCast, el cambio es simple: solo necesitas cambiar la URL RTMP en tu encoder (OBS, Wirecast, vMix). La señal llega a nuestro servidor y nosotros nos encargamos del resto: CDN, grabación, restream, analytics.
¿Cansado de mantener tu propio servidor?
XtreamCast te da servidor RTMP profesional con entrega HLS incluida, grabación automática, restream y analytics, y CDN Global disponible como addon. Sin preocuparte por la infraestructura. Comienza con nuestro plan gratis y pasa a un plan de pago cuando necesites estas funciones.