Retard audio / Filtre

Dans le cadre de productions en direct, il arrive parfois qu'il faille diffuser le son avec un léger décalage par rapport à l'image, afin de compenser le temps de traitement des écrans LCD géants (synchronisation labiale). Il peut également être nécessaire d'ajouter un limiteur/gate au signal audio de l'entrée microphone.

Dans cet article :
Retard audio simple
Copier l'audio et le délai
Autres filtres audio


Retard audio simple

C'est en fait assez rapide à mettre en place dans PLAYDECK. Il suffit d'ajouter le filtre audio ADELAY au canal comme ceci. Dans cet exemple, nous avons défini un délai de 600 ms pour les canaux audio 1 et 2 :

Ce paramètre peut également être réglé sur « INPUTS » pour corriger tout problème de synchronisation labiale.


Copier l'audio et le délai

Vous pouvez également COPIER les canaux audio 1 et 2 vers les canaux audio 3 et 4, puis les retarder. L'intérêt ici est que le mixeur audio dispose d'un aperçu audio en direct.

Cette opération doit être effectuée au niveau de la liste de lecture ; veillez donc à désactiver tout filtre audio dans les paramètres.

Commencez par vous assurer d'augmenter le nombre de canaux audio de votre canal de sortie, sinon tous les canaux audio supérieurs à 2 ne seront pas traités :

Faites un clic droit sur n'importe quel élément de la liste de lecture et sélectionnez « Mappage des canaux audio » :

Cela permettra de copier les canaux audio 1 et 2 vers les canaux audio 3 et 4 :

Cliquez à nouveau avec le bouton droit sur l'élément de la liste de lecture, sélectionnez « AUDIO FILTER » et ajoutez le filtre ADELAY, mais uniquement pour les canaux audio 3 et 4 :


Autres filtres audio

Pour obtenir la liste complète de tous les filtres audio, cliquez sur « AFFICHER LES EXEMPLES ». Cela ouvrira un fichier texte contenant des exemples.

Journalisation du moteur vidéo

Cet article explique comment configurer la journalisation de Video Engine.


1. Configuration de la journalisation

Lancez PLAYDECK, ouvrez Paramètres, puis sélectionnez le DEMANDE onglet. En bas de la page, vous trouverez les options de configuration.

Dossier de sortie : Choisissez le répertoire de destination. Il peut également s'agir d'un dossier réseau partagé.

Avertissement concernant le stockage : Les fichiers journaux peuvent facilement occuper jusqu'à 1 Go par minute (avec un niveau de verbosité de 0 et tous les modules activés). Assurez-vous de disposer d'un espace disque libre suffisant en fonction du temps que pourrait prendre l'apparition du problème.

Niveau de détail : Commencez toujours la journalisation avec 0 – trace. Cela permet de s'assurer que les développeurs du moteur vidéo reçoivent toutes les informations nécessaires.

Modules : Sélectionner tout Pour commencer. Si les fichiers journaux deviennent trop volumineux, vous pouvez réduire leur taille en vous concentrant sur des modules spécifiques :

La première chose à configurer est votre Dossier de sortie pour les fichiers journaux. Il peut s'agir d'un dossier partagé sur votre réseau. Les journaux peuvent facilement occuper jusqu'à 1 Go par minute (avec un niveau de verbosité de 0 et tous les modules activés). Prévoyez suffisamment d'espace disque disponible, en fonction du délai estimé avant l'apparition du bug.

La configuration suivante est Verbosité: Veuillez toujours commencer la journalisation avec 0 – trace, afin que les développeurs du moteur vidéo disposent de TOUTES les informations.

Avec le Modules le paramètre que nous choisissons tout Pour commencer. Si les fichiers journaux deviennent trop volumineux, nous pouvons réduire leur taille en nous concentrant sur des modules spécifiques :

  • tout: Enregistre tout.
  • liste de lecture, fichier, codecs: Traite des erreurs liées à la diffusion, au décodage des fichiers et au chargement/à la lecture des clips.
  • auteur: Couvre les flux, les enregistrements et l'encodage.
  • réseau: Traite des protocoles de diffusion en continu.
  • rendu: Couvre la sortie du périphérique et le protocole NDI.
  • en direct: Couvre les entrées en direct.
  • appareil: Tout ce qui concerne les périphériques matériels.
  • blackmagic: Tout ce qui concerne le matériel Blackmagic Design.


