Tutoriales

Cómo montar un server para transmitir por streaming paso a paso | XtreamCast

Desde tu OBS hasta tu primer viewer real, dos caminos paso a paso: el rápido y el largo. Con los errores que vas a cometer y cómo evitarlos.

Lo que necesitas antes de empezar (hardware, internet, encoder)

Antes de tocar configuraciones, vale la pena hacer una revisión rápida del equipamiento. Empezamos con esto porque el 41% de los problemas que vemos en primeras transmisiones no son del servidor — son del lado del cliente: PC débil, internet inestable, encoder mal elegido.

Hardware mínimo realista

Para una transmisión típica en 720p a 30 fps con OBS Studio:

  • CPU: Intel i5 de 8va generación o AMD Ryzen 5 3600 mínimo. Si vas a usar encoding por software (x264), apunta a un i7 / Ryzen 7.
  • RAM: 16 GB. Con 8 GB vas a sufrir si tienes navegador, Slack, Spotify y OBS abiertos.
  • GPU: opcional pero útil. Una NVIDIA RTX 3060 con NVENC reduce el uso de CPU al 12-18% sosteniendo 1080p60.
  • Almacenamiento: SSD obligatorio si vas a grabar localmente. Un HDD se queda corto con 50 Mbps de escritura sostenida.

Internet: la métrica que importa de verdad

Necesitas upload sostenido, no el "hasta 300 Mbps" del plan. Mide tu upload real en speedtest.net a las 8 pm de un viernes (peor escenario residencial). Lo que vemos seguido: el cliente contrató "fibra 200 megas" pero el upload simétrico real es de 12 Mbps, y eso fluctúa con la red de la casa.

Calidad targetBitrate videoUpload mínimo recomendado
360p 30fps800 kbps2 Mbps
720p 30fps2.500 kbps5 Mbps
720p 60fps4.500 kbps8 Mbps
1080p 30fps4.500 kbps8 Mbps
1080p 60fps6.000 kbps10 Mbps
1080p doble stream12.000 kbps20 Mbps
Honestamente: si tu upload es menor a 5 Mbps, ningún servidor te va a salvar de un buffering visible. Antes de gastar plata en servicio gestionado, considera contratar mejor internet.

Encoder: software o hardware

El encoder es el software o aparato que captura tu fuente, codifica el video y lo envía al server. Tus opciones:

  • OBS Studio: gratis, open source, comunidad enorme. El 73% de nuestros clientes nuevos en 2025 llegaron usando OBS.
  • vMix: pago (USD 60 a USD 1.200 según versión), más potente para producción multicámara con switching profesional.
  • Wirecast: pago (USD 599 una vez), opción tradicional en broadcasters pequeños.
  • Encoders de hardware: Teradek VidiU, AJA HELO, Magewell Ultra Stream. Útiles cuando no quieres depender de un PC.

Si recién partes, te recomendamos leer nuestra guía completa de OBS Studio antes de continuar.

Camino A: usar un server de streaming gestionado (5 min)

Si tu objetivo es estar transmitiendo hoy y no convertirte en sysadmin, este es el camino. Lo describimos genérico — funciona con XtreamCast, Dacast, Vimeo OTT, Restream o cualquier server gestionado serio.

Paso 1: contratar el plan

Elige un plan adecuado a tu audiencia estimada. Si esperas hasta 200 viewers concurrentes con 50 horas mensuales de transmisión, un plan de entrada (USD 49-89/mes) te alcanza. Si vas a 1.000+ viewers, busca un plan profesional.

Ver planes disponibles en XtreamCast como referencia.

Paso 2: obtener las credenciales de ingest

Tras contratar, recibirás dos datos clave:

  • Servidor RTMP (URL): algo como rtmp://ingest-bogota.xtreamcast.co/live
  • Stream Key (clave): una cadena tipo tu_evento_a3f7b91c

Estas dos cosas combinadas son la "dirección postal" hacia donde tu encoder va a enviar el stream. Mantén la stream key privada — si alguien la consigue, puede transmitir en tu cuenta.

Paso 3: configurar el encoder

En OBS Studio: Settings → Stream → Service: Custom. Pega Server y Stream Key. Apply. Eso es todo en el lado de encoder.

