CONCATÉNATION DE VIDÉOS AVEC DES MANIFESTES HLS

Cet article se concentre sur la diffusion en direct par HTTP (HLS), mais les concepts de base sont également valables pour d'autres protocoles de diffusion en continu basés sur HTTP. Un examen approfondi du protocole HLS dépasse le cadre de cet article, mais une mine d'informations est disponible en ligne, y compris la norme publiée : HTTP Live Streaming.

La concaténation et l'ancienne méthode

Le contenu est synonyme de valeur. Dans le monde de la vidéo, une façon de créer plus de valeur est de prendre une seule vidéo et de la mélanger à d'autres vidéos pour créer un nouveau contenu. Cela se fait souvent par concaténation, ou par la possibilité d'assembler plusieurs vidéos, ce qui représente une forme d'édition de base. Ajoutez à cela la création de clips à l'aide de listes de montage et vous obtenez deux des fonctions les plus élémentaires d'un éditeur non linéaire.

Aussi prometteuse que semble être la concaténation, elle peut également représenter un fardeau pour l'infrastructure et les opérations. Imaginons un portail de vidéos sociales. En fonction des appareils ciblés, il peut y avoir entre une poignée et plusieurs dizaines de formats de sortie par vidéo. S'il décide de concaténer plusieurs vidéos pour augmenter la valeur de sa bibliothèque, il constatera également une augmentation massive des coûts de stockage et de la complexité de la gestion des actifs. Chaque fois qu'une nouvelle combinaison de vidéos est créée, une série d'actifs fixes est générée et doit être stockée.

HTTP Live Streaming et le fichier Manifest

L'introduction de protocoles de diffusion en continu basés sur le protocole HTTP a créé un paradigme entièrement nouveau pour la création d'expériences de visionnage dynamiques. Traditionnellement, la seule option pour diffuser de multiples combinaisons de clips à partir d'un seul élément de contenu était le montage, ce qui signifie la création d'actifs fixes. Avec une technologie telle que HLS - puisque l'élément lisible n'est plus un fichier vidéo, mais un simple fichier texte - modifier une vidéo revient à modifier un document dans un traitement de texte.

Pour une plateforme vidéo, il y a deux façons de traiter le fichier manifeste HLS m3u8. Plus simplement, le fichier m3u8 peut être traité comme une ressource discrète et lisible. Dans ce modèle, le fichier m3u8 est stocké sur le serveur d'origine avec les fichiers TS segmentés et transmis aux appareils. Le résultat est simple et rapide à mettre en œuvre, mais le fichier m3u8 ne peut être modifié que par un processus manuel.

En revanche, en traitant le manifeste comme un élément généré dynamiquement, il devient possible de proposer aux téléspectateurs une combinaison virtuellement illimitée de clips. Dans ce modèle, le m3u8 est généré à la volée, il ne reste donc pas sur le serveur, mais est créé et livré à chaque fois qu'il est demandé

Génération dynamique de manifestes

Qu'est-ce qu'un fichier manifeste ? Il s'agit essentiellement d'une combinaison de métadonnées et de liens vers des segments de vidéo.

  • Vidéo exemplaire A
  • #EXTM3U
  • #EXT-X-MEDIA-SEQUENCE:0
  • #EXT-X-TARGETDURATION:10
  • #EXTINF:10,
  • Exemplaire_A_segment-01.ts
  • #EXTINF:10,
  • Exemplaire_A_segment-02.ts

Le m3u8 ci-dessus comporte deux segments vidéo de 10 secondes chacun, de sorte que la durée totale de la vidéo est de 20 secondes. La vidéo exemplaire A, qui est d'ailleurs une excellente vidéo, dure 20 secondes. Imaginons maintenant que nous ayons également :

  • Vidéo exemplaire B
  • #EXTM3U
  • #EXT-X-MEDIA-SEQUENCE:0
  • #EXT-X-TARGETDURATION:10
  • #EXTINF:10,
  • Exemplaire_B_segment-01.ts
  • #EXTINF:10,
  • Exemplaire_B_segment-02.ts

Disons également que nous savons qu'un téléspectateur particulier serait ravi de regarder une combinaison des deux vidéos, la vidéo B passant en premier et la vidéo A en second :

  • Superbe vidéo
  • #EXTM3U
  • #EXT-X-MEDIA-SEQUENCE:0
  • #EXT-X-TARGETDURATION:10
  • #EXTINF:10,
  • Exemplaire_B_segment-01.ts
  • #EXTINF:10,
  • Exemplaire_B_segment-02.ts
  • #EXT-X-DISCONTINUITÉ
  • #EXTINF:10,
  • Exemplaire_A_segment-01.ts
  • #EXTINF:10,
  • Exemplaire_A_segment-02.ts

Maintenant, instantanément, sans créer d'actifs permanents devant être stockés à l'origine, et sans avoir fait appel à un éditeur pour créer un nouvel actif, nous avons généré une nouvelle vidéo pour l'utilisateur qui commence par la vidéo B suivie de la vidéo A. Comme si ce n'était pas assez cool, la vidéo sera lue de manière transparente comme s'il s'agissait d'une seule et même vidéo.

Vous avez peut-être remarqué un petit ajout au m3u8 :

EXT-X-DISCONTINUITÉ

En plaçant cette balise dans le m3u8, le lecteur s'attend à ce que le segment vidéo suivant ait une résolution différente ou un profil audio différent du précédent. Si les vidéos sont toutes encodées avec la même résolution, les mêmes codecs et les mêmes profils, cette balise peut être omise.

Extension du nouveau modèle

Pour qu'une plate-forme vidéo soit capable de fournir des expériences de lecture personnalisées à la volée, il faut traiter le manifeste m3u8 non pas comme un actif fixe, mais comme quelque chose qui doit être généré à chaque demande. Cela signifie que le backend doit connaître l'emplacement de chaque segment vidéo, le nombre total de segments par élément et la durée de chaque segment.

Il existe des moyens de simplifier ce processus. Par exemple, en nommant les fichiers de manière cohérente, seul le nom du fichier de base doit être connu pour tous les segments, et l'itération des segments peut être gérée de manière programmatique. On peut supposer que tous les segments, à l'exception du segment final, auront la même durée cible, de sorte que seule la durée du segment final doit être stockée. Ainsi, pour un fichier vidéo unique comportant de nombreux segments vidéo, il suffit de stocker le chemin de base, le nom du fichier de base, le nombre de segments, la durée moyenne du segment et la durée du dernier segment.