Option de fractionnement : Cela dépend du nombre de canaux que vous utilisez, car chaque canal fonctionne dans son propre processus. Si vous utilisez plus de deux chaînes, nous vous recommandons vivement d'activer l'option « Split ».


2. Démarrer / Arrêter l'enregistrement

Pour détecter un bug à la volée, vous devrez activer la journalisation, reproduire le problème, désactiver la journalisation, puis envoyer les fichiers à l'équipe de développement.

Calendrier : Vous pouvez DÉMARRER et STOP enregistrer à tout moment. Cela vous permet de préparer votre liste de lecture ou vos appareils à l'avance. Réduisez au minimum le temps entre le début et la fin de l'enregistrement afin que la taille totale du fichier reste raisonnable.

Dossier de session : Une fois que vous avez cliqué sur DÉMARRER, un nouveau sous-dossier portant le nom de l'horodatage actuel (par exemple, 2026-05-16__01-20-00) sera créé dans le répertoire de journalisation que vous avez indiqué.

Arrêt : Lorsque le problème survient, cliquez sur STOP. Attendez au moins 10 secondes pour s'assurer que tous les processus de journalisation en cours aient terminé leur écriture sur le disque.

Compression : Ouvrez votre chemin d'accès aux fichiers journaux et localisez le dossier de session. Cliquez avec le bouton droit sur le dossier, puis sélectionnez Compresser dans…, puis sélectionnez 7z (de préférence) ou Code postal. La compression peut prendre un certain temps selon la taille du fichier.

Nous devons maintenant compresser le contenu du dossier « session ». Identifier classez votre dossier de session par heure de DÉBUT. Cliquez ensuite avec le bouton droit sur votre dossier de session, puis sélectionnez Compresser en et choisir Fichier 7z (si disponible) ou Fichier ZIP. Maintenant, détendez-vous, la compression pourrait prendre un certain temps.


3. Téléchargement des journaux

Veuillez télécharger vos fichiers journaux compressés via notre portail de téléchargement officiel :

https://download.joy-event-media.de

  1. Faites glisser et déposez votre fichier ZIP/7z dans la fenêtre du navigateur ou utilisez l'explorateur de fichiers.
  2. Cliquez TÉLÉCHARGER.
  3. Une fois que vous avez terminé, cliquez sur COPIER pour copier le lien de téléchargement généré dans votre presse-papiers.
  4. Envoyez un e-mail à [email protected] et collez le lien de téléchargement dans le message.

Remarque : sans ce lien de téléchargement spécifique, notre équipe ne peut pas accéder à vos fichiers en raison des règles de protection des données.


4. Nettoyage

Veillez à supprimer les fichiers journaux et les dossiers de session d'origine après Compression et transfert réussis pour libérer de l'espace disque. PLAYDECK ne supprime ni ne nettoie automatiquement les anciens fichiers journaux.


Envoi de SCTE-35 au serveur de streaming

Les marqueurs SCTE servent principalement à insérer des publicités dans le flux vidéo en indiquant au récepteur (par exemple, un serveur de streaming) à quel moment insérer les publicités et pendant combien de temps. Cela permet à des systèmes tiers de sélectionner dynamiquement des publicités à partir d'une base de données. Pour en savoir plus sur la norme SCTE-35 en général sur ce site web.

Dans cet article :
Introduction
Exemples de marqueurs SCTE-35
Tester localement le marqueur SCTE-35
Test du marqueur SCTE-35 dans Nimble Streamer
Informations complémentaires


Introduction

Nous vous recommandons également notre article général sur la SCTE.

