Mises à jour multimédias dans Chrome 62

François Beaufort
François Beaufort

Licences persistantes pour Android

Une licence persistante dans Encrypted Media Extensions (EME) signifie que la licence peut sont conservées sur l'appareil afin que les applications puissent charger la licence mémoire sans envoyer d'autre demande de licence au serveur. Voici comment la lecture hors connexion est prise en charge en EME.

Jusqu'à présent, ChromeOS était la seule plate-forme compatible avec les licences persistantes. Il n'est plus vrai. Lecture de contenu protégé via EME lorsque l'appareil est le mode hors connexion est désormais également possible sur Android.

const config = [{
  sessionTypes: ['persistent-license'],
  videoCapabilities: [{
    contentType: 'video/webm; codecs="vp09.00.10.08"',
    robustness: 'SW_SECURE_DECODE' // Widevine L3
  }]
}];

// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
  // User will be able to watch encrypted content while being offline when
  // license is stored locally on device and loaded later.
})
.catch(error => {
  // Persistent licenses are not supported on this platform yet.
});

Vous pouvez essayer les licences persistantes par vous-même en consultant l'exemple de PWA Media. et procédez comme suit:

  1. Accédez à https://biograf-155113.appspot.com/ttt/episode-2/.
  2. Cliquez sur "Rendre disponible hors connexion". et attendez que la vidéo soit téléchargée.
  3. Activez le mode Avion.
  4. Cliquez sur le bouton de lecture et profitez de la vidéo !

Widevine L1 pour Android

Comme vous le savez peut-être déjà, tous les appareils Android doivent être compatibles avec Widevine Niveau de sécurité 3 (Widevine L3). Cependant, il existe de nombreux appareils compatible avec le plus haut niveau de sécurité: Widevine Security Level 1, qui inclut l'ensemble du traitement, de la cryptographie et du contrôle du contenu. dans l'environnement d'exécution sécurisé (TEE).

Bonne nouvelle ! Widevine L1 est désormais compatible avec Chrome pour Android, ce qui permet de la manière la plus sécurisée. Notez qu'elle était déjà prise en charge par Chrome OS.

const config = [{
  videoCapabilities: [{
    contentType: 'video/webm; codecs="vp09.00.10.08"',
    robustness: 'HW_SECURE_ALL' // Widevine L1
  }]
}];

// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
  // User will be able to watch encrypted content in the most secure way.
})
.catch(error => {
  // Widevine L1 is not supported on this platform yet.
});

Shaka Player, la bibliothèque JavaScript pour les formats multimédias adaptatifs (DASH et HLS) propose une démonstration pour vous permettre d'essayer Widevine L1:

  1. Accédez à https://shaka-player-demo.appspot.com/demo/, puis cliquez sur "Autoriser". lorsque vous y êtes invité.
  2. Choisissez "Angel One (multicodec, multilingual, Widevine)".
  3. Dans "Video Robustness" (Fiabilité de la vidéo), saisissez HW_SECURE_ALL. de la section "Configuration" .
  4. Cliquez sur le bouton "Charger" et profitez de la vidéo !

Optimisations de la piste vidéo en arrière-plan (MSE uniquement)

L'équipe Chrome s'efforce en permanence de trouver de nouvelles façons d'améliorer l'autonomie de la batterie et Chrome 62 ne fait pas exception.

Chrome désactive désormais les pistes vidéo lorsque la vidéo est lue en arrière-plan (dans un onglet non visible, par exemple) si la vidéo utilise des extensions de source multimédia (MSE). Pour en savoir plus, consultez notre article précédent.

Personnaliser la plage pouvant être recherchée dans les flux MSE en direct

Comme vous le savez peut-être déjà, l'attribut seekable contient les plages de la ressource multimédia que le navigateur peut rechercher. Il contient généralement période unique commençant à 0 et se terminant à la durée de la ressource multimédia. Si la durée n'est pas disponible, par exemple pour une diffusion en direct, la période peut en constante évolution.

La bonne nouvelle, c'est que vous pouvez désormais personnaliser plus efficacement Logique de la plage seekable avec des Media Source Extensions (MSE) par en fournissant ou en supprimant une seule plage pouvant être recherchée qui est unie avec la plages mises en mémoire tampon. Il en résulte une seule plage recherche qui convient aux deux, lorsque la durée de la source multimédia est de +Infinity.

Dans le code ci-dessous, la source multimédia a déjà été associée à un support. et ne contient que son segment init:

const mediaSource = new MediaSource();
...

mediaSource.duration = +Infinity;
// Seekable time ranges: { }
// Buffered time ranges: { }

mediaSource.setLiveSeekableRange(1 /* start */, 4 /* end */);
// Seekable time ranges: { [1.000, 4.000) }
// Buffered time ranges: { }

// Let's append a media segment that starts at 3 seconds and ends at 6.
mediaSource.sourceBuffers[0].appendBuffer(someData);
// Seekable time ranges: { [1.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }

mediaSource.clearLiveSeekableRange();
// Seekable time ranges: { [0.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }

Il existe de nombreux cas que je n'ai pas abordés ci-dessus, je vous suggère donc d'essayer à l'échantillon officiel pour voir comment les périodes mises en mémoire tampon et pouvant être recherchées réagissent aux différentes les événements MSE.

Projet de livraison | Chromestatus Tracker | Bug Chromium

FLAC au format MP4 pour MSE

Le format de codage audio sans perte FLAC est compatible avec les médias standards. depuis la version 56 de Chrome. Ajout de FLAC compatible avec ISO-BMFF (aussi appelé FLAC en MP4) peu de temps après. Les fichiers FLAC au format MP4 sont désormais disponibles dans Chrome 62 pour les sources multimédias Extensions (MSE).

Pour information, les utilisateurs de Firefox sont ceux qui ont développé et implémenté la prise en charge de un format d'encapsulation FLAC en MP4, que la BBC a expérimenté l'utiliser avec MSE. Vous pouvez lire l'épisode "Delivering Radio 3 Concert" de la BBC "Son" pour en savoir plus.

Pour vérifier si le format FLAC au format MP4 est compatible avec MSE:

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

Pour voir un exemple dans son intégralité, consultez notre extrait officiel.

Projet de livraison | Chromestatus Tracker | Bug Chromium

La vidéo passe automatiquement en plein écran lors de la rotation de l'appareil

Si vous faites pivoter un appareil en mode paysage alors qu'une vidéo est en cours de lecture dans la fenêtre d'affichage, la lecture passe automatiquement en mode plein écran. Faire pivoter l'appareil pour repasse la vidéo en mode fenêtre. Consultez notre précédent article pour plus de détails.