En considérant même les titres de longue durée comme une combinaison de scènes, ou même plus loin, en considérant les scènes comme une combinaison de plans, il y a une quantité incroyable de puissance qui peut être débloquée par la génération de manifestes dynamiques. Si elle est planifiée et mise en place dès le début, l'architecture de la plateforme de diffusion peut atteindre une grande flexibilité sans augmentation subséquente des coûts opérationnels ou d'infrastructure.

COMMENT LA TECHNOLOGIE AVID A PERMIS DE CRÉER DES FONCTIONS ÉDUCATIVES PERSONNALISÉES

Il est toujours intéressant de découvrir comment les clients de Brightcove utilisent notre technologie et tirent des avantages mesurables de leurs implémentations. Il était particulièrement intéressant d'en savoir plus sur la façon dont Avid Technology utilise Brightcove, car notre monde est intrinsèquement lié au leur. Alors que nous aidons nos clients à diffuser et à gérer du contenu vidéo en ligne, Avid est souvent l'outil créatif utilisé dans le processus de développement vidéo.

Avid, une autre société basée dans le Massachusetts, est spécialisée dans les technologies de production vidéo et audio, et plus particulièrement dans les systèmes de montage numérique non linéaire, ainsi que dans les services de gestion et de distribution. Les professionnels de la création, d'Hollywood à Madison Avenue, s'appuient sur la gamme de produits Avid pour répondre à leurs besoins en matière de narration visuelle. Depuis le lancement d'Avid en 1987, ses innovations technologiques lui ont valu des centaines de récompenses, dont deux Oscars, un Grammy et 14 Emmys. L'entreprise jouit assurément d'une "crédibilité vidéo".

Qu'est-ce qui a conduit Avid à Brightcove ? Bien qu'Avid soit un expert en matière de développement vidéo, il a recherché une expertise externe pour les meilleures pratiques de distribution vidéo. Notre étude de cas client aborde la relation Avid/Brightcove plus en détail, mais nous souhaitions profiter de ce billet pour en donner un bref aperçu.

Le chemin d'Avid vers la vidéo en ligne remonte essentiellement au printemps 2010, lorsque l'entreprise a commencé à étudier les options de diffusion en direct sur le web, y compris la vidéo. Au final, Avid a mis au point une solution de webdiffusion bricolée, basée sur Flash, qui intégrait à la fois le chat et la vidéo pour une expérience interactive. Forte de ces connaissances, l'entreprise a commencé à rechercher des plates-formes vidéo en ligne qui offriraient des capacités supplémentaires de visionnage à la demande et l'aideraient à développer des fonctionnalités vidéo éducatives supplémentaires à l'avenir.

En mars 2012, Avid a choisi Brightcove comme plate-forme vidéo en ligne. Depuis, l'entreprise a intégré la vidéo dans ses offres d'aide sur le site Web, en dirigeant les utilisateurs vers le contenu vidéo du didacticiel lorsqu'ils travaillent dans le logiciel Avid et qu'une question se pose. Actuellement, l'équipe d'Avid travaille à la migration de ses actifs marketing de contenu vidéo vers Video Cloud afin qu'ils puissent être facilement organisés et gérés, ainsi qu'optimisés pour les appareils mobiles. À l'avenir, Avid prévoit de tirer parti de Brightcove pour améliorer le référencement des vidéos et ajouter du contenu généré par les utilisateurs sur son site Web.

PUMA STIMULE L'ENGAGEMENT DE SES CLIENTS GRÂCE À LA VIDÉO EN LIGNE

Nous avons longuement écrit sur le rôle que joue la vidéo en ligne dans l'écosystème du marketing de contenu en aidant les marques à établir des relations durables avec leurs clients. PUMA, l'une des marques de chaussures et de vêtements les plus connues au monde, est un excellent exemple d'un spécialiste du marketing qui a compris le pouvoir de la vidéo et la façon dont elle contribue à accroître l'engagement des clients.

PUMA produit et publie un large éventail de contenus vidéo dans le monde entier pour soutenir ses produits, mais aussi pour faire voyager ses clients. Bien que PUMA soit connue pour ses produits de pointe, sa marque prend vie grâce au contexte dans lequel l'entreprise place ses produits et au style de vie que la marque représente. PUMA considère la vidéo comme une opportunité d'engagement et un moyen de diriger les clients vers une expérience multi-écrans spécifique à la cadence.

Cette stratégie a été mise à profit lors des Jeux olympiques de Londres en 2012, où PUMA a créé un environnement de marque complet avec lequel ses clients ont pu interagir en personne et à distance grâce à un contenu vidéo en direct, avec des événements et un contenu programmés autour du sprinter jamaïcain Usain Bolt, sponsorisé par PUMA, et de ses performances épiques dans les 100 et 200 mètres.

Nous avons récemment rencontré Jay Basnight, responsable de la stratégie numérique chez PUMA, pour en savoir plus sur la stratégie vidéo de l'entreprise et l'impact de la vidéo sur l'engagement. Jay parle en détail de l'importance de la vidéo et de la façon dont PUMA mesure le succès, ainsi que de la façon dont la société utilise la plate-forme vidéo Brightcove pour soutenir ses efforts vidéo dans le monde entier.

UTILISATION DE L'API DE MASSE DE SALESFORCE ET DES CODES APEX AVEC BRIGHTCOVE

Chez Brightcove, nous utilisons Salesforce pour gérer les informations relatives à nos clients. Nos équipes de vente, de gestion des comptes, d'assistance et de finance l'utilisent également pour diverses activités telles que la prise de contact avec des prospects, le suivi des cas d'assistance et la génération de rapports d'utilisation. Il est important pour notre entreprise de continuer à alimenter Salesforce en données clients de manière opportune et fiable.

Le modèle de données de nos produits prend en charge une relation de plusieurs à plusieurs entre les utilisateurs et les comptes. Un objet compte représente une organisation ou un département au sein d'une grande organisation, et un objet utilisateur représente une personne qui travaille pour une ou plusieurs organisations. Dans Salesforce, nous personnalisons l'objet Contact intégré pour représenter chaque utilisateur des services Brightcove et nous définissons un objet personnalisé appelé BCAccount pour représenter un compte (voir figure 1).

Figure 1

Figure 1. Modèle de données dans le service Brightcove et Salesforce

