# Configuration du direct avec AWS et OBS Créez un flux de travail en direct AWS, configurez OBS, testez la lecture DRM et arrêtez les ressources après votre événement. La vidéo chiffrée et les licences DRM suivent des chemins distincts Le CDN distribue la vidéo chiffrée. Votre backend vérifie l’accès, et le service de licences DRM autorise le déchiffrement sur un appareil compatible. - 01**Stockage / CDN** Distribue les médias chiffrés au lecteur. - 02**Votre backend** Vérifie le droit de visionnage et demande l’autorisation de lecture à DRM-X. - 03**DRM-X** Valide l’autorisation de lecture et traite la demande de licence DRM. - 04**Lecteur + appareil** Utilise le système DRM de l’appareil pour obtenir une licence et lire les médias chiffrés. Votre moteur décide de l'accès; DRM-X applique la politique signée. Les licences de médias chiffrés et DRM suivent des chemins de livraison séparés. Les comptes Trial et payants peuvent créer des chaînes Live DRM. Une connexion de stockage S3 n'est pas requise pour ce flux de travail. AWS facture séparément l'encodage des médias, l'packaging, la diffusion et les ressources conservées. Le chemin de diffusion est OBS → AWS Elemental MediaLive → MediaPackage v2 → CloudFront → lecteur DRM-X. DRM-X fournit les clés via SPEKE et autorise chaque spectateur avec un DRM License Token. ## Créer un événement en direct dans DRM-X[#](#create-a-live-event) - Connectez-vous à la console client et sélectionnez l'organisation et l'environnement qui seront propriétaires de l'événement. - Ouvrez le **Live events → New Live Channel**. Entrez un titre. Pour un nouveau compte, choisissez **Create new live content** et saisissez un Content ID unique. Vous pouvez également sélectionner le contenu en direct existant. - Choisissez la région AWS, l'intervalle de rotation et la fenêtre DVR. Utilisez la même région AWS pour MediaLive, MediaPackage et le pont SPEKE. Les valeurs de départ sont de 600 secondes pour la rotation et de 7 200 secondes pour les médias DVR conservés. - Créez le canal. Enregistrez en toute sécurité son secret d'origine unique, ainsi que l'intégration ID et les ID de ressources DASH et HLS séparés. Ne mettez jamais le secret dans un lecteur, une capture d'écran, un ticket d'assistance ou un référentiel public. Le canal DRM-X est une configuration de contenu et d'autorisation. Le démarrage d'un DRM-X Live Run et le démarrage de l'encodeur AWS sont des opérations distinctes. ## Configurez votre compte AWS[#](#configure-aws) - Utilisez un compte AWS avec la facturation activée et un opérateur autorisé qui peut gérer les rôles de service CloudFormation, MediaLive, MediaPackage v2, API Gateway, IAM et CloudFront. Vérifiez les quotas régionaux et les prix actuels avant votre répétition. - Téléchargez le [modèle DRM-X AWS CloudFormation](https://6.drm-x.com/downloads/drmx-live-aws.yaml) depuis Console. Créez la Stack avec `CreateMediaResources=false`, les identifiants d’intégration/ressource DRM-X et le secret d’origine. Le modèle crée des rôles de service à droits limités et un pont SPEKE autorisé par IAM. - Dans DRM-X **Configure AWS**, entrez votre compte AWS ID et le `SpekeRoleArn` exact de la pile. Démarrez les DRM-X Live Run pour que les demandes de clés authentifiées puissent aboutir. - Mettez à jour la même pile avec `CreateMediaResources=true`. Conservez le secret existant et les autres paramètres. Attendez que la pile soit terminée. - Copiez les sorties de pile `DashOriginUrl`, `HlsOriginUrl`, `DashCloudFrontUrl` et `HlsCloudFrontUrl` dans les champs DRM-X correspondants. Les téléspectateurs utilisent les URL CloudFront. L'origine reste limitée à CloudFront. - Créez une entrée MediaLive **RTMP push**. Autorisez uniquement l’adresse IP publique actuelle de l’émetteur avec une règle de sécurité `/32`. Si le fournisseur Internet change cette adresse IP, mettez la règle à jour. - Créez le canal MediaLive avec le `MediaLiveRoleArn` de la pile, attachez l'entrée et ajoutez un groupe de sortie **MediaPackage v2 CMAF** en utilisant le groupe de canaux et le nom du canal de la pile. Un seul pipeline convient à un test limité ; un événement de production nécessite une conception de redondance appropriée. Le modèle produit DASH-CENC pour Widevine et PlayReady, et HLS-CBCS pour FairPlay. Les contrats `PRESET_AUDIO_1` et `PRESET_VIDEO_3` séparent les clés audio, SD, HD et UHD. Si votre installation utilise `PRESET_VIDEO_2`, examinez la modification du contrat de chiffrement avant d’ajouter UHD avec une règle distincte. Voir les [préréglages de chiffrement AWS](https://docs.aws.amazon.com/mediapackage/latest/userguide/drm-content-speke-v2-presets.html). ## Configurez OBS Studio pour 4K[#](#configure-obs-for-4k) - Dupliquez votre profil OBS et votre collection de scènes. Donnez-leur un nom d'événement en direct reconnaissable. - Ajoutez la vidéo ou la source de capture souhaitée. Confirmez qu'il s'agit bien de 3840 × 2160, adaptez-le au canevas et vérifiez son audio. Pour un fichier de répétition, activez Loop. Masquez les captures de fenêtre ou de bureau inutilisées. - Dans **Settings → Video**, réglez le canevas et la sortie sur `3840x2160`, puis choisissez `30` fps pour cet exemple. - Dans **Output → Advanced → Streaming**, choisissez un encodeur matériel H.264 pris en charge, tel que NVIDIA NVENC H.264. Utilisez CBR `18000 Kbps`, un intervalle d'images clés `2 s`, un profil élevé et désactivez la redimensionnement de la sortie. Avec NVENC, P5 et High Quality sont un point de départ ; vérifier la charge d’encodage pendant la répétition. - Utilisez l'audio AAC et la stéréo 48 kHz. Désactivez les sources audio indésirables du microphone et du bureau. - Dans **Stream**, sélectionnez Personnalisé. Divisez l'entrée MediaLive RTMP URL en le serveur/application URL et son composant final de nom de flux. Mettez le composant final dans Stream Key. Gardez-le masqué. Utilisez une connexion de envoi stable avec une marge supérieure au débit binaire vidéo et audio combiné. Si OBS signale des baisses soutenues de réseau ou d'encodage, corrigez-les avant d'ouvrir l'événement aux spectateurs. Voir [OBS conseils de codage matériel](https://obsproject.com/kb/hardware-encoding). ## Configurer les sorties adaptatives[#](#configure-4k-adaptive-outputs) Pour cette configuration OBS, utilisez une spécification d’entrée MediaLive AVC/UHD plafonnée à 20 Mbps. Créez les sorties H.264 ci-dessous à 30 fps, avec des GOP fermés de 2 secondes et des segments CMAF alignés de 6 secondes. Gardez l’audio AAC dans une piste séparée. | Résolution | Exemple de débit vidéo | Groupe de clés | | --- | --- | --- | | 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 | Il s'agit de paramètres de répétition et non d'une garantie de qualité. Une chaîne 4K nécessite toujours des rendus inférieurs pour les écrans plus petits, les réseaux contraints et les appareils dont le niveau de sécurité DRM limite la qualité. Vérifiez la prise en charge actuelle du codec [MediaLive et de la résolution](https://docs.aws.amazon.com/medialive/latest/ug/eml-limitations-and-rules.html) lorsque vous choisissez un autre encodeur. ## Réutilisation d'un canal après un événement précédent[#](#reuse-channel-history) Un encodeur en cours d'exécution ne constitue pas une preuve que les téléspectateurs reçoivent de nouveaux médias. Vérifiez l'en-tête MediaPackage manifest-last-updated et les résolutions annoncées. Si un canal réutilisé dessert toujours d'anciens segments après un changement d'encodeur ou de rendu, suivez la [AWS procédure de réinitialisation de l'historique des canaux](https://docs.aws.amazon.com/mediapackage/latest/userguide/channel-reset.html). - Confirmez que le contenu précédent DVR peut être définitivement supprimé ; une réinitialisation n’est pas une opération de restauration. - Arrêtez le canal OBS et le canal MediaLive. Attendez que MediaLive soit inactif. - Dans MediaPackage, réinitialisez l'historique du canal de test spécifique. Attendez au moins 30 secondes après la fin de la réinitialisation. - Démarrez MediaLive, attendez l'exécution, puis démarrez OBS. Vérifiez à nouveau les nouveaux médias DASH/HLS, l'échange SPEKE et la lecture de l'appareil. ## Ajoutez l'événement à PHP, Android et iOS[#](#test-web-android-ios) Utilisez le même Content ID live et le même environnement dans tous les exemples. Gardez Site Key et Access Key sur votre serveur PHP. L'exemple d'événement hébergé est `aws-live-test-20260902`, intitulé **4K Live DRM Test** ; il n'est disponible que pendant qu'une répétition est en cours. Dans PHP, ajoutez une entrée de liste de lecture fiable avec `id`, `title` et `type: live`. Connectez-vous à nouveau pour actualiser les droits de session de l'exemple. Le backend résout le manifeste en direct enregistré et rejette un type fourni par le client qui ne correspond pas au catalogue. ``` 'playlist' => [ ['id' => 'your-live-content-id', 'title' => 'My live event', 'type' => 'live'], ], ``` Dans Android, ajoutez `DrmXPlaylistItem("your-live-content-id", "My live event", "live")` et transmettez son type de contenu lors de la préparation de la lecture. Dans l'exemple Apple, utilisez `DrmXPlaylistItem(contentId: "your-live-content-id", title: "My live event", contentType: .live)`. Les entrées en direct sont destinées au streaming et ne doivent pas entrer dans la file d'attente de téléchargement hors ligne. ## Démarrer, vérifier et arrêter[#](#start-and-stop-the-broadcast) - Démarrez le canal DRM-X Live Run, puis démarrez le canal AWS MediaLive. Attendez que MediaLive signale En cours d'exécution. - Démarrez la diffusion en OBS. Vérifiez son débit binaire, les images perdues, l'audio et la charge de l'encodeur. - Vérifiez que les manifestes DASH/HLS se renouvellent et contiennent les représentations et signaux DRM attendus. Contrôlez l’image décodée et le son dans un navigateur, sur Android avec Widevine et sur iPhone avec FairPlay. Laissez un lecteur connecté pendant au moins une rotation de clés, puis testez l’arrivée d’un nouveau spectateur. - Arrêtez le streaming OBS, arrêtez le canal MediaLive et arrêtez le DRM-X Live Run à la fin du test. Confirmez que MediaLive revient au repos. Arrêter OBS ne met pas fin aux frais d’encodage AWS. Vérifiez aussi les coûts des entrées conservées, du packaging et du stockage, des requêtes et de la diffusion. Consultez la [tarification MediaLive](https://aws.amazon.com/medialive/pricing/) et votre Console de facturation AWS. ## Répétition vérifiée : 17 septembre 2026[#](#verified-rehearsal) La chaîne a fourni une vidéo chiffrée de 3 840 × 2 160 avec des rendus adaptatifs inférieurs. Un iPhone physique a décodé la 4K et a passé six minutes de lecture sur une rotation de clé de 600 secondes. appareil Samsung Android a passé dix minutes en 1080p, son plafond d'affichage signalé. Les deux appareils ont passé une nouvelle jointure après la rotation. Ces résultats s’appliquent aux appareils, codecs et politiques testés. Utilisez Android SDK **1.0.0-preview.13** ou version ultérieure pour les manifestes en direct non mis en cache. Mettez à niveau l'application d'évaluation [Android existante](https://docs.drm-x.com/downloads/android/1.0.0-preview.13/drmx-android-player-1.0.0-preview.13.apk) en place pour préserver les vidéos téléchargées. L'exemple Apple mis à jour préserve les clés ID et IV tout en compactant les métadonnées MediaPackage pour s'adapter à la limite d'identifiant SPC de 200 octets de FairPlay. Sa préférence de résolution fournit à la fois la largeur et la hauteur afin que la lecture adaptative puisse atteindre 4K. ### Safari lecture en direct Utilisez Web SDK 1.2.0-preview.13 ou version ultérieure pour Safari. Il sélectionne le Apple Media Keys natif lorsqu'il est disponible sur macOS, iOS et iPadOS, et conserve ce API lors des changements de playlist en direct et VOD. La lecture en direct ne revient pas à MSE/SINF, qui peut demander des clés de segment d'initialisation obsolètes après que MediaPackage ait fait pivoter ses clés. Conservez la clé actuelle exacte ID et IV dans la signalisation HLS. DRM-X SPEKE émet un identifiant d'actif compact KeyId/IV afin que Safari puisse demander FairPlay licences dans la limite de taille d'identifiant. Le DRM License Token autorise toujours le contenu et la clé exacts. Après la mise à jour de Key Service, vérifiez que sa passerelle dépendante SPEKE est en cours d'exécution ; un encodeur recevant une vidéo ne peut pas publier une nouvelle sortie protégée tant que la diffusion de clé n'est pas disponible. Un test Safari distinct de 15 minutes a confirmé une lecture continue pendant une rotation de clés sur Mac et iPhone. L’iPhone utilisait Apple Media Keys natif. Le Mac utilisait EME moderne pour la rotation, puis a réussi une nouvelle connexion avec Apple Media Keys natif après une erreur intermittente au démarrage avec EME moderne. L’adaptation du navigateur a atteint 720p sur Mac et 480p sur iPhone. Ce test ne valide ni la lecture 4K dans le navigateur ni la rotation sur le chemin de compatibilité final du Mac. Le résultat 4K de l’application native provient d’un autre test. ### Avant de reprendre une répétition - Vérifiez que le point de terminaison SPEKE est accessible et que la console affiche un échange récent. Un encodeur recevant une entrée peut toujours servir des médias obsolètes lorsque la diffusion de clé échoue. - Conservez les caches multimédias VOD/hors ligne séparés de la source du manifeste en direct. - Vérifiez les dimensions réelles décodées ; la sélection d’un canal 4K à elle seule ne prouve pas la lecture 4K. - Cette répétition est arrêtée. Démarrez un nouvel encodeur DRM-X Live Run, AWS et un flux OBS autorisés avant de tester à nouveau l'entrée du catalogue en direct.