Mises à jour audio et vidéo dans Chrome 70

François Beaufort
François Beaufort

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

Picture-in-picture (PIP) permet aux utilisateurs de regarder des vidéos dans une fenêtre flottante (toujours au-dessus d'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 Picture-in-picture Web, vous pouvez lancer et contrôler le mode Picture-in-picture pour les vidéos de votre site Web.

Lisez notre article pour en savoir plus.

Décodeur AV1

AV1 est un codec nouvelle génération développé par Alliance for Open Media. AV1 améliore l'efficacité de la compression de plus de 30% par rapport au codec vidéo de pointe actuel VP9. Chrome 70 ajoute un décodeur AV1 au bureau Chrome x86-64 basé sur la spécification officielle de flux de bits. Pour le moment, la prise en charge est limitée au profil 0 "principal" et n'inclut pas les fonctionnalités d'encodage. Le conteneur compatible est MP4 (ISO-BMFF). Pour obtenir une brève explication des conteneurs, consultez De la vidéo brute au format Web.

Pour essayer AV1:

  • Accédez à la page YouTube TestTube.
  • Sélectionnez "Préférer AV1 pour la SD" ou "Toujours privilégier AV1" afin d'obtenir la résolution AV1 souhaitée. Notez qu'à des résolutions plus élevées, AV1 est plus susceptible de rencontrer des problèmes de performances de lecture sur certains appareils.
  • Essayez de regarder des clips YouTube depuis la playlist de lancement de la version bêta d'AV1.
  • Confirmez le codec av01 dans "Statistiques avancées".
Statistiques avancées concernant AV1 sur YouTube.
Figure 1. Statistiques avancées concernant AV1 sur YouTube.

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

Chrome ajoute une compatibilité avec les transitions entre codecs et octets multi-octets améliorées dans la lecture de Media Source Extensions à l'aide d'une nouvelle méthode changeType() sur SourceBuffer. Elle permet de modifier ultérieurement le type d'octets multimédias ajoutés à SourceBuffer.

La version actuelle de MSE prend en charge la lecture adaptative des contenus multimédias. Cependant, l'adaptation nécessite que tout contenu multimédia ajouté à un SourceBuffer soit conforme 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 analysés précédemment doivent rester les mêmes. Cela signifie que le site Web doit prendre des mesures explicites pour effectuer le changement de codec ou de bytestream (en utilisant plusieurs éléments multimédias ou en suivant SourceBuffer et en basculant entre eux), ce qui augmente la complexité de l'application et la latence visible par l'utilisateur. (De telles 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 des contenus multimédias entre les transitions.

Avec sa nouvelle méthode changeType(), un SourceBuffer peut mettre en mémoire tampon et accepter la lecture sur différents formats de bytestream et codecs. Cette nouvelle méthode conserve les médias précédemment mis en mémoire tampon et l'éviction ou la suppression futures des frames codés par MSE modulo. Elle exploite la logique de raccordement et de mise en mémoire tampon de l'algorithme existant de traitement de frames codés par MSE.

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 à jouer avec la mise en mémoire tampon et la lecture d'un élément audio multi-codec et multi-octets.

Intention de livraison | Outil de suivi Chromestatus | 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 (ou Opus en MP4) a été ajoutée par la suite. Opus au format MP4 est désormais disponible dans Chrome 70 pour les Media Source Extensions.

Voici comment savoir si le format 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, découvrez notre exemple officiel.

En raison de l'absence d'outils pour l'Opus multiplex en MP4 avec des valeurs correctes de rognage de fin et de préblocage, si vous souhaitez une telle précision, vous devez utiliser SourceBuffer.appendWindow{Start,End} et SourceBuffer.timestampOffset dans Chrome pour obtenir une lecture précise de l'échantillon.

Intention de livraison | Outil de suivi Chromestatus | 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 à des mesures supplémentaires prises pour effacer les licences multimédias avec les cookies et les données de site, en veillant à ce que les licences multimédias ne soient pas utilisées par les sites pour suivre les utilisateurs qui ont effacé les données de navigation.

Paramètre de contenu protégé sur Android.
Figure 2 : Paramètre de contenu protégé sur Android.