Il y a plusieurs années, nous avons développé la fonction de synchronisation des données en utilisant l'API SOAP de Salesforce et quartz, et nous avons constaté quelques problèmes avec cette implémentation. Il y a deux difficultés majeures :

  • Il est trop bavard, ce qui le rend lent. Seuls 700 objets peuvent être synchronisés avec Salesforce par heure.
  • Il faut beaucoup d'efforts pour apporter des modifications au modèle de données. Pour ajouter un nouveau champ à un objet, nous devons exporter un nouveau fichier WSDL depuis Salesforce et générer des classes Java à partir du fichier WSDL.

À la lumière de ces difficultés, nous avons décidé de construire un nouveau système de synchronisation en utilisant l'API en vrac de Salesforce et le code Apex. La nouvelle implémentation se compose d'un moteur de poussée de données appelé RedLine et d'un ensemble de classes Apex Salesforce pour traiter les données en vrac poussées depuis RedLine.

Figure 2

Figure 2. Synchronisation des nouvelles données

RedLine est construit à l'aide de Sinatra, un serveur Web Ruby léger, en tant que service autonome indépendant des autres services Brightcove. RedLine utilise le planificateur rufus pour interroger périodiquement les créations, mises à jour et suppressions d'objets de Brightcove via les API RESTful. RedLine transforme ensuite la réponse JSON en CSV et l'envoie à Salesforce en tant que demande groupée. Salesforce a une limite de 10 000 objets par demande groupée, ce qui est suffisant pour notre utilisation. Étant donné que la demande groupée est traitée de manière asynchrone dans Salesforce, ni les services Brightcove ni RedLine n'ont besoin d'attendre après l'envoi des données à Salesforce.

Nous avons écrit quelques classes Apex pour traiter les demandes en masse, notamment en adaptant les objets utilisateur et compte aux objets Salesforce, puis nous avons déployé les classes Apex dans Salesforce et programmé des tâches Apex par lots pour exécuter ces classes une fois que les données arrivent sous forme de demande en masse. Ainsi, aucun code n'existe dans les services Brightcove pour le modèle de données Salesforce et seul le code Apex de Salesforce doit traiter le modèle de données Salesforce. Salesforce fournit un ensemble d'outils de surveillance pour les requêtes en masse et les tâches par lots Apex.

S'il y a des erreurs pendant le traitement d'une demande groupée, nous pouvons facilement les voir dans l'interface Web de Salesforce. Nous avons également déployé une classe Apex qui s'exécute périodiquement pour vérifier si une demande groupée arrive à la fréquence prévue et qui émet une alerte si une demande n'est pas arrivée depuis un certain temps.

Dans le nouveau système de synchronisation, pour publier une modification des nouveaux champs de l'objet utilisateur ou compte, il suffit d'ajouter les nouveaux champs dans l'objet personnalisé Salesforce, puis d'exposer les nouveaux champs dans la réponse JSON de l'API du service Brightcove. Nous n'avons pas besoin de modifier ou de redémarrer RedLine pour modifier le format de l'objet, car RedLine est suffisamment intelligent pour convertir les nouveaux champs JSON en nouvelles colonnes CSV dans les requêtes en masse.

Quatre modifications ont été apportées aux objets "compte" et une aux objets "utilisateur", et nous n'avons pas eu à modifier une ligne de code RedLine pour ces changements. Avec l'ancien système de synchronisation basé sur l'API SOAP, il nous fallait une à deux semaines pour synchroniser un nouveau champ pour les objets utilisateurs ou comptes.

Après avoir fait fonctionner cette nouvelle application de synchronisation en production pendant 8 mois, nous l'avons vue gérer quelques changements de données en rafale avec élégance. Récemment, un lot de 900 comptes a été modifié au cours d'un déploiement, et tous ont été synchronisés avec Salesforce en moins d'une minute (la plupart du temps, les classes Apex s'exécutaient dans Salesforce). Dans l'ancien système de synchronisation, il fallait plus d'une heure pour synchroniser le même nombre d'objets.

UTILISATION DU MOTEUR DE CALCUL DE GOOGLE POUR LE TRANSCODAGE VIDÉO

Pour ceux d'entre nous qui travaillent dans le monde de l'informatique en nuage, la chose la plus excitante qui est ressortie de la conférence Google I/O en 2012 n'était pas des parachutistes portant des Glass, ni une nouvelle tablette. La grande nouvelle, c'est que Google se lance dans l'infrastructure en nuage en tant que service, actuellement dominée par Amazon Web Services (AWS). Plus précisément, Google a lancé un nouveau service appelé Google Compute Engine pour concurrencer Amazon EC2.

C'est passionnant. Le monde a besoin d'un autre service de machines virtuelles en nuage robuste, performant et bien conçu. Avec toutes nos excuses à Rackspace et à d'autres, il s'agit depuis longtemps d'un espace à un seul joueur - EC2 est de loin le leader. Google possède manifestement l'expertise et l'envergure nécessaires pour devenir un concurrent sérieux, s'il s'y tient.

Comment cela se présente-t-il ? Les premiers rapports sont positifs. Google Compute Engine (GCE) est bien conçu, bien exécuté et basé sur une infrastructure que Google utilise depuis des années. Les performances sont bonnes, notamment en ce qui concerne les entrées/sorties de disque, les temps de démarrage et la cohérence, qui n'ont jamais été le point fort d'EC2. Mais dans quelle mesure GCE est-il adapté au transcodage vidéo en nuage ? Nous disposons de quelques résultats préliminaires, tout en reconnaissant que d'autres tests doivent être effectués. Voici quelques tests de base de transcodage vidéo et de transfert de fichiers à l'aide du logiciel Zencoder sur GCE et EC2.

Vitesse de transcodage des données brutes

La performance est notre priorité absolue, c'est pourquoi Zencoder utilise les serveurs les plus rapides que nous puissions trouver. Sur EC2, nous utilisons des instances Cluster Compute, qui sont des machines rapides à double CPU en deux tailles : 4XL et 8XL. Nous les avons comparées au type d'instance GCE le plus rapide, qui est actuellement un serveur mono-CPU à 8 cœurs.

ServeurUNITÉ CENTRALE
GCE 8-coreIntel Xeon (Sandy Bridge - probablement E5-2670) - 8 cœurs à 2,60 GHz
EC2 cc1.4xlargeDouble Intel Xeon X5570 - 8 cœurs à 2,93 GHz/cœur
EC2 cc2.8xlargeDouble Intel Xeon E5-2670 - 16 cœurs à 2,60 GHz/cœur