Vous pouvez associer un marqueur SCTE à 4 objets différents dans PLAYDECK :
– Clips (n'importe quelle position)
– Blocs (début et fin)
– Superpositions (Afficher et masquer)
– Boutons d'action

Au lieu de vous fournir un marqueur SCTE prédéfini, nous avons opté pour une approche différente : vous devez créer votre propre marqueur SCTE. Cela peut demander un certain temps d'adaptation, mais au final, cette solution offre beaucoup plus de flexibilité. L'avantage est que vous serez toujours compatible avec tous les récepteurs. Pour recueillir la durée des clips et d'autres “ variables ”, nous fournissons certains “ espaces réservés ”.

Veuillez noter que la fonction SCTE doit être activée dans vos options de streaming :


Exemples de marqueurs SCTE-35

Examinons quelques exemples de SCTE-35. Il s'agit de la variante la plus courante de la norme SCTE-35, appelée “ épissure ”.

Remarque : Le format SCTE-35 présenté ici fonctionne de manière optimale avec Nimble Streamer (voir ci-dessous). Selon votre serveur de streaming, le format peut varier. Renseignez-vous auprès de votre fournisseur.

Cela insérera une publicité et vous ramènera automatiquement à votre programme une fois la durée indiquée écoulée. La durée sera définie automatiquement par PLAYDECK en fonction du clip en cours de lecture. Vous pouvez la remplacer par {blockduration} ou par une valeur saisie manuellement. Si vous choisissez une valeur manuelle pour la durée, la formule est la suivante : DURÉE DU CLIP multipliée par 90000 et arrondie. La raison en est que 90000 est l'échelle de temps par défaut utilisée par la plupart des systèmes SCTE. Exemple : le clip dure 12,4 secondes, la durée SCTE serait donc de 1116000.

Au lieu d'envoyer une durée, vous pouvez également envoyer deux marqueurs SCTE distincts pour marquer le début et la fin de la publicité. Ceux-ci sont appelés CUE-OUT (passage de votre émission à la publicité) et CUE-IN (retour à votre émission).

Comme vous l'avez sans doute déjà remarqué, la seule différence réside dans la valeur de “ outOfNetworkIndicator ”, qui peut être 1 (CUE-OUT) ou 0 (CUE-IN). Le système SCTE se charge lui-même de coupler les deux marqueurs en fonction de l“” spliceEventId ».

Remarque : Les variables de remplacement prises en charge sont les suivantes : {timestamp} {timestampunix} {airtimenext} {airtimenextunix} {plannednext} {plannednextunix} {clipid} {blockid} {blockduration} {clipduration}


Tester localement le marqueur SCTE-35

Ouvrez PLAYDECK. Vous n'avez pas besoin de charger de clips pour l'instant. Faites un clic droit sur n'importe quel bouton ACTION, créez une nouvelle action et sélectionnez COMMANDES/SCTE :

Insérez la balise d'échantillon SCTE-35 en cliquant sur SCTE-35. Fermez les fenêtres contextuelles en cliquant deux fois sur OK :

Nous sommes désormais en mesure d'envoyer une balise SCTE-35 à n'importe quel flux compatible (UDP, DVB, SRT). Si vous cliquez sur « Action » pour l'instant, rien ne se passera, car nous n'avons pas encore de flux.

Créons un flux UDP de test, dans lequel nous nous contenterons d'enregistrer la sortie dans un fichier, afin de ne pas avoir à nous occuper (pour l'instant) des aspects liés au serveur. Copiez les paramètres ci-dessous et lancez le flux en cliquant sur “ START NOW ”. N'oubliez pas d'activer SCTE-35 dans le champ « Paramètre » :

Nous souhaitons maintenant envoyer notre balise SCTE-35 d'exemple au flux. Fermez donc les paramètres et cliquez plusieurs fois sur le bouton d'action, puis retournez dans les paramètres et arrêtez votre flux en cliquant sur « ARRÊTER MAINTENANT ».

Vos balises SCTE-35 ont été enregistrées par PLAYDECK. Vous pouvez consulter les journaux en revenant à votre code SCTE-35 via le bouton « Action », puis en cliquant sur « OUVRIR LES JOURNAUX D'ÉVÉNEMENTS » :

Vous pouvez également afficher les balises SCTE-35 présentes dans votre flux enregistré. Pour cela, il vous faut un outil distinct appelé “ DVBInspector ”. Cet outil nécessite également le runtime Java ; veuillez donc télécharger les deux :

Cet outil nécessite le runtime Java. S'il n'est pas encore installé, vous pouvez le télécharger ici :
https://www.oracle.com/java/technologies/downloads/

Décompressez maintenant votre fichier “ DVBinspector-1.18.0-dist.zip ” (ou similaire) et lancez “ DVBinspector-1.18.0.jar ”. Glissez-déposez ensuite votre fichier TS dans l'application. Ouvrez l'arborescence comme suit pour afficher votre marqueur SCTE.


Test du marqueur SCTE-35 dans Nimble Streamer

Nimble Streamer est notre service de streaming de prédilection. Il est économique, facile à configurer et à entretenir, tout en offrant suffisamment de fonctionnalités avancées pour répondre aux besoins les plus complexes :

