# Configuración de transmisión en vivo AWS y OBS Cree un flujo de trabajo en vivo AWS, configure OBS, pruebe la reproducción DRM y detenga los recursos después de su evento. El vídeo cifrado y las licencias DRM se entregan por rutas distintas La CDN entrega el vídeo cifrado. Su backend comprueba el acceso y el servicio de licencias DRM autoriza el descifrado en un dispositivo compatible. - 01**Almacenamiento / CDN** Entrega el contenido cifrado al reproductor. - 02**Su backend** Comprueba si el espectador tiene permiso y solicita la autorización de reproducción a DRM-X. - 03**DRM-X** Valida la autorización de reproducción y procesa la solicitud de licencia DRM. - 04**Reproductor + dispositivo** Utiliza el sistema DRM del dispositivo para obtener una licencia y reproducir el contenido cifrado. Su backend decide el acceso; DRM-X aplica la política firmada. Los medios cifrados y las licencias DRM siguen caminos de entrega separados. Trial y las cuentas pagas pueden crear canales en vivo DRM. No se requiere una conexión de almacenamiento S3 para este flujo de trabajo. AWS cobra por separado la codificación, el empaquetado, la entrega y los recursos retenidos de los medios. La ruta de entrega es OBS → AWS Elemental MediaLive → MediaPackage v2 → CloudFront → el reproductor DRM-X. DRM-X proporciona claves de cifrado a través de SPEKE y autoriza a cada espectador con un DRM License Token. ## Crear un evento en vivo en DRM-X[#](#create-a-live-event) - Inicie sesión en la consola del cliente y seleccione la organización y el entorno que serán propietarios del evento. - Abrir **Live events → New Live Channel**. Introduzca un título. Para una cuenta nueva, elija **Create new live content** e ingrese un Content ID único. Alternativamente, seleccione contenido en vivo existente. - Elija la región AWS, el intervalo de rotación y la ventana DVR. Utilice la misma región AWS para MediaLive, MediaPackage y el puente SPEKE. Los valores iniciales son 600 segundos para rotación y 7200 segundos para medios retenidos de DVR. - Crear el canal. Guarde de forma segura su secreto de origen único, junto con la integración ID y los ID de recursos DASH y HLS separados. Nunca coloques el secreto en un reproductor, captura de pantalla, ticket de soporte o repositorio público. El canal DRM-X configura el contenido y la autorización. Iniciar el DRM-X Live Run e iniciar el codificador AWS son operaciones independientes. ## Configura tu cuenta AWS[#](#configure-aws) - Utilice una cuenta AWS con facturación habilitada y un operador autorizado que pueda administrar los roles de servicio CloudFormation, MediaLive, MediaPackage v2, API Gateway, IAM y CloudFront. Consulte las cuotas regionales y los precios actuales antes de su ensayo. - Descargue la plantilla [DRM-X AWS CloudFormation](https://6.drm-x.com/downloads/drmx-live-aws.yaml) desde la consola. Cree la pila con `CreateMediaResources=false`, los ID de integración/recursos DRM-X y el secreto de origen. La plantilla crea roles de servicio con alcance y un puente SPEKE autorizado. - En DRM-X **Configure AWS**, ingresa tu cuenta AWS ID y la pila exacta `SpekeRoleArn`. Inicie el DRM-X Live Run para que las solicitudes de claves autenticadas puedan tener éxito. - Actualice la misma pila con `CreateMediaResources=true`. Mantenga el secreto existente y otros parámetros. Espere a que se complete la pila. - Copie las salidas de la pila `DashOriginUrl`, `HlsOriginUrl`, `DashCloudFrontUrl` y `HlsCloudFrontUrl` en los campos DRM-X coincidentes. Los espectadores utilizan las CloudFront URL. El origen permanece restringido a CloudFront. - Cree una entrada **RTMP push** en MediaLive. Permita únicamente la IP pública actual del emisor mediante una regla de seguridad de entrada `/32`. Si el proveedor de Internet cambia esa IP, actualice la regla. - Cree el canal MediaLive con el `MediaLiveRoleArn` de la pila, adjunte la entrada y agregue un grupo de salida **MediaPackage v2 CMAF** usando el grupo de canales de la pila y el nombre del canal. Una sola tubería es adecuada para una prueba limitada; un evento de producción necesita un diseño de redundancia apropiado. La plantilla genera DASH-CENC para Widevine y PlayReady, y HLS-CBCS para FairPlay. Sus contratos `PRESET_AUDIO_1` y `PRESET_VIDEO_3` asignan claves distintas a audio, SD, HD y UHD. Las instalaciones existentes que usan `PRESET_VIDEO_2` deben revisar una actualización del contrato de cifrado antes de añadir UHD con una política diferente. Consulte los [ajustes de cifrado de AWS](https://docs.aws.amazon.com/mediapackage/latest/userguide/drm-content-speke-v2-presets.html). ## Configurar OBS Studio para 4K[#](#configure-obs-for-4k) - Duplica tu perfil OBS y tu colección de escenas. Dales un nombre de evento en vivo reconocible. - Agregue el video deseado o la fuente de captura. Confirme que en realidad sea 3840 × 2160, ajústelo al lienzo y verifique su audio. Para un archivo de ensayo, habilite Loop. Oculte capturas de ventanas o escritorios no utilizados. - En **Settings → Video**, configure el lienzo y la resolución de salida en `3840x2160` y elija `30` fps para este ejemplo. - En **Output → Advanced → Streaming**, elija un codificador de hardware H.264 compatible, como NVIDIA NVENC H.264. Utilice CBR `18000 Kbps`, un intervalo de fotograma clave de `2 s`, high profile y deshabilite el cambio de escala de salida. Con NVENC, P5 y Alta Calidad son un punto de partida; Verifique la carga de codificación durante el ensayo. - Utilice audio AAC y estéreo de 48 kHz. Desactive las fuentes de audio de escritorio y micrófono no deseadas. - En **Stream**, seleccione Custom. Divida la entrada MediaLive RTMP URL en el servidor/aplicación URL y su componente de nombre de secuencia final. Coloque el componente final en Stream Key. Mantenlo enmascarado. Utilice una conexión de carga estable con margen superior a la tasa de bits combinada de video y audio. Si OBS informa caídas sostenidas de red o codificación, corríjalas antes de abrir el evento a los espectadores. Consulte [OBS guía de codificación de hardware](https://obsproject.com/kb/hardware-encoding). ## Configurar salidas adaptativas[#](#configure-4k-adaptive-outputs) Para los ajustes OBS anteriores, use una especificación de entrada AVC/UHD en MediaLive con un máximo de 20 Mbps. Cree las siguientes salidas H.264 a 30 fps, con GOP cerrados de 2 segundos y segmentos CMAF alineados de 6 segundos. Mantenga el audio AAC en una representación independiente. | Resolución | Ejemplo de tasa de bits de video | Grupo de claves | | --- | --- | --- | | 3840×2160 | 16 Mbps | UHD | | 1920×1080 | 5 Mbps | HD | | 1280×720 | 2.5 Mbps | HD | | 854×480 | 1.2 Mbps | SD | | 640×360 | 0.7 Mbps | SD | Estos son escenarios de ensayo, no una garantía de calidad. Un canal 4K aún necesita representaciones más bajas para pantallas más pequeñas, redes restringidas y dispositivos cuyo nivel de seguridad DRM limita la calidad. Verifique el soporte de resolución y códec [MediaLive actual](https://docs.aws.amazon.com/medialive/latest/ug/eml-limitations-and-rules.html) al elegir un codificador diferente. ## Reutilización de un canal después de un evento anterior[#](#reuse-channel-history) Un codificador en ejecución no demuestra que los espectadores reciban contenido actualizado. Revise el encabezado manifest-last-updated de MediaPackage y las resoluciones anunciadas. Si un canal reutilizado sigue sirviendo segmentos antiguos después de cambiar el codificador o las representaciones, siga el [procedimiento de AWS para restablecer el historial del canal](https://docs.aws.amazon.com/mediapackage/latest/userguide/channel-reset.html). - Confirme que el contenido DVR anterior se puede eliminar permanentemente; un reinicio no es una operación de reversión. - Parada OBS y el canal MediaLive. Espere hasta que MediaLive esté inactivo. - En MediaPackage, restablecer el historial del canal de prueba específico. Espere al menos 30 segundos después de que se complete el reinicio. - Inicie MediaLive, espere al estado Running y después inicie OBS. Vuelva a comprobar los medios DASH/HLS actualizados, el intercambio SPEKE y la reproducción en los dispositivos. ## Agregar el evento a PHP, Android y iOS[#](#test-web-android-ios) Utilice el mismo Content ID en vivo y el mismo entorno en todos los ejemplos. Mantenga Site Key y Access Key en su servidor PHP. El evento de muestra organizado es `aws-live-test-20260902`, titulado **4K Live DRM Test**; sólo está disponible mientras se realiza un ensayo. En PHP, agregue una entrada de lista de reproducción confiable con `id`, `title` y `type: live`. Inicie sesión nuevamente para actualizar los derechos de sesión de la muestra. El backend resuelve el manifiesto en vivo registrado y rechaza un tipo proporcionado por el cliente que no coincide con el catálogo. ``` 'playlist' => [ ['id' => 'your-live-content-id', 'title' => 'My live event', 'type' => 'live'], ], ``` En Android, agregue `DrmXPlaylistItem("your-live-content-id", "My live event", "live")` y pase su tipo de contenido al preparar la reproducción. En el ejemplo de Apple, utilice `DrmXPlaylistItem(contentId: "your-live-content-id", title: "My live event", contentType: .live)`. Las entradas en vivo son para transmisión y no deben ingresar a la cola de descarga sin conexión. ## Iniciar, verificar y detener[#](#start-and-stop-the-broadcast) - Inicie el DRM-X Live Run y después el canal AWS MediaLive. Espere a que MediaLive indique Running. - Iniciar transmisión en OBS. Verifique su tasa de bits, fotogramas eliminados, audio y carga del codificador. - Confirme que los manifiestos DASH/HLS se actualizan e incluyen las representaciones y señales DRM esperadas. Compruebe la imagen decodificada y el audio en un navegador, Android con Widevine e iPhone con FairPlay. Mantenga un reproductor conectado durante al menos una rotación de claves y después pruebe la entrada de un espectador nuevo. - Al terminar la prueba, detenga la emisión OBS, el canal MediaLive y el DRM-X Live Run. Confirme que MediaLive vuelve al estado Idle. Detener únicamente OBS no detiene los costes del codificador AWS. Revise por separado los costes de las entradas conservadas, el empaquetado/almacenamiento, las solicitudes y la distribución. Consulte los [precios de MediaLive](https://aws.amazon.com/medialive/pricing/) y la consola de facturación de AWS. ## Ensayo verificado: 17 de septiembre de 2026[#](#verified-rehearsal) El canal entregó vídeo cifrado en 3840×2160 y representaciones adaptativas de menor resolución. Un iPhone físico decodificó 4K y superó seis minutos de reproducción atravesando un límite del intervalo de rotación de claves de 600 segundos. dispositivo Samsung Android superó diez minutos a 1080p, su límite de pantalla declarado. Ambos dispositivos superaron una nueva conexión después de la rotación. Los resultados se limitan a los dispositivos, códecs y políticas probados. Utilice Android SDK **1.0.0-preview.13** o posterior para manifiestos en vivo sin caché. Actualice la aplicación de evaluación [Android](https://docs.drm-x.com/downloads/android/1.0.0-preview.13/drmx-android-player-1.0.0-preview.13.apk) existente para conservar los videos descargados. La muestra actualizada de Apple conserva las claves ID y IV mientras compacta los metadatos de MediaPackage para ajustarse al límite de identificador de 200 bytes SPC de FairPlay. Su preferencia de resolución proporciona tanto el ancho como el alto para que la reproducción adaptativa pueda alcanzar 4K. ### Safari reproducción en vivo Utilice Web SDK 1.2.0-preview.13 o posterior para Safari. Selecciona el Apple Media Keys nativo cuando está disponible en macOS, iOS y iPadOS, y mantiene ese API en los cambios en vivo y VOD de la lista de reproducción. La reproducción en vivo no vuelve a MSE/SINF, lo que puede solicitar claves de segmento de inicialización obsoletas después de que MediaPackage rota sus claves. Mantenga la clave actual exacta ID y IV en la señalización HLS. DRM-X SPEKE emite un identificador de activo compacto en formato KeyId/IV para que Safari solicite licencias FairPlay dentro del límite de tamaño del identificador. El DRM License Token sigue autorizando el contenido y la clave exactos. Tras actualizar Key Service, compruebe que su gateway SPEKE dependiente esté en funcionamiento; aunque reciba vídeo, el codificador no puede publicar contenido protegido nuevo si la entrega de claves no está disponible. Un ensayo independiente de 15 minutos en Safari confirmó que la reproducción avanzaba durante una rotación de claves en Mac y iPhone. El iPhone utilizó Apple Media Keys nativo. El Mac utilizó EME moderno para comprobar la rotación y después superó una nueva conexión con Apple Media Keys nativo tras un error intermitente al iniciar EME moderno. La adaptación del navegador alcanzó 720p en Mac y 480p en iPhone. Esto no valida la reproducción 4K en el navegador ni la rotación en la ruta de compatibilidad final del Mac. El resultado 4K de la aplicación nativa corresponde a otra prueba. ### Antes de reiniciar un ensayo - Verifique que el punto final SPEKE sea accesible y que la consola muestre un intercambio reciente. Un codificador que recibe una entrada aún puede servir medios obsoletos cuando falla la entrega de claves. - Mantenga los cachés de medios VOD/sin conexión separados de la fuente del manifiesto en vivo. - Verifique las dimensiones reales decodificadas; La selección de un canal 4K por sí sola no garantiza la reproducción 4K. - Este ensayo está detenido. Antes de volver a probar la entrada del catálogo en directo, inicie un DRM-X Live Run autorizado, el codificador AWS y la emisión OBS.