Ces tests ont été effectués à l'aide d'une vidéo source H.264 aux résolutions 640×360 et 1280×720, et ont été encodés par Zencoder en utilisant les mêmes paramètres de transcodage de sortie en un seul passage (profil H.264 Baseline, AAC, transcodage de qualité constante en un seul passage, etc.)

Google Compute Engine vs. Amazon EC2

ServeurRésolutionEncodages simultanésTemps (secondes)Coût par millier
EC2 cc1.4xlarge640×360615.87$0.96
EC2 cc2.8xlarge640×36069.93$1.10
GCE 8-core640×360621.05$1.13
GCE 8-core640×36016.01$1.94
EC2 cc1.4xlarge640×36015.96$2.15
EC2 cc1.4xlarge1280×720648.58$2.92
EC2 cc2.8xlarge640×36014.99$3.33
EC2 cc2.8xlarge1280×720630.74$3.42
GCE 8-core1280×720668.15$3.66
EC2 cc1.4xlarge1280×720112.89$4.65
GCE 8-core1280×720116.01$5.16
EC2 cc2.8xlarge1280×720110.92$7.28

En utilisant les paramètres par défaut de Zencoder, les deux types d'instances EC2 sont plus rapides que GCE. Les résultats économiques sont un peu plus proches, et il n'y a pas de gagnant clair entre les instances EC2 4XL et GCE. Le GCE est donc une option viable pour le transcodage lorsque le coût est plus important que la vitesse brute, bien que les clients d'AWS puissent utiliser les instances réservées et les instances Spot pour réduire davantage les coûts. Nous avons remarqué que les instances EC2 à 16 cœurs étaient environ deux fois plus rapides que les instances GCE à 8 cœurs lorsqu'elles étaient chargées avec 6 transcodes simultanés.

Étant donné que les vitesses d'horloge sont similaires, mais que le nombre de cœurs est deux fois moins élevé, c'est ce à quoi on peut s'attendre. Toutefois, si Google ajoute des machines similaires à 16 cœurs, les vitesses de transcodage pourraient être comparables.

Vitesses de transfert

Lors du transcodage vidéo dans le nuage, les E/S réseau sont presque aussi importantes que l'unité centrale. C'est particulièrement vrai pour les clients qui travaillent avec du contenu à haut débit (diffuseurs, studios et créateurs). Comment les vitesses de transfert de GCE se comparent-elles à celles d'EC2 ? Pour le savoir, nous avons effectué quatre séries de tests de référence :

  • Amazon S3 vers Amazon EC2
  • Amazon S3 vers Google Compute Engine
  • Google Cloud Storage vers Amazon EC2
  • Google Cloud Storage vers Google Compute Engine

Pour ce faire, nous avons testé le même fichier vidéo de 1 Go stocké sur Google Cloud Storage (GCS) et sur Amazon S3. Le transfert a été effectué à l'aide de 10 connexions HTTP (Zencoder procède ainsi par défaut pour optimiser les vitesses de transfert, ce qui permet d'accélérer considérablement les transferts de fichiers volumineux par HTTP).

Vitesses de transfert GCE vs EC2

 Vitesse de transfert (Mbps)Largeur de bande du serveur
S3 à GCE470.961 Gbps
S3 vers EC2 c1.xlarge644.291 Gbps
S3 vers EC2 cc2.8xlarge1458.3210 Gbps
GCS à GCE202.601 Gbps
GCS vers EC2 c1.xlarge378.281 Gbps
GCS vers EC2 cc2.8xlarge641.3410 Gbps

C'est intéressant. Nous nous attendions à ce que le transfert d'Amazon à Amazon soit rapide, et il l'a été. Mais nous nous attendions également à ce que le transfert de Google à Google soit rapide, ce qui n'a pas été le cas. En fait, il semble que GCS soit plus lent que S3, et que le transfert GCE soit plus lent qu'EC2, de sorte que même si vous utilisez Google pour le calcul, il est préférable d'utiliser S3 pour le stockage. Le transfert a été 2,3 fois plus rapide de S3 à GCE que de GCS à GCE.

D'autres tests sont nécessaires

Considérez ces résultats comme préliminaires. D'autres tests doivent être effectués pour tenir compte d'un plus grand nombre de variables.

  • Différences d'une instance à l'autre. C'est particulièrement vrai pour le transfert de fichiers, qui peut varier considérablement en fonction des conditions du réseau et de la variabilité des instances.
  • Applications supplémentaires. Ces tests ne couvrent que le transcodage, qui est un test lié à l'unité centrale. Les autres applications sont limitées par le disque, la mémoire, etc., et ces tests ne concernent rien d'autre que le transcodage.
  • Évolutivité. L'évolutivité est extrêmement importante pour quiconque utilise le cloud pour le transcodage vidéo. D'autres tests sont nécessaires pour comparer GCE à EC2 lorsqu'il s'agit d'une échelle énorme - des dizaines de milliers de serveurs (ou plus). À quel moment les utilisateurs rencontrent-ils des problèmes de capacité ? Des problèmes de performance ? Limites de conception ? L'instabilité ?

L'avenir de l'infrastructure en nuage

Même si EC2 l'emporte dans ces premiers tests, nous sommes enthousiastes à propos de Google Compute Engine. Pour devenir un concurrent sérieux dans le domaine du transcodage haute performance, Google doit ajouter des instances plus importantes dotées d'unités centrales plus rapides. Mais il est facile d'ajouter de nouveaux types d'instances. Rien n'empêche Google de le faire. Ce qui est difficile, c'est de construire une plateforme en nuage robuste, performante, complète et évolutive, et Google semble y être parvenu. Si Google s'engage à long terme en faveur de ce produit et de ses développeurs, le monde de la virtualisation en nuage vient peut-être de se doter d'un deuxième acteur légitime.

SOUS-TITRAGE POUR LE WEB, LES MOBILES ET LA TV CONNECTÉE

Le sous-titrage est une bonne chose pour l'accessibilité et la facilité d'utilisation, et constitue une nouvelle étape dans la marche vers la maturité de la vidéo sur internet. Malheureusement, le sous-titrage n'est pas une technologie ou une "fonctionnalité" unique de la vidéo qui peut être "activée". Il existe un certain nombre de formats, de normes et d'approches.

Le sous-titrage est une sorte de désordre, tout comme le reste de la vidéo numérique, et représente un défi particulier pour les éditeurs multi-écrans. Si vous souhaitez publier aujourd'hui des vidéos pour le web, la téléphonie mobile et la télévision connectée, que devez-vous savoir sur le sous-titrage ?

