Mises à jour multimédias dans Chrome 70

François Beaufort
François Beaufort

Regarder une vidéo en mode Picture-in-picture

La fonctionnalité Picture-in-picture (PIP) permet aux utilisateurs de regarder des vidéos dans une fenêtre flottante (toujours au-dessus des autres fenêtres) afin de garder un œil sur ce qu'ils regardent tout en interagissant avec d'autres sites ou applications. Avec la nouvelle API Web Picture-in-Picture, vous pouvez lancer et contrôler le mode Picture-in-Picture pour les vidéos sur votre site Web.

Pour en savoir plus, consultez cet article.

Décodeur AV1

AV1 est un codec de nouvelle génération développé par l'Alliance for Open Media. AV1 améliore l'efficacité de compression de plus de 30 % par rapport au codec vidéo phare du moment, VP9. Chrome 70 ajoute un décodeur AV1 à Chrome Desktop x86-64 sur la base de la spécification officielle de flux de bits. Pour le moment, la compatibilité est limitée au profil 0 "Principal" et n'inclut pas les fonctionnalités d'encodage. Le conteneur compatible est le format MP4 (ISO-BMFF) (consultez la section Conteneurs et codecs pour une brève description des conteneurs).

Pour essayer AV1 :

  1. Accédez à la page YouTube TestTube.
  2. Sélectionnez "Utiliser AV1 pour la SD" ou "Toujours utiliser AV1" pour obtenir la résolution AV1 souhaitée. Notez qu'avec les résolutions plus élevées, AV1 est plus susceptible de rencontrer des problèmes de performances de lecture sur certains appareils.
  3. Essayez de lire des extraits YouTube de la playlist de lancement de la version bêta d'AV1.
  4. Vérifiez que le codec av01 est bien indiqué dans "Statistiques avancées".
Statistiques avancées avec AV1 sur YouTube
Statistiques pour les geeks sur AV1 dans YouTube.

Prise en charge du changement de codec et de conteneur dans MSE

Chrome prend en charge les transitions entre les codecs ou les flux de données binaires dans la lecture des extensions Media Source à l'aide d'une nouvelle méthode changeType() sur SourceBuffer. Il permet de modifier ultérieurement le type d'octets multimédias ajoutés à SourceBuffer.

La version actuelle de MSE est compatible avec la lecture adaptative des contenus multimédias. Toutefois, l'adaptation exige que tous les contenus multimédias ajoutés à un SourceBuffer soient conformes au type MIME fourni lors de la création initiale du SourceBuffer via MediaSource.addSourceBuffer(type). Les codecs de ce type et tous les segments d'initialisation précédemment analysés doivent rester les mêmes tout au long. Cela signifie que le site Web doit prendre des mesures explicites pour effectuer le changement de codec ou de flux d'octets (en utilisant plusieurs éléments multimédias ou pistes SourceBuffer et en les faisant basculer), ce qui augmente la complexité de l'application et la latence visible par l'utilisateur. (ces transitions nécessitent que l'application Web effectue une action synchrone sur le thread principal du moteur de rendu). Cette latence de transition affecte la fluidité de la lecture multimédia lors des transitions.

Avec sa nouvelle méthode changeType(), un SourceBuffer peut mettre en mémoire tampon et prendre en charge la lecture sur différents formats de flux de données et codecs. Cette nouvelle méthode conserve les médias précédemment mis en mémoire tampon, modulo l'éviction ou la suppression future des images codées MSE, et exploite la logique d'épissage et de mise en mémoire tampon de l'algorithme de traitement des images codées MSE existant.

Voici comment utiliser la méthode changeType():

const sourceBuffer = myMediaSource.addSourceBuffer('video/webm; codecs="opus, vp09.00.10.08"');
sourceBuffer.appendBuffer(someWebmOpusVP9Data);

// Later on...
if ('changeType' in sourceBuffer) {
  // Change source buffer type and append new data.
  sourceBuffer.changeType('video/mp4; codecs="mp4a.40.5, avc1.4d001e"');
  sourceBuffer.appendBuffer(someMp4AacAvcData);
}

Comme prévu, si le type transmis n'est pas compatible avec le navigateur, cette méthode génère une exception NotSupportedError.

Consultez l'exemple pour jouer avec le tamponnage et la lecture d'un élément audio entre les codecs et les flux de bytes.

Intent to Ship | Outil de suivi de l'état de Chrome | Bug Chromium

Opus au format MP4 pour MSE

Le codec audio ouvert et très polyvalent Opus est compatible avec les éléments <audio> et <video> depuis Chrome 33. La compatibilité avec Opus dans ISO-BMFF (également appelé Opus dans MP4) a été ajoutée par la suite. Opus au format MP4 est désormais disponible dans Chrome 70 pour les extensions de sources multimédias.

Voici comment détecter si Opus au format MP4 est compatible avec MSE :

if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
  // TODO: Fetch data and feed it to a media source.
}

Pour voir un exemple complet, consultez notre exemple officiel.

En raison de l'absence d'outils permettant de mux Opus en MP4 avec des valeurs correctes de coupe de fin et de pré-omission, si une telle précision est importante pour vous, vous devrez utiliser SourceBuffer.appendWindow{Start,End} et SourceBuffer.timestampOffset dans Chrome pour obtenir une lecture avec une précision de l'échantillon.

Intent to Ship | Outil de suivi de l'état de Chrome | Bug Chromium

Autoriser la lecture de contenu protégé par défaut sur Android

Dans Chrome 70 pour Android, la valeur par défaut du paramètre de site "Contenu protégé" passe de "Demander d'abord" à "Autorisé", ce qui réduit les frictions associées à la lecture de ces contenus multimédias. Ce changement est possible, en partie, grâce aux mesures supplémentaires prises pour effacer les licences multimédias avec les cookies et les données du site, ce qui garantit que les licences multimédias ne sont pas utilisées par les sites pour suivre les utilisateurs qui ont effacé leurs données de navigation.

ALT_TEXT_HERE
Paramètre de contenu protégé dans Android.