Transcodage côté serveur (SST)

Précédent Suivant

En règle générale, l’encodage Triton pour le réseau de distribution de contenu (CDN) Triton Digital est fourni par l’application Station Manager côté station, installée sur un ou plusieurs PC ou appareils Zipstream2. Le Transcodage côté serveur (SST) de Triton Digital est une solution permettant d’ingérer un flux audio et des métadonnées supplémentaires dans le réseau de distribution de contenu (CDN) de Triton Digital.

Le service ne fonctionne que pour les flux en direct. Le Transcodage côté serveur est disponible en tant que module complémentaire à notre service de streaming en direct. Adressez-vous à votre responsable de la réussite client Triton Digital pour déterminer si cette solution correspond à vos besoins.

Grâce au mécanisme de Transcodage côté serveur, les flux peuvent être ingérés via :

  • Extraction HLS de flux audio ou vidéo avec métadonnées publicitaires dans une liste de lecture ;

  • Extraction HLS via l’URL HLS de Triton ;

  • Extraction RTMP ;

  • Sources Shoutcast ou Icecast (avec métadonnées) ;

  • Métadonnées prises en charge pour HLS, Icecast, Shoutcast et RTMP. Les autres formats peuvent être pris en charge, mais nécessitent un développement supplémentaire (généralement minime).

La solution de transcodage côté serveur est une composante de MediaRelay.

Références

Sources

HLS Pull

Le Transcodage côté serveur suit les caractéristiques HLS. Afin d'ingérer un flux HLS, une liste de lecture de référence doit être indiquée. Veuillez consulter les exemples de liste de lecture HLS ci-dessous.

Codecs pris en charge

Le transcodage côté serveur ne prend pas en charge la fonctionnalité de streaming adaptatif.

Consultez l’article de la base de connaissances du centre d’aide « Choix des paramètres de débit binaire audio » pour obtenir la liste des codecs pris en charge.