Cet article présente les principes de base : le fonctionnement des sous-titres codés, les formats à connaître et la manière d'activer les sous-titres codés pour chaque écran.

Fonctionnement des sous-titres codés

La première chose à comprendre est la manière dont les sous-titres codés sont fournis, stockés et lus. Il existe aujourd'hui deux approches principales.

  • Incorporé dans une vidéo. CEA-608, CEA-708, DVB-T, DVB-S, WST. Ces formats de sous-titres sont écrits directement dans un fichier vidéo, soit sous forme de piste de données, soit intégrés dans le flux vidéo lui-même. La télévision de radiodiffusion utilise cette approche, tout comme iOS.
  • Stocké dans un fichier séparé. DFXP, SAMI, SMPTE-TT, TTML, EBU-TT (XML), WebVTT, SRT (texte), SCC, EBU-STL (binaire). Ces formats transmettent les informations sur les sous-titres à un lecteur en même temps que la vidéo, plutôt que de les intégrer dans la vidéo elle-même. Cette approche est généralement utilisée pour la lecture vidéo par navigateur.

Différences entre sous-titres et sous-titres codés

Qu'en est-il des sous-titres ? S'agit-il de la même chose que les sous-titres codés ? Il existe trois grandes différences.

  • Objectifs. Les sous-titres codés sont une fonctionnalité d'accessibilité, rendant la vidéo accessible aux malentendants, et peuvent inclure des indices sur la personne qui parle ou sur les sons qui se produisent : par exemple, "On frappe à la porte". Les sous-titres sont une fonctionnalité d'internationalisation, qui rend la vidéo accessible aux personnes qui ne comprennent pas la langue parlée. En d'autres termes, vous utiliserez les sous-titres pour regarder une vidéo en sourdine, et vous utiliserez les sous-titres pour regarder une vidéo dans une langue que vous ne comprenez pas. Remarque : cette distinction est valable en Amérique du Nord, mais la plupart des pays du monde ne font pas de distinction entre les sous-titres et les sous-titres codés.

  • Stockage. Historiquement, les sous-titres ont été intégrés dans la vidéo et les sous-titres ont été stockés à l'extérieur (voir CEA-608 ci-dessous). Cela a du sens d'un point de vue conceptuel, car les sous-titres doivent toujours être fournis avec une vidéo ; l'accessibilité à 100 % pour les malentendants est imposée par la législation. En revanche, les sous-titres ne sont nécessaires qu'occasionnellement; une vidéo en langue allemande diffusée en Allemagne n'a pas besoin d'être sous-titrée en allemand, alors que la même vidéo diffusée en France devrait l'être.

  • Lecture. Étant donné que les sous-titres sont transmis avec la vidéo et interprétés/affichés par un téléviseur ou un autre appareil grand public, les téléspectateurs peuvent les activer et les désactiver à tout moment à l'aide du téléviseur lui-même, mais ils disposent rarement d'options pour sélectionner une langue. Dans ces situations, lorsque des sous-titres sont ajoutés à des fins de traduction, il s'agit généralement de sous-titres en dur (voir ci-dessous) qui ne peuvent donc pas être désactivés. Toutefois, lors du visionnage d'un DVD/Blue-Ray/VOD, l'appareil de lecture contrôle l'affichage des sous-titres et la langue dans laquelle ils sont affichés.

Formats et normes

Il existe des dizaines de formats et de normes pour le sous-titrage codé et les sous-titres. Voici un aperçu des plus importants pour la vidéo sur internet.

  • CEA-608. Également appelés Line 21, les sous-titres CEA-608 constituent la norme NTSC, utilisée par la télévision analogique aux États-Unis et au Canada. Les sous-titres de la ligne 21 sont encodés directement dans une zone cachée du flux vidéo par les dispositifs de diffusion. Si vous avez déjà vu des barres et des points blancs en haut d'un programme, il s'agit du sous-titrage de la ligne 21.
  • SCC. Ce fichier contient des sous-titres au format Scenarist Closed Caption. Il contient des timecodes SMTPE avec les données de légende encodées correspondantes en tant que représentation des données CEA-608.
  • CEA-708. Il s'agit de la norme de sous-titrage pour les flux de télévision numérique ATSC (DTV) aux États-Unis et au Canada. Il n'existe actuellement aucun format de fichier standard pour stocker les sous-titres CEA-708 en dehors d'un flux vidéo.
  • TTML. Le TTML (Timed Text Markup Language) décrit la synchronisation du texte et d'autres médias tels que l'audio ou la vidéo. Voir la recommandation TTML du W3C pour plus d'informations.
  • DFXP. Il s'agit d'un profil de TTML défini par le W3C. Les fichiers DFXP contiennent du TTML qui définit quand et comment afficher les données de légende. DFXP est l'abréviation de Distribution Format Exchange Profile (profil d'échange de format de distribution). DFXP et TTML sont souvent utilisés comme synonymes.
  • SMPTE-TT. La Society of Motion Picture and Television Engineers - Timed Text est une extension du profil DFXP qui prend en charge trois extensions présentes dans d'autres formats de sous-titrage et éléments d'information, mais pas dans DFXP : #data, #image et #information. SMPTE-TT est également le format Safe Harbor de la FCC. Si un producteur de contenu vidéo fournit des sous-titres dans ce format à un distributeur, il s'est acquitté de son obligation de fournir des sous-titres dans un format accessible. Toutefois, les producteurs de contenu vidéo et les distributeurs sont libres de convenir d'un format différent.
  • SAMI. Synchronized Accessible Media Interchange est basé sur HTML et a été développé par Microsoft pour des produits tels que Microsoft Encarta Encyclopedia et Windows Media Player. SAMI est pris en charge par un certain nombre de lecteurs vidéo de bureau.
  • EBU-STL. Il s'agit d'un format binaire utilisé par la norme UER, stocké dans des fichiers .STL séparés.
  • EBU-TT. Il s'agit d'un format plus récent soutenu par l'UER, basé sur TTML. L'EBU-TT est un sous-ensemble strict du TTML, ce qui signifie que les documents EBU-TT sont des documents TTML valides, mais que certains documents TTML ne sont pas des documents EBU-TT valides parce qu'ils incluent des caractéristiques non prises en charge par l'EBU-TT.
  • SRT. Il s'agit d'un format créé par SubRip, un outil open source basé sur Windows qui permet d'extraire des sous-titres d'une vidéo. SRT est largement pris en charge par les lecteurs vidéo de bureau.
  • WebVTT. Il s'agit d'un format de texte similaire à SRT. Le groupe de travail sur la technologie de l'application hypertexte du Web (WHATWG) a proposé WebVTT comme norme pour le sous-titrage vidéo HTML5.
  • Sous-titres difficiles à lire (hard subtitles). Par définition, les sous-titres en dur ne sont pas des sous-titres codés. Les sous-titres en dur sont des textes superposés qui sont encodés dans la vidéo elle-même, de sorte qu'ils ne peuvent pas être activés ou désactivés, contrairement aux sous-titres codés ou aux sous-titres non codés. Dans la mesure du possible, il est généralement préférable d'opter pour des sous-titres logiciels ou des sous-titres codés, mais les sous-titres en dur peuvent être utiles lorsqu'ils sont destinés à un appareil ou à un lecteur qui ne prend pas en charge les sous-titres codés.