https://softvelum.com/nimble/

Installez la version d'essai de 14 jours de Nimble sur la même machine que celle sur laquelle PLAYDECK est en cours d'exécution. Ce n'est pas obligatoire, mais cela simplifie les choses, car vous n'avez pas à vous soucier de la configuration réseau. Nimble vous demandera également de créer un compte sur WMSPanel, un outil de configuration en ligne dédié à Nimble, car le Nimble Streamer s'installe sans interface utilisateur.

INFO : Pour que cet exemple SCTE-35 fonctionne, vous n'avez PAS besoin des plug-ins “ Nimble Live Transcoder ” ou “ Nimble Advertizer ” si vous le testez sur une installation en production. Ils sont désactivés par défaut dans la version d'essai.

Une fois que Nimble est opérationnel, il vous reste un réglage à effectuer manuellement. Ouvrez le fichier de configuration du serveur Nimble à l'emplacement suivant :
c:\Program Files\Nimble Streamer\conf\nimble.conf

À la fin de ce fichier, ajoutez les lignes suivantes et enregistrez le fichier.

scte35_processing_enabled = true 
scte35_forwarding_enabled = true 
hls_ad_scte35_forwarding_enabled = true
hls_ad_marker_format = cue
hls_ad_splice_out_cont_marker_enabled = true

Important : Vous devez redémarrer Nimble dès maintenant, soit en redémarrant votre PC, soit en redémarrant manuellement le service Windows “ Nimble Streamer ”.

Voici à nouveau les lignes, mais avec des commentaires à votre intention (ne les utilisez pas) :

scte35_processing_enabled = true  // Active le module SCTE de manière générale. Nécessaire pour toutes les autres options
scte35_forwarding_enabled = true  // Permet le transfert des marqueurs SCTE-35 via Live Transcoder
hls_ad_scte35_forwarding_enabled = true  // Active le transfert des marqueurs SCTE-35 vers les flux HLS
hls_ad_marker_format = cue  // Configure Nimble pour qu'il utilise les marqueurs CUE-OUT et CUE-IN
hls_ad_splice_out_cont_marker_enabled = true  // Active l'insertion automatique de EXT-X-CUE-OUT-CONT

Configurons maintenant vos flux dans WMSPanel :
Nous allons tout d'abord définir notre flux entrant. Rendez-vous dans “ Nimble Streamer ” dans le menu, sélectionnez “ MPEGTS In ”, puis cliquez sur le bouton “ Ajouter un flux UDP ” et configurez le flux entrant comme suit. Vous pouvez utiliser n'importe quel autre port si le port 5001 est déjà utilisé.

Nous allons maintenant configurer le format du flux de sortie. Nous souhaitons utiliser HLS ici pour illustrer la conversion du marqueur SCTE de UDP vers HLS. Sur la même page, accédez à “ MPEGTS Out ” et cliquez sur le bouton “ Ajouter un flux sortant ”, puis effectuez l'ajout comme suit. Veillez à sélectionner votre flux d'entrée comme source vidéo et audio.

Nous allons maintenant poursuivre la configuration dans PLAYDECK. Accédez aux paramètres de sortie du flux et remplacez l'URL du flux par “ udp://127.0.0.1:5001 ”.

INFO : Vous pouvez choisir le codec vidéo de votre choix. Dans ce cas précis, j'ai opté pour le H.264 afin de laisser mon GPU NVIDIA se charger de l'encodage, ce qui réduira l'utilisation de mon processeur. Activez également SCTE-35 dans l'onglet “ Paramètres ”.

INFO : Veuillez noter que PLAYDECK ne prend pas en charge la diffusion directe en HLS. Si vous sélectionnez “ Apple HTTP Live Streaming ” comme format de diffusion, le flux sera enregistré dans un fichier. Vous devez donc spécifier une destination de fichier comme “ URL de diffusion ”, par exemple “ c:\Users\Public\Documents\stream.m3u8 ”. Utilisez ensuite ce fichier pour diffuser le flux à l'aide de n'importe quel serveur de streaming. PLAYDECK n'est pas en mesure d'écrire des balises SCTE HLS dans le fichier manifeste HLS (le fichier *.3u8).