Tous les codecs d'entrée audio mentionnés dans l'article ci-dessus sont également pris en charge par le transcodage côté serveur (à l'exception des codecs à débit adaptatif). En tant qu'éditeur, vous pouvez transcoder dans les codes audio de sortie pris en charge, ou tout simplement copier le codec d'entrée tel quel.

Métadonnées et marqueurs

Les données ci-dessous décrivent les métadonnées de liste de lecture pour l'injection de publicité et de contenu.

Métadonnées de liste de lecture

Injection publicitaire

La méthode d'extraction HLS prend en charge les paramètres relatifs à l'injection publicitaire à l'intérieur de la liste de lecture m3u8.

Marqueurs publicitaires prise en charge :

Balise

Description

EXT-X-CUE-OUT

Début du remplacement de publicité. Insérer un marqueur temporel de pause publicitaire.

EXT-X-CUE-OUT-CONT

Continuation du remplacement de publicité. Insérer un marqueur temporel de pause publicitaire.

EXT-X-CUE-IN

Fin du remplacement de publicité. Ajout d'un marqueur de fin de publicité.

EXTINF

Identification d'un segment aux caractéristiques HLS. Des métadonnées supplémentaires peuvent être indiquées comme paramètres.

Exemple de liste de lecture :

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PROGRAM-DATE-TIME:2020-02-20T18:24:11.000+0000
#EXTINF:9.98458
1.aac
#EXTINF:9.98458
2.aac
#EXTINF:9.98458
3.aac
#EXTINF:9.98458
4.aac
#EXT-X-CUE-OUT:30.00
#EXTINF:6.000, Advertisement
blank.aac
#EXT-X-CUE-OUT-CONT:ElapsedTime=6.00,Duration=30.00
#EXTINF:6.000, Advertisement
blank.aac
#EXT-X-CUE-OUT-CONT:ElapsedTime=12.00,Duration=30.00
#EXTINF:6.000, Advertisement
blank.aac
#EXT-X-CUE-OUT-CONT:ElapsedTime=18.00,Duration=30.00
#EXTINF:6.000, Advertisement
blank.aac
#EXT-X-CUE-OUT-CONT:ElapsedTime=24.00,Duration=30.00
#EXTINF:6.000, Advertisement
blank.aac
#EXT-X-CUE-IN
#EXTINF:9.98458
5.aac
#EXTINF:9.98458
6.aac
Métadonnées de contenu

La méthode HLS Pull prend en charge les paramètres de métadonnées de contenu de la liste de lecture m3u8.

EXTINF RAW avec Artiste et Titre :

#EXTINF:200,Madonna - Vogue

EXTINF avec STWCUE :

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:35
#EXTINF:10.008778,{"name":"track","properties":{"track_id":"SEAMA8777131","track_isrc":"SEAMA8777131","cue_title":"It Must Have Been Love","track_artist_name":"Roxette"}}
/stream/test-mount/media/2286/9/35.aac
#EXTINF:10.008778,{"name":"track","properties":{"track_id":"SEAMA8777131","track_isrc":"SEAMA8777131","cue_title":"It Must Have Been Love","track_artist_name":"Roxette"}}
/stream/test-mount/media/2286/10/36.aac
#EXTINF:9.985556,{"name":"track","properties":{"track_id":"SEAMA8777131","track_isrc":"SEAMA8777131","cue_title":"It Must Have Been Love","track_artist_name":"Roxette"}}
/stream/test-mount/media/2286/11/37.aac
#EXTINF:10.008778,{"name":"track","properties":{"track_id":"SEAMA8777131","track_isrc":"SEAMA8777131","cue_title":"It Must Have Been Love","track_artist_name":"Roxette"}}
/stream/test-mount/media/2286/12/38.aac
#EXTINF:10.008778,{"name":"track","properties":{"track_id":"SEAMA8777131","track_isrc":"SEAMA8777131","cue_title":"It Must Have Been Love","track_artist_name":"Roxette"}}
/stream/test-mount/media/2286/13/39.aac
Métadonnées de balise ID3v2

Les métadonnées de contenu ID3v2 en flux sont prises en charge par l'ingestion HLS. Veuillez consulter les spécifications ID3v2 pour en savoir plus.

Chiffrage pris en charge

Le Transcodage côté serveur HLS de Triton prend en charge les fonctions suivantes conformément aux spécifications HLS :

  • Chiffrage AES-128

RTMP Pull

Transcodage côté serveur depuis un serveur RTMP/FLV. L'architecture Triton est capable d'extraire un flux depuis un serveur RTMP. Pour ce faire, nous avons besoin de l'URL HTTP de streaming pour l'ingestion sur la plateforme Triton.

Métadonnées et marqueurs

Métadonnées de contenu

Paquets FLV avec encapsulation RTMP et objets onMetadata facultatifs.

Les marqueurs FLV onMetadata sont convertis au format onCuepoint (STWcue) FLV.

Les objets onMetadata suivants sont convertis :

onMetadata

STWCue

album

track_album_name

genre

track_genre

title

cue_title

nom de l'artiste

track_artist_name

éditeur

track_album_publisher

url

track_product_url

durée

cue_time_duration

Marqueurs publicitaires

Les coupures publicitaires sont signalées par la chaîne Advert : dans l’objet title .

title = "Advert: This is my ad"

Pour mettre fin à une coupure publicitaire, envoyez un nouveau titre (title) dans le marqueur FLV onMetadata, qui ne contient pas Advert :

title = "Morning News"

Métadonnées d'ingestion prises en charge

Priorité des métadonnées d'ingestion

L'ordre de priorité des métadonnées est indiqué ci-dessous, du plus important au moins important :

Métadonnées

Description

STWcue

Format interne de Triton Digital.

FLV

Format onMetadata FLV (Adobe) classique.

STCE35

HLS SCTE35.

ID3V2

Tout contenu basé sur un fichier ou segment, aac, mp3 etc. Peut disposé d'un ID3v2 intégré au début du fichier.

EXTINF

M3U (format pre-HLS défini, créé  par Winamp/Nullsoft vers 1998). Il est très basique (« Time In Seconds, Free Form String also known as ATS »), « ATS » étant utilisé pour l'artiste, le titre et/ou la chanson.

SC

Shoutcast/Icecast ; ces métadonnées proviennent d’un flux en direct d’audio mp3/aac depuis une seule connexion TCP. Un marqueur de métadonnée est envoyé tous les XXXX octets, défini par le serveur, et contient des données utiles, si elles sont présentes, comme Artist, Title, Album, Artwork URL, Ad marker, Duration, et d'autres.

RAW

Description ci-dessus, mais il s'agit de la forme de métadonnée la plus simple. Cependant, elle dispose de séparateurs « - », les lecteurs et notre système peuvent être en mesure de deviner les données « Title », « Artist - Title » et « Artists - Album - Title ».

Exemple de priorité : si des métadonnées « STWCUE » sont détectées, elles seront traitées en premier et ce seront les seules métadonnées utilisées. Alors que les données « RAW » - c’est-à-dire une chaîne pure telle que « Une chaîne aléatoire de mots » - sont traitées avec le moins de priorité, car elles ne donnent pas au système beaucoup d’informations avec lesquelles fonctionner. Elles sont toutefois prises en charge lorsqu'il est impossible de classifier/quantifier les métadonnées. Il s'agit donc d'une chaîne transmise.

Meilleures pratiques

Il est conseillé de tester le flux de la source pendant au moins 24 heures de streaming en continu avant la retransmission via Triton Digital afin d'assurer que la source ne présente aucun problème et que le streaming/transcodage soit fiable.

Retrouvez ci-dessous quelques-uns des outils pouvant être utilisés.

ffmpeg (https://ffmpeg.org/)

Pour les flux HLS

L'exécution de la commande ci-dessous affichera en temps réel les éléments audio analysés, ainsi que les paramètres de débit et de codage, et révélera les problèmes potentiels d'horodatage. Indiquez l'URL de la liste de lecture à tester et ffmpeg la convertira en fichier FLV.

ffmpeg -v verbose -re -i https://my-stream-to-test/playlist.m3u8 -f flv -flvflags "no_duration_filesize" test.flv

Pour les flux RTMP (https://en.wikipedia.org/wiki/List_of_RTMP_software)

Remplacez le lien rtmp par le flux à valider :

ffmpeg -re -i rtmp://111.111.11.11:80/live/mystream -c:a libfdk_aac -profile:a aac_he -b:a 80k -ar 44100 -ac 2 -vn -sn -dn -f flv -flvflags "no_duration_filesize" -bsf:a aac_adtstoasc test.flv

Les fichiers FLV obtenus par cette opération seront enregistrés dans le fichier au sein duquel la commande a été exécutée.

HLS Monitor

Il s'agit d'un outil de Triton Digital pour le débogage des flux HLS. Il identifie tous les fragments du flux et les outils de débogage sont excellents pour l'identification des marqueurs entrants. Cette application Adobe AIR peut être fournie si vous la demanez.

Validateur de flux média

Cette application fait partie des outils de diffusion en continu HTTP Live disponibles sur le site web des développeurs d'Apple (StreamingTools.pkg). Le validateur de flux média (Media Stream Validator) simule une session HTTP Live Streaming et vérifie que l'index et les segments multimédias sont conformes à la spécification HTTP Live Streaming. En cas de détection d'erreurs ou de problèmes, un rapport de diagnostic détaillé est affiché.

En cas d'installation sur Mac, le système est exécuté en indiquant la commande suivante dans un terminal :

mediastreamvalidator http://example.com/playlist.m3u8