Le sous-titrage pour tous les appareils

Quels formats sont utilisés par quels appareils et quels acteurs ?

  • HTML5. Les sous-titres ne sont pas encore largement pris en charge par les navigateurs, mais cela changera avec le temps. Il existe deux normes concurrentes : TTML, proposée par le W3C, et WebVTT, proposée par le WHATWG. À l'heure actuelle, Chrome offre une prise en charge limitée de WebVTT ; Safari, Firefox et Opera travaillent tous à la prise en charge de WebVTT ; et Internet Explorer 10 prend en charge à la fois WebVTT et TTML. En attendant que les navigateurs prennent en charge un format de manière native, un lecteur HTML5 comme Video.js peut prendre en charge les sous-titres par le biais de Javascript, en analysant un fichier externe (Video.js prend actuellement en charge les sous-titres WebVTT).
  • iOS. Apple adopte une approche différente et utilise les sous-titres CEA-608 à l'aide d'une version modifiée de l'encodage CEA-708/ATSC. Cela signifie que, contrairement à HTML5, les sous-titres doivent être ajoutés au moment du transcodage. Brightcove Zencoder peut ajouter des sous-titres aux vidéos HTTP Live Streaming pour iOS.
  • Android. La prise en charge des lecteurs vidéo est encore fragmentée et problématique. La prise en charge des légendes dépendra évidemment de la version du système d'exploitation et du lecteur utilisé.
  • Autres appareils mobiles. Certains ne prennent pas du tout en charge les sous-titres codés, et les sous-titres en dur peuvent être la seule option.
  • Roku. Prise en charge des sous-titres par le biais de fichiers SRT externes.
  • Autres plateformes de télévision connectée. Certaines ne prennent pas encore en charge le sous-titrage. Mais cela ne saurait tarder. Tous les téléviseurs, consoles, boîtiers de câblodistribution et lecteurs Blu-Ray disponibles sur le marché aujourd'hui veulent diffuser du contenu internet en continu et, d'ici un an et demi, le sous-titrage deviendra une obligation. Sony, Samsung, Vizio, Google TV, etc. finiront donc par intégrer la prise en charge des sous-titres dans leurs cadres de développement d'applications. Malheureusement, les formats utilisés ne sont pas encore clairs. Il est fort probable que les différentes plateformes continueront à prendre en charge une variété de formats incompatibles pendant de nombreuses années.

Exigences en matière de sous-titrage codé

Le paysage du sous-titrage évoluera et se développera au fil du temps, mais en 2012, voici les exigences les plus courantes pour la prise en charge du sous-titrage sur les appareils les plus courants.

  • Un lecteur web avec des commandes côté lecteur pour activer et désactiver le sous-titrage.
  • Un fichier externe contenant des données de sous-titrage, probablement dans un format tel que WebVTT, TTML ou SRT. Plusieurs fichiers peuvent être nécessaires (par exemple, SRT pour Roku et WebVTT pour HTML5).
  • Un transcodeur qui prend en charge les sous-titres intégrés pour la diffusion en direct HTTP sur iPad/iPhone, comme Zencoder. Zencoder peut accepter des informations de sous-titrage dans une variété de formats, y compris TTML, de sorte que les éditeurs pourraient utiliser un seul fichier TTML pour la lecture sur le web et comme entrée dans Zencoder pour la vidéo iOS.

Au-delà, les choses se compliquent. D'autres formats d'entrée peuvent être nécessaires pour d'autres appareils, et des sous-titres en dur sont probablement nécessaires pour assurer une compatibilité totale avec les appareils existants.

Zencoder et sous-titres Brightcove

Brightcove Zencoder prend en charge le sous-titrage pour deux formats : Les sous-titres de style CEA-608 pour les appareils iOS utilisant HLS, et les fichiers MP4 avec les pistes de sous-titres CEA-608. Du côté de l'entrée, nous prenons en charge les pistes de sous-titres SCC, SAMI, DFXP/TTML/SMPTE-TT et CEA-608 dans les fichiers MP4.

Jusqu'à présent, nous avons choisi de nous concentrer sur les sous-titres intégrés, car ces formats sont ajoutés aux fichiers vidéo au moment du transcodage. Ainsi, si nous ne prenions pas en charge le sous-titrage pour l'iPad ou l'iPhone, nos clients publiant sur ces appareils ne pourraient pas utiliser les sous-titres codés. À l'avenir, nous élargirons la gamme des formats de sous-titres que nous acceptons et nous pourrons proposer des services tels que la conversion de format pour les fichiers de sous-titres externes (par exemple, TTML vers WebVTT).

En attendant, avec un seul fichier de sous-titres et le bon lecteur HTML5, les clients de Brightcove ont tout ce qu'il faut pour créer des vidéos sous-titrées pour le Web, les mobiles et les périphériques TV connectés.

APP CLOUD : RAPPORT D'EXPÉRIENCE D'UN DÉVELOPPEUR WEB

Au cours de mes 13 années d'expérience en tant que développeur et concepteur de sites web, je me suis adapté sans effort aux nouvelles technologies, en commençant par Java, puis PHP, et plus tard Ruby. Pendant longtemps, j'ai été immergé dans le "Flash steamer", explorant les principales bibliothèques d'interface utilisateur telles que Prototype et jQuery tout en restant au fait de l'évolution rapide des normes web.

Cependant, comme beaucoup de développeurs web, je n'ai pas franchi le pas vers les applications mobiles. Je manquais d'expérience dans les langages de bas niveau comme C++ ou Objective-C et je n'avais pas le temps de les apprendre. L'idée de créer de "petites" applications en Java - un langage que je trouvais volumineux et extensif - ne m'attirait pas non plus.