Paso 4: dar play

Click en "Start Streaming" en OBS. Tu stream debería aparecer en el panel de tu proveedor en 6 a 12 segundos. Si no aparece, ve a la sección de troubleshooting más abajo.

Paso 5: obtener URL de reproducción

El proveedor te entrega una URL HLS pública (algo como https://play.xtreamcast.co/tu-evento/index.m3u8) y opcionalmente un embed code iframe para tu sitio web. Pega el embed donde quieras y los viewers podrán ver.

PasoTiempo estimadoDificultad
Contratar plan2 minTrivial
Obtener credencialesInmediatoTrivial
Configurar encoder2 minBajo
Stream activo10 segTrivial
Embed en sitio3 minBajo
Total realista7-10 minApto para novatos

Más detalles del servicio en nuestro server RTMP y la página de server para live streaming.

Camino B: montar tu propio Nginx-RTMP (1-2 días)

El camino largo. Lo recomendamos para aprender o para casos muy específicos (audiencia interna, compliance, presupuesto cero con mucho tiempo disponible). Para producción seria, considera el camino A.

Paso 1: contratar un VPS

Mínimo razonable: Hetzner CX31 (USD 12.49/mes, 2 vCPU, 8 GB RAM, 80 GB SSD, 20 TB tráfico) o DigitalOcean Premium AMD (USD 28/mes, 2 vCPU, 4 GB RAM). Si esperas más de 100 viewers concurrentes en HLS, sube a 4 vCPU mínimo.

Ubicación: cerca de tu audiencia mayoritaria. Para LATAM, considera São Paulo, Miami o Santiago. Para España, Frankfurt o Madrid.

Paso 2: instalar Ubuntu y dependencias

# Ubuntu 24.04 LTS
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev unzip wget git ufw

Paso 3: compilar Nginx con 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
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

Paso 4: configurar Nginx para RTMP + HLS

# /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;
            hls on;
            hls_path /tmp/hls;
            hls_fragment 3;
            hls_playlist_length 60;
            # Autenticación básica
            on_publish http://127.0.0.1:8080/auth;
        }
    }
}

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 *;
        }
    }
}

Paso 5: configurar firewall

sudo ufw allow 22/tcp     # SSH
sudo ufw allow 1935/tcp   # RTMP ingesta
sudo ufw allow 8080/tcp   # HLS playback
sudo ufw allow 443/tcp    # HTTPS si vas a poner certificado
sudo ufw enable

Paso 6: arrancar Nginx y probar

sudo /usr/local/nginx/sbin/nginx
# Verificar que está corriendo
ps aux | grep nginx

Desde OBS, configura: Server rtmp://TU-IP-PUBLICA/live, Stream Key test123. Inicia stream. Después de 10-15 segundos, prueba reproducción abriendo http://TU-IP-PUBLICA:8080/hls/test123.m3u8 en VLC o un reproductor HLS.

Lo que falta para producción

