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 target | Bitrate video | Upload mínimo recomendado |
|---|---|---|
| 360p 30fps | 800 kbps | 2 Mbps |
| 720p 30fps | 2.500 kbps | 5 Mbps |
| 720p 60fps | 4.500 kbps | 8 Mbps |
| 1080p 30fps | 4.500 kbps | 8 Mbps |
| 1080p 60fps | 6.000 kbps | 10 Mbps |
| 1080p doble stream | 12.000 kbps | 20 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.
| Paso | Tiempo estimado | Dificultad |
|---|---|---|
| Contratar plan | 2 min | Trivial |
| Obtener credenciales | Inmediato | Trivial |
| Configurar encoder | 2 min | Bajo |
| Stream activo | 10 seg | Trivial |
| Embed en sitio | 3 min | Bajo |
| Total realista | 7-10 min | Apto 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.
| Setting | Stream 720p | Stream 1080p |
|---|---|---|
| Encoder | NVENC / x264 veryfast | NVENC / x264 veryfast |
| Bitrate video | 2.500 kbps | 4.500 kbps |
| Bitrate audio | 128 kbps | 192 kbps |
| Keyframe interval | 2 segundos | 2 segundos |
| Output resolution | 1280x720 | 1920x1080 |
| FPS | 30 | 30 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:
- Conecta entrada HDMI o SDI desde tu cámara o switcher
- Accede al panel web del encoder (IP local)
- Configura output: RTMP Server URL + Stream Key
- Bitrate y resolución según tu plan
- 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íntoma | Primera cosa a revisar |
|---|---|
| No conecta | Stream key + URL del server |
| Buffering | Bitrate vs upload real |
| Frames saltados | CPU usage en OBS Stats |
| Audio desync | Sample rate consistente |
| Caídas intermitentes | Internet estable + puerto 1935 |
| Viewers no ven | URL 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ón | Recomendación |
|---|---|
| 1-50 viewers, casual, 1 vez al mes | OBS + YouTube/Facebook directo |
| 50-200 viewers, recurrente, alguna seriedad | Plan gestionado entry-level |
| 200-1.000 viewers, semanal/diario | Plan gestionado profesional |
| 1.000+ viewers, eventos importantes | Plan enterprise + soporte dedicado |
| Broadcast 24/7 | Contrato 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.