J'ai exploré plusieurs outils de développement multiplateforme, mais ils n'ont jamais répondu à mes attentes :

  • Les "usines" d'applications qui intègrent les flux RSS dans des modèles préconstruits créent des applications génériques et peu inspirées.
  • Les cadres convertissant JavaScript ou ActionScript en code natif nécessitaient des chaînes d'outils complexes pour la création et la compilation des applications.
  • Les cadres qui enveloppent les pages web dans des coquilles natives offrent peu d'infrastructures pour le déploiement d'applications basées sur les données dans des environnements de production.

Lorsque j'ai découvert App Cloud, un cadre de travail permettant de créer des applications mobiles natives à l'aide de HTML, CSS et JavaScript, j'étais sceptique. Serait-il différent des autres ? Pouvait-il tenir ses promesses ? Après avoir développé ma première application, je peux dire en toute confiance que la réponse est "Oui !". Voici pourquoi.

APP CLOUD PARLE LE LANGAGE DES DÉVELOPPEURS

App Cloud s'appuie sur les compétences de base des développeurs web : HTML pour structurer le contenu, CSS pour le mettre en forme et JavaScript pour le modifier. Il n'est pas nécessaire d'apprendre de nouveaux langages pour créer des applications riches et axées sur le contenu. Les technologies web ont toujours excellé par leur simplicité. Comparez la complexité de la création d'un tableau dans iOS à la facilité de création d'une liste HTML de base : c'est sans appel !

Le SDK d'App Cloud prend également en charge presque toutes les bibliothèques JavaScript, ce qui me permet d'appliquer les astuces que j'ai apprises au cours de mes années de développement web.

SUR LA VOIE RAPIDE AVEC APP CLOUD

Je passe fréquemment de BBEdit à vim lorsque je code, car ce sont les outils qui me conviennent le mieux. App Cloud me permet de continuer à utiliser ces éditeurs familiers. Comme il s'appuie sur des technologies web standard, je peux également déboguer et tester mon code avec Chrome Developer Tools. Contrairement aux systèmes encombrants liés à XCode ou Eclipse, App Cloud offre flexibilité et liberté.

L'ITÉRATION RAPIDE AVEC L'APPLICATION DE L'ATELIER

L'application d'atelier App Cloud pour iOS et Android permet d'effectuer des tests en temps réel pendant le développement. Après avoir apporté des modifications au code, il me suffit de cliquer sur "Rafraîchir" pour voir immédiatement les mises à jour. Pour les développeurs web habitués aux processus itératifs (coder, rafraîchir, répéter), cette fonctionnalité est inestimable.

Bien que de nombreux tests puissent être effectués sur des navigateurs de bureau, rien ne vaut l'observation des performances d'une application sur des appareils réels. L'application Atelier permet de le faire facilement et en toute transparence.

TIRER PARTI DES CARACTÉRISTIQUES PROPRES À L'APPAREIL

App Cloud propose une API JavaScript simple pour accéder aux fonctionnalités propres à l'appareil, telles que l'appareil photo ou la photothèque. Par exemple, scanner un code QR est aussi simple que :

bc.device.getQRCode(
function (data) { /* handle success */ },
function (error) { bc.device.alert("Oops! " + error.errorMessage); }
);

COMPILATION SIMPLIFIÉE DES APPLICATIONS

La compilation d'applications avec d'autres outils, comme les kits de développement Android, s'apparente souvent au montage d'un meuble IKEA : fastidieux et frustrant. Avec App Cloud Studio, les applications sont compilées dans le nuage en quelques clics. En quelques minutes, l'application est prête à être téléchargée et déployée sur les différents magasins d'applications, sans nécessiter d'outils particuliers.

OPTIMISATION DU CONTENU : MOINS, C'EST MIEUX

Dans les applications axées sur le contenu, le contenu lui-même est souvent le goulot d'étranglement. App Cloud optimise les performances en :

  • Suppression des données inutiles, compression des flux et mise en cache du contenu. Par exemple, le flux de mon blog est passé de 39 Ko à 4 Ko, soit une réduction de 90 %.
  • Transcodage des images pour réduire la taille des fichiers. Une image est passée de 125 Ko à 425 pixels de large à 8 Ko à 200 pixels de large, soit une réduction de 94 %.

Ces optimisations améliorent considérablement les temps de chargement, qui sont essentiels à l'engagement des utilisateurs.

LA FLEXIBILITÉ AU-DELÀ DU DÉPLOIEMENT

Contrairement à d'autres outils, App Cloud Studio me permet de modifier les données, la conception et les paramètres après le déploiement, sans qu'il soit nécessaire de recompiler ou de redistribuer l'application. Cette flexibilité me permet de créer plusieurs applications à partir d'un seul modèle en intervertissant les flux de données et en ajustant les paramètres.

LA COLLABORATION FACILITÉE

App Cloud facilite le partage des applications avec les collègues. Des captures d'écran peuvent être partagées directement à partir de l'application de l'atelier, ou des modèles peuvent être distribués via des URL ou des codes QR, ce qui permet une collaboration et des tests efficaces.

GESTION COMPLÈTE DE L'INFORMATIQUE EN NUAGE

App Cloud offre tout ce dont j'ai besoin pour gérer et monétiser les applications, de la diffusion de publicités natives à l'analyse en temps réel. Je peux suivre les installations, le temps d'utilisation et d'autres indicateurs clés.

En outre, App Cloud offre gratuitement des améliorations de performance et des mises à jour de fonctionnalités. Les améliorations futures, telles que les notifications push et les achats in-app, rendront la plateforme encore plus puissante.

App Cloud combine la simplicité du développement web avec la fonctionnalité des applications natives, ce qui en fait un outil indispensable pour les développeurs qui cherchent à créer des applications mobiles efficaces, évolutives et attrayantes.

PARAMÈTRES D'ENCODAGE POUR UNE VIDÉO IPAD/IPHONE PARFAITE

Tout éditeur vidéo sérieux prend déjà en charge l'iPad et l'iPhone ou doit réfléchir sérieusement à la possibilité de le faire. Pour certains grands éditeurs, la diffusion sur iPad représente un tiers du total des vidéos vues, voire plus.

L'encodage pour iOS est cependant un peu délicat. Ces appareils ont connu plusieurs générations de capacités techniques, et les paramètres vidéo idéaux pour l'iPhone 4 ne le sont pas pour l'iPhone 3GS ou l'iPad.