Lo de arriba es funcional pero no es producción. Te falta: certificado SSL (Let's Encrypt), autenticación real, monitoreo, backups, log rotation, fail2ban contra ataques SSH, y rate limiting. Para todo esto, revisa nuestro artículo completo cómo configurar servidor RTMP propio.

Estimación honesta de tiempo: 4 a 8 horas para tener algo funcional. 1 a 2 días completos para tenerlo listo para producción con seguridad básica. 1 semana si nunca has administrado un Linux antes.

Configurar OBS Studio con tu URL y clave

OBS Studio es gratuito y funciona en Windows, macOS y Linux. La configuración correcta hace la diferencia entre un stream estable y uno que tartamudea.

Configuración de Stream

Settings → Stream:

  • Service: Custom
  • Server: tu URL RTMP (ej. rtmp://ingest-santiago.xtreamcast.co/live)
  • Stream Key: tu clave privada
  • Use authentication: solo si tu proveedor lo requiere explícitamente

Configuración de Output

Settings → Output → Output Mode: Advanced.

  • Encoder: NVENC H.264 si tienes GPU NVIDIA, x264 si no.
  • Rate Control: CBR (Constant Bitrate). Los servers RTMP funcionan mejor con bitrate constante.
  • Bitrate: 2.500 kbps para 720p30, 4.500 para 1080p30, 6.000 para 1080p60.
  • Keyframe Interval: 2 segundos (no 0 ni "auto"). Esto es crítico para que el HLS segmente bien.
  • Preset: Quality (NVENC) o "veryfast" (x264). "ultrafast" pierde demasiada calidad; "slow" sobrecarga el CPU.
  • Profile: high.
  • Tune: zerolatency si necesitas baja latencia, ninguno si priorizas calidad.

Configuración de Audio

Settings → Output → Audio:

  • Audio Bitrate: 128 kbps mínimo para voz, 192 para música, 320 para producción musical seria.
  • Sample Rate: Settings → Audio → 48 kHz (estándar broadcast).
  • Channels: Stereo si tienes audio estéreo real; Mono si es un solo micrófono (ahorra ancho de banda).

Configuración de Video

Settings → Video:

  • Base (Canvas) Resolution: la resolución de tu monitor (ej. 1920x1080).
  • Output (Scaled) Resolution: la resolución a la que vas a transmitir (ej. 1280x720 si tu plan es 720p).
  • Downscale Filter: Lanczos (mejor calidad) o Bicubic (más rápido).
  • Common FPS Values: 30 o 60. Evita 24 y 29.97 a menos que tengas razón específica.
SettingStream 720pStream 1080p
EncoderNVENC / x264 veryfastNVENC / x264 veryfast
Bitrate video2.500 kbps4.500 kbps
Bitrate audio128 kbps192 kbps
Keyframe interval2 segundos2 segundos
Output resolution1280x7201920x1080
FPS3030 o 60

Configurar vMix, Wirecast o un encoder de hardware

OBS no es la única opción. Para producción multicámara, switching de escenas con transiciones broadcast, instant replay o NDI, vMix y Wirecast son superiores. Y para setups sin PC dedicado, los encoders de hardware tienen sentido.

vMix

vMix es el favorito de productoras en LATAM por su balance precio/funcionalidad. Settings → Streaming → click en "+" para añadir destino:

  • Destination: Custom RTMP Server
  • URL: tu URL RTMP
  • Stream Name or Key: tu stream key
  • Quality: Custom. Configura bitrate similar a OBS (2.500 kbps para 720p).

vMix permite stream a hasta 3 destinos simultáneamente sin software adicional, útil para restream nativo a XtreamCast + YouTube + Facebook.

Wirecast

Telestream Wirecast (USD 599 una vez). Output → Output Settings → click en +:

  • Destination: RTMP Server
  • Address: URL RTMP
  • Stream: stream key
  • Encoding: selecciona perfil o crea uno custom

Encoders de hardware

Teradek VidiU Pro (USD 1.295), AJA HELO Plus (USD 1.795), Magewell Ultra Stream HDMI (USD 525). Ventaja: no dependes de un PC. Desventaja: precio alto y menos flexibilidad.

Configuración típica vía web admin del aparato:

  1. Conecta entrada HDMI o SDI desde tu cámara o switcher
  2. Accede al panel web del encoder (IP local)
  3. Configura output: RTMP Server URL + Stream Key
  4. Bitrate y resolución según tu plan
  5. Botón "Start Streaming" físico o vía web

Larix Broadcaster (móvil)

Si transmites desde celular, Larix Broadcaster (gratis Android, USD 4.99 iOS Pro) soporta RTMP y SRT. Configuración mínima: tap en conexiones → añadir nueva → URL + key. Hay clientes de XtreamCast que transmiten cultos desde Larix con un trípode y celular Android decente, audiencia de 80-180 viewers, sin más equipamiento.

Tip de campo: si vas a transmitir desde 4G/5G móvil, prefiere SRT a RTMP. SRT maneja mejor la pérdida de paquetes típica de redes móviles. La mayoría de encoders modernos lo soportan.

Para más sobre SRT, revisa nuestro comparativo SRT vs RTMP.

Cómo verificar que tu transmisión está saliendo bien

"Está streameando" no es lo mismo que "está saliendo bien". Hay diferencia entre que el encoder reporte conectado y que el viewer realmente reciba video sin problemas. Estos son los chequeos que hacemos antes de cualquier evento crítico.

Chequeo 1: el manifiesto HLS responde

curl -I https://play.xtreamcast.co/tu-evento/index.m3u8

# Esperado:
# HTTP/2 200
# content-type: application/vnd.apple.mpegurl
# cache-control: no-cache

Si te devuelve 404, el stream no llegó al origen. Si te devuelve 403, problema de autenticación o tokens. Si te devuelve 200 pero el manifiesto está vacío, problema de transcoder.

Chequeo 2: contenido del manifiesto

curl https://play.xtreamcast.co/tu-evento/index.m3u8

# Esperado (multi-bitrate):
# #EXTM3U
# #EXT-X-VERSION:6
# #EXT-X-STREAM-INF:BANDWIDTH=4500000,RESOLUTION=1920x1080
# 1080p/index.m3u8
# #EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720
# 720p/index.m3u8

Si solo ves una rendition cuando esperabas múltiples, tu transcoder no está generando ABR. Si ves todas pero los bitrates no son los que configuraste, verifica la config del transcoder.

Chequeo 3: ffprobe para validar el stream real

ffprobe -i https://play.xtreamcast.co/tu-evento/720p/index.m3u8 \
  -show_streams -loglevel quiet

# Verifica:
# - codec_name=h264 (no hevc inesperado)
# - width=1280, height=720
# - r_frame_rate=30/1
# - bit_rate cercano a tu configuración
# - codec_name=aac para audio

Chequeo 4: latencia glass-to-glass

Apunta tu cámara a un cronómetro digital corriendo. Mira en el reproductor del viewer. La diferencia entre el cronómetro real y el visto es tu latencia. Para HLS estándar, espera 15-25 segundos. Para LL-HLS, 2-5 segundos. Si es más alta, hay problema.

Chequeo 5: jugar con varios viewers simultáneos

Abre 5-10 pestañas con el stream. Si todas reproducen sin problema, el origen y el CDN responden. Si algunas se quedan en buffering, hay límite de conexiones o problema de CDN regional.

Chequeo 6: probar desde redes y dispositivos diversos

  • Wifi de la casa
  • 4G del celular (otra operadora idealmente)
  • Otro país si tienes amigo dispuesto a chequear (VPN sirve también)
  • iPhone Safari, Android Chrome, Desktop Firefox, Smart TV si aplica

Hace dos meses, un cliente que transmitía desde Santiago tenía todo perfecto en su MacBook pero los viewers en iPhone reportaban "no se ve". Resultó que el reproductor del sitio no estaba configurado para entregar HLS en iOS Safari correctamente. Se descubrió solo probando.

Errores comunes en la primera transmisión

Hemos visto los mismos problemas cientos de veces. Estos son los más frecuentes con su solución directa.

"OBS dice conectado pero no aparece nada en el reproductor"

Causa probable: Stream Key incorrecto o URL del server con typo. Solución: copia/pega de nuevo desde el panel del proveedor. Asegúrate que no hay espacios al inicio o final.

"Aparece pero con buffering constante"

Causa probable: bitrate de OBS más alto que tu upload real. Si tu upload es 5 Mbps y configuraste 6.000 kbps de video + 192 de audio, no cabe. Solución: baja bitrate a 70% de tu upload real (regla del pulgar). 5 Mbps upload → max 3.500 kbps video.

"El video se ve a saltos, los frames se quedan congelados"

Causa probable: CPU sobrecargado. Solución: baja preset de encoding (de "fast" a "veryfast"), cambia a NVENC si tienes GPU, cierra aplicaciones innecesarias, baja resolución.

"El audio se desincroniza progresivamente"

Causa probable: sample rate diferente entre OBS y la fuente de audio. Solución: en OBS Settings → Audio fija Sample Rate a 48 kHz y verifica que la interfaz de audio del sistema también esté en 48 kHz.

"Stream se cae a los 30-60 segundos repetidamente"

Causa probable: internet inestable o firewall/router bloqueando RTMP. Solución: prueba con cable Ethernet en vez de wifi. Si persiste, revisa que el puerto 1935 esté abierto en tu red.

"Funciona desde mi PC pero los viewers no ven"

Causa probable: tu CDN o servidor de playback no está distribuyendo. Solución: contacta soporte del proveedor con el URL que estás dándole a los viewers. Si es Nginx-RTMP propio, revisa que el puerto 8080 (o 443 si tienes SSL) esté accesible públicamente.

"En iPhone se ve, en Android no" (o viceversa)

Causa probable: reproductor mal configurado o problema de CORS. Solución: verifica que tu HLS tenga headers Access-Control-Allow-Origin: *. Prueba el m3u8 en un reproductor estándar (hls.js, video.js) antes de culpar al dispositivo.

"YouTube/Facebook restream no funciona"

Causa probable: stream key de YouTube/Facebook caducado o cuenta sin permisos. Solución: regenera la stream key desde YouTube Studio o Facebook Creator Studio. Verifica que tu cuenta tenga habilitado streaming en vivo (Facebook a veces lo desactiva).

SíntomaPrimera cosa a revisar
No conectaStream key + URL del server
BufferingBitrate vs upload real
Frames saltadosCPU usage en OBS Stats
Audio desyncSample rate consistente
Caídas intermitentesInternet estable + puerto 1935
Viewers no venURL playback funciona en ffprobe

Cuándo escalar: señales de que tu setup actual ya no aguanta

Si llevas un tiempo transmitiendo y notas que las cosas empezaron a tambalear, no es tu imaginación. Estas son las señales claras de que tu setup actual ya no escala.

Señal 1: caídas durante eventos importantes

Si en los últimos 3 meses tuviste 2 o más caídas durante transmisiones críticas, estás en zona roja. Una caída es mala suerte. Dos es patrón.

Señal 2: viewers reportando buffering desde regiones específicas

Si los viewers de tu región principal ven bien pero los de otras ciudades o países reportan problemas, te falta CDN regional. Esto se intensifica cuando tu audiencia se internacionaliza.

Señal 3: dedicas más tiempo al server que al contenido

Si pasas 4+ horas semanales en mantenimiento, troubleshooting y configuraciones, tu costo real ya superó cualquier plan gestionado decente. Tu tiempo vale más.

Señal 4: tu audiencia creció pero no puedes escalar transcoding

Empezaste con 50 viewers, ahora tienes 400. El VPS no aguanta generar ABR para 5 renditions con esa concurrencia. Subir el VPS te resuelve un mes, dos meses, y vuelves a chocar techo.

Señal 5: necesitas funciones que no tienes

DVR para que el viewer rebobine, paywall para monetizar, geo-bloqueo por licencias, analytics en tiempo real, restream a 5 redes simultáneas, reproductor whitelabel embebido... Cada una de estas funciones puedes construirla, pero el costo de desarrollo y mantenimiento supera rápidamente el costo de un plan gestionado.

Señal 6: tu organización profesionalizó otras áreas

Si tu iglesia, productora o canal contrató community manager profesional, diseñador, etc., el streaming también merece la profesionalización. Es la cara pública del contenido.

Tabla de decisión rápida

SituaciónRecomendación
1-50 viewers, casual, 1 vez al mesOBS + YouTube/Facebook directo
50-200 viewers, recurrente, alguna seriedadPlan gestionado entry-level
200-1.000 viewers, semanal/diarioPlan gestionado profesional
1.000+ viewers, eventos importantesPlan enterprise + soporte dedicado
Broadcast 24/7Contrato custom con SLA específico

Cómo migrar sin dolor

Si decides migrar, lo más sencillo es correr en paralelo 2-4 semanas: mantén tu setup actual y agrega un dual ingest hacia el proveedor nuevo. Compara estabilidad real con tu propia data, no con promesas. Después de tener confianza, cambia el endpoint principal.

Si necesitas que te ayudemos con la migración, puedes contactarnos. Hemos migrado 340+ clientes desde Nginx-RTMP, Wowza, Antmedia y otros, y la mayoría toma menos de un día sin downtime. Empieza por revisar qué es un server de streaming y los planes disponibles.

Nota final: el mejor momento para escalar tu infraestructura es antes de necesitarlo. El segundo mejor momento es ahora. El peor es 24 horas antes del evento más importante del año, que es cuando nos llaman normalmente.

Para profundizar en aspectos técnicos relacionados, revisa nuestros artículos sobre H.264 vs H.265, CDN para streaming de video y cómo reducir latencia en streaming.