- La reproducción sin conexión con licencias persistentes y Widevine L1 ahora son compatibles con Android.
- Chrome ahora inhabilita las pistas de video cuando se reproduce un video MSE en segundo plano para optimizar el rendimiento.
- Los desarrolladores web pueden personalizar el rango de búsqueda en las transmisiones MSE en vivo.
- Chrome ahora admite FLAC en MP4 con MSE.
- El video se mostrará en pantalla completa cuando se rote el dispositivo.
Licencias persistentes para Android
La licencia persistente en las Extensiones de contenido multimedia encriptado (EME) significa que la licencia se puede conservar en el dispositivo para que las aplicaciones puedan cargarla en la memoria sin enviar otra solicitud de licencia al servidor. De esta manera, se admite la reproducción sin conexión en EME.
Hasta ahora, ChromeOS era la única plataforma que admitía licencias persistentes. Ya no es así. Ahora también es posible reproducir contenido protegido a través de EME mientras el dispositivo está sin conexión en 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.
});
Para probar las licencias persistentes, consulta la PWA de Sample Media y sigue estos pasos:
- Ve a https://biograf-155113.appspot.com/ttt/episode-2/.
- Haz clic en “Permitir acceso sin conexión” y espera a que se descargue el video.
- Activa el modo de avión.
- Haz clic en el botón “Reproducir” y disfruta del video.
Widevine L1 para Android
Como ya sabes, todos los dispositivos Android deben admitir el nivel de seguridad 3 de Widevine (Widevine L3). Sin embargo, hay muchos dispositivos que también admiten el nivel de seguridad más alto: el nivel de seguridad 1 de Widevine, en el que todo el procesamiento, la criptografía y el control de contenido se realizan dentro del entorno de ejecución confiable (TEE).
¡Buenas noticias! Widevine L1 ahora es compatible con Chrome para Android, de modo que el contenido multimedia se pueda reproducir de la forma más segura. Ten en cuenta que ya era compatible con ChromeOS.
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 biblioteca de JavaScript para formatos de contenido multimedia adaptables (como DASH y HLS), tiene una demostración para que pruebes Widevine L1:
- Ve a https://shaka-player-demo.appspot.com/demo/ y haz clic en “Permitir” cuando se te solicite.
- Selecciona "Angel One (multicodec, multilingual, Widevine)".
- Ingresa
HW_SECURE_ALL
en el campo "Video robustness" de la sección "Configuration". - Haz clic en el botón “Cargar” y disfruta del video.
Optimizaciones de pistas de video en segundo plano (solo MSE)
El equipo de Chrome siempre intenta encontrar nuevas formas de mejorar la duración de batería, y Chrome 62 no es la excepción.
Chrome ahora inhabilita las pistas de video cuando se reproducen en segundo plano (p.ej., en una pestaña no visible) si el video usa Extensiones de fuente de medios (MSE). Consulta nuestro artículo anterior para obtener más información.
Personaliza el rango de búsqueda en las transmisiones MSE en vivo
Como ya sabes, el atributo seekable
contiene los rangos del recurso multimedia al que puede saltar el navegador. Por lo general, contiene un único intervalo de tiempo que comienza en 0 y finaliza en la duración del recurso multimedia. Sin embargo, si la duración no está disponible, como en una transmisión en vivo, el intervalo de tiempo puede cambiar continuamente.
La buena noticia es que ahora puedes personalizar de manera más eficaz la lógica de rango seekable
con las Extensiones de fuente de medios (MSE) si proporcionas o quitas un solo rango de búsqueda que se une con los rangos actuales almacenados en búfer. El resultado es un solo rango de búsqueda que se ajusta a ambos, cuando la duración de la fuente multimedia es +Infinity
.
En el siguiente código, la fuente de medios ya se adjuntó a un elemento multimedia y solo contiene su segmento de inicialización:
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) }
Hay muchos casos que no mencioné anteriormente, por lo que te sugiero que pruebes la muestra oficial para ver cómo reaccionan los intervalos de tiempo con búfer y con posibilidad de salto a diferentes eventos de MSE.
Intent to Ship | Chromestatus Tracker | Error de Chromium
FLAC en MP4 para MSE
El formato de codificación de audio sin pérdida FLAC es compatible con la reproducción de contenido multimedia normal desde Chrome 56. Poco después, se agregó la compatibilidad con FLAC en ISO-BMFF (también conocido como FLAC en MP4). Además, FLAC en MP4 está disponible en Chrome 62 para las Extensiones de fuente de medios (MSE).
Como referencia, el equipo de Firefox fue el que desarrolló e implementó la compatibilidad con una especificación de encapsulamiento de FLAC en MP4, y la BBC ha estado experimentando con su uso en MSE. Para obtener más información, puedes leer la publicación “Delivering Radio 3 Concert Sound” de la BBC.
Sigue estos pasos para detectar si FLAC en MP4 es compatible con MSE:
if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
// TODO: Fetch data and feed it to a media source.
}
Si quieres ver un ejemplo completo, consulta nuestra muestra oficial.
Intent to Ship | Chromestatus Tracker | Error de Chromium
El video automático pasa a pantalla completa cuando se rota el dispositivo
Si rota un dispositivo a la orientación horizontal mientras se reproduce un video en el viewport, la reproducción cambiará automáticamente al modo de pantalla completa. Si rota el dispositivo a la posición vertical, el video volverá al modo con ventana. Consulta nuestro artículo anterior para obtener más detalles.