Heureusement, quelques profils d'encodage suffisent pour diffuser des vidéos de haute qualité sur tous les appareils iOS, du premier iPhone à l'iPad 2, et même pour préparer les futures générations d'appareils mobiles.

Paramètres généraux

Comme la plupart des vidéos actuelles, utilisez la vidéo h.264 et l'audio AAC lorsque vous ciblez iOS.

On the audio side, consider using HE-AAC at <64kbps, for App Store compliance. HE-AAC sounds reasonably good at these bitrates, even for complex audio.

En ce qui concerne la vidéo, utilisez plusieurs profils pour cibler chaque appareil. L'iPhone 3GS et les modèles antérieurs ne prennent en charge que le profil h.264 Baseline, niveau 3.0 (et certains prennent en charge une version plus limitée), tandis que les appareils plus récents prennent en charge les profils Main et High.

Pour une expérience utilisateur optimale, le HTTP Live Streaming (HLS) est indispensable. Apple l'exige pour toutes les applications vidéo de l'App Store qui diffusent des contenus de plus de 10 minutes, et c'est le seul véritable format de diffusion en continu pris en charge par iOS. Le HLS est également adopté par Android (version 3+), Roku et une série d'autres destinations.

Approche générale

RésolutionProfilBitrate@ 16:9@ 4:3AudioCommentaires
1024×768[email protected]2Mbps1024×5761024×76856kbps HE-AAC 
960×640[email protected]1.5Mbps960×540854×64056kbps HE-AAC 
640×432[email protected]1Mbps640×360576×43256kbps HE-AAC 
480×320[email protected]600kbps480×272426×32056kbps HE-AAC 
400×288[email protected]400kbps400×224384×28856kbps HE-AAC 
400×288[email protected]200kbps400×224384×28856kbps HE-AACdécimer le taux de rafraîchissement
N/A (Audio uniquement)    56kbps HE-AAC 

Pourquoi ces recommandations ?

  • Il ne s'agit que de recommandations. Des résolutions et des débits différents sont parfaitement valables et peuvent même être préférables dans certaines circonstances. Par exemple, un contenu extrêmement complexe peut justifier des débits binaires plus élevés.
  • 720p est la plus grande vidéo lisible sur l'iPad 1 et l'iPhone 4, et l'iPad 2/iPhone 4S lit tout ce qui va jusqu'à 1080p. Mais comme l'écran natif ne fait que 1024 pixels de large, il n'est pas indispensable d'aller jusqu'à 720p ou 1080p. Sauf, bien sûr, si vous souhaitez réutiliser une vidéo ailleurs - le 720p est une excellente résolution pour la lecture en plein écran sur le web, et le 1080p est tout à fait approprié pour les téléviseurs connectés. Selon les rumeurs, les futurs iPad auront une résolution quatre fois supérieure à celle de l'iPad actuel ; envisagez donc d'ajouter le 720p pour vous prémunir contre l'avenir.
  • Le profil h.264 est important. L'iPad 1 et l'iPhone 4 prennent tous deux en charge le profil principal. L'iPad 2/iPhone 4S prend en charge le profil High, qui est légèrement meilleur que le profil Main, mais étant donné le nombre d'appareils iPad 1 dans le monde, il est probablement préférable de s'en tenir au profil Main. Pour un ciblage optimal des appareils, il convient d'encoder à la fois en profil principal et en profil élevé.
  • Ces six résolutions et débits binaires permettent de couvrir assez bien les différentes bandes passantes. Vous pouvez certainement en faire plus, alors ajoutez ou soustrayez des résolutions et des profils à votre guise.
  • Les utilisateurs de l'ancien iPhone/iPod Touch disposeront de trois flux, dont une vidéo de qualité raisonnable 480×320 (la résolution de l'écran de ces appareils). Les utilisateurs de l'iPad et de l'iPhone 4 pourront utiliser les six flux.
  • L'échelle de résolution de l'iPad est assez bonne, de sorte que les vidéos qui sont redimensionnées ont généralement une bonne apparence.
  • Dans la mesure du possible, ces paramètres permettent de diviser les dimensions de la résolution par 16. Cela permet une compression plus efficace. Les gains d'efficacité sont faibles, en particulier pour les résolutions élevées, mais ils commencent à faire la différence pour les résolutions plus faibles.
  • Veillez à ce que l'audio soit identique sur chaque vidéo. Si les spécifications audio changent d'une version à l'autre, l'utilisateur peut entendre des bruits parasites et des clics pendant la lecture lorsqu'il passe d'un flux à l'autre.

Autres paramètres

  • Définissez la vitesse en fonction du délai d'exécution souhaité. Pour ces recommandations, nous allons utiliser la vitesse 2, qui améliore légèrement la compression par rapport à la ligne de base, mais reste raisonnablement rapide.
  • Veillez à ce que chaque segment soit à peu près de la même taille en utilisant un pic bitrate\_cap de 150% du débit cible, mais dans un délai long. buffer\_size (par exemple, cinq secondes, ou 5 fois la durée de la bitrate\_cap).
  • Brightcove choisit automatiquement l'emplacement des images clés lorsque vous définissez le type sur " segmenté ". Si vous encodez en MP4 pour une segmentation séparée en HLS, définissez forced\_keyframe\_rate à "0.2" ou "0.1" (pour des intervalles d'images clés de 5 ou 10 secondes, respectivement).
  • Si vous pouvez accepter des débits binaires légèrement imprévisibles, ajouter de la qualité au mixage et modifier les paramètres d'enregistrement, vous serez en mesure d'améliorer la qualité de l'enregistrement. video\_bitrate à max\_video\_bitrate pour optimiser la taille du fichier. Le codeur utilisera le débit maximal si nécessaire et un débit inférieur s'il peut obtenir la qualité souhaitée avec moins de bits.
  • Régler le max\_frame\_rate à 30 et le max\_audio\_sample\_rate à 48000.
  • La première génération d'appareils iOS n'autorise qu'un seul fichier h.264 reference\_frameIl faut donc l'activer sur les flux de la ligne de base pour une compatibilité maximale.

Intégration de Brightcove Video Cloud et de Google Analytics

Dans cet article, nous vous présentons un programme d'intégration de Google Analytics qui vous permet de mesurer les vidéos à l'aide de Google Analytics. Le programme d'intégration Google Analytics peut être utilisé si vous avez un contrat Video Cloud et que vous disposez déjà de Google Analytics.