🖥️ Guías Técnicas

Cómo Configurar un Servidor RTMP Propio: Nginx-RTMP, OvenMediaEngine y SRS

Montar tu propio servidor RTMP es un ejercicio valioso para entender cómo funciona el streaming por dentro. Acá te enseñamos las tres opciones más populares, con código real, seguridad y la honestidad de cuándo conviene dejarlo en manos de profesionales.

¿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

RecursoMínimoRecomendado
CPU2 vCPU4+ vCPU
RAM2 GB4-8 GB
Disco20 GB SSD100+ GB SSD
Ancho de banda100 Mbps1 Gbps
SOUbuntu 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 con sudo /usr/local/nginx/sbin/nginx y prueba enviando un stream desde OBS usando la URL rtmp://tu-ip/live y cualquier stream key.

Alternativas a Nginx-RTMP: OvenMediaEngine 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:

OvenMediaEngine (OME)

Servidor de streaming open-source de origen coreano, muy activo en desarrollo.

  • ✅ Soporta RTMP, SRT, WebRTC, RTSP de entrada
  • ✅ Salida en HLS, DASH, WebRTC (sub-segundo)
  • ✅ Transcoding integrado con GPU
  • ✅ Clustering para alta disponibilidad
  • ✅ API REST completa
  • ❌ Curva de aprendizaje moderada
  • ❌ Documentación mejorable

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ísticaNginx-RTMPOvenMediaEngineSRS
Ingesta RTMP
Ingesta SRTNo
WebRTCNo
TranscodingFFmpeg externoIntegradoFFmpeg externo
DificultadBajaMediaMedia
DockerComunidadOficialOficial
ComunidadGrandeMedianaGrande (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
🛡️ Comparación de seguridad: Con una plataforma gestionada como XtreamCast, la seguridad viene incluida: Domain Guard™, tokens JWT, geo-restricción, AES-256, y DDoS protection. Implementar todo esto por tu cuenta requiere semanas de configuración y mantenimiento constante.

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:

  1. Tu audiencia supera los 500 espectadores concurrentes y el servidor empieza a flaquear
  2. Necesitas CDN y configurar un CDN propio es más caro que un plan con CDN incluida
  3. Quieres restream a YouTube, Facebook, Twitch y la configuración de FFmpeg para cada uno es un dolor de cabeza
  4. La grabación automática consume todo tu disco y necesitas almacenamiento en la nube
  5. Un evento falló por un problema de infraestructura y perdiste dinero o credibilidad
  6. 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).

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, CDN global, grabación automática, restream y analytics. Sin preocuparte por la infraestructura. Prueba gratis 3 días.