Nous souhaitons ensuite que PLAYDECK envoie automatiquement des signaux SCTE, non seulement via un bouton, mais aussi en fonction des clips. Pour cela, insérez n'importe quel clip, cliquez sur l'icône COMMANDES dans la barre d'outils, ajoutez une nouvelle commande, sélectionnez PLAY TIME 0, puis insérez l'exemple SCTE-35 :

INFO : Vous pouvez également ajouter des marqueurs SCTE aux blocs, aux superpositions et aux boutons d'action.

C'est parti : lancez la lecture du clip et démarrez la diffusion en direct dans les paramètres de PLAYDECK. Rendez-vous dans le WMSPanel et ouvrez l'option “ Live Streams ” dans le menu “ Nimble Streamer ”. Vous verrez alors un flux en direct en cours. Cliquez dessus et sélectionnez le point d'interrogation situé à l'extrême droite, comme ceci.

Dans la liste des “ URL à lire ”, sélectionnez celle qui se termine par “ playlist.m3u8 ” et cliquez sur “ Copier ”. Collez ensuite cette URL dans n'importe quel navigateur disposant d'un lecteur HLS intégré ou installé. Dans cet exemple, nous utilisons le navigateur CHROME avec l'extension de lecteur HLS suivante :
https://chromewebstore.google.com/detail/hls-player-m3u8-streaming/eakdijdofmnclopcffkkgmndadhbjgka

Une fois que vous aurez saisi cette URL dans Chrome, vous verrez immédiatement votre flux PLAYDECK se lancer. Je vais maintenant vous montrer comment surveiller votre marqueur SCTE. Dans Chrome, appuyez sur F12 pour ouvrir les outils de développement. En haut, cliquez sur l'onglet “ Réseau ”. Vous verrez alors plusieurs fichiers “ chunks.m3u8 ”, qui font partie de votre flux. Cliquez sur l'un des fichiers chunk (également appelés manifeste HLS) et sélectionnez “ Aperçu ” à côté. Vous verrez alors la balise SCTE HLS. Si elle n'apparaît pas, cliquez sur un autre chunk, car nous n'envoyons le SCTE qu'au début du clip.

Et voilà ! Nous avons atteint nos objectifs de test. Vous trouverez ci-dessous des informations supplémentaires qui pourraient vous intéresser.


Informations complémentaires

Connexion à PLAYDECK

Nous enregistrons toutes les balises SCTE entrantes et sortantes. Cela vous permet également de tester vos balises SCTE sortantes en bouclant simplement votre sortie vers une entrée (SDI ou flux), et de laisser PLAYDECK détecter vos balises SCTE. Vous pouvez ouvrir les fichiers journaux via le menu principal “ Logs ” :


Journalisation dans Nimble Streamer

Si un problème survient ou si quelque chose ne se passe pas comme prévu, la première chose à faire est de consulter les fichiers journaux de Nimble. Sous Windows, le fichier journal se trouve ici :
c:\Program Files\Nimble Streamer\log

La journalisation est activée par défaut dans la version d'essai de Nimble, mais si vous devez l'activer, voici les options à utiliser dans le fichier “ nimble.conf ”.

log_access = fichier
logging = débogage

Ouvrez maintenant le fichier journal et recherchez “ SCTE ”. Vous pourriez voir quelque chose comme ceci, ce qui indique qu'il y a une faute de frappe dans votre marqueur SCTE dans PLAYDECK :

[SCTE35] Commande de raccordement non prise en charge de type 6 pour [mynewapp/mynewstream]

Si votre marqueur SCTE a été analysé avec succès dans Nimble, il se présentera comme suit :

[SCTE35] splice_insert : event_id=4157 oon=1 immediate=1 pts_adjustment=0 pts=0 actual_pts=202593600 duration=2707200 data=0xfc....



Outil : TSDuck

Il s'agit d'une suite d'outils et de plugins dotée d'une vaste bibliothèque permettant de manipuler les flux de transport MPEG. Grâce à elle, vous pourrez insérer des marqueurs SCTE en dehors de PLAYDECK en vous appuyant sur un algorithme ou une autre logique complexe.

https://tsduck.io/


Outil : x9k3

Cet outil permet également de convertir les marqueurs SCTE-35 présents dans les flux UDP ou les fichiers MPEG-TS en balises HLS SCTE. Cela vous permet de mettre en place un serveur de streaming qui ne dispose pas de conversion automatique SCTE-35 vers HLS.

https://github.com/futzu/x9k3