Actualizaciones de audio y video en Chrome 70

Francisco Beaufort
François Beaufort

Cómo mirar videos con la función Pantalla en pantalla

La función de pantalla en pantalla (PIP) permite a los usuarios mirar videos en una ventana flotante (siempre encima de otras ventanas) para que puedan supervisar lo que están mirando mientras interactúan con otros sitios o aplicaciones. Con la nueva API web de pantalla en pantalla, puedes iniciar y controlar la función pantalla en pantalla en los videos de tu sitio web.

Lee nuestro artículo para obtener más información.

Decodificador de AV1

AV1 es un códec de nueva generación desarrollado por Alliance for Open Media. AV1 mejora la eficiencia de compresión en más de un 30% respecto del códec de video de vanguardia actual, VP9. Chrome 70 agrega un decodificador AV1 a Chrome Desktop x86-64 según la especificación oficial de flujo de bits. En este momento, la compatibilidad está limitada al perfil 0 "Principal" y no incluye las capacidades de codificación. El contenedor compatible es MP4 (ISO-BMFF) (consulta Desde el video sin procesar hasta la Web listo para obtener una breve explicación de los contenedores).

Para probar AV1, haz lo siguiente:

Estadísticas de AV1 en YouTube.
Figura 1: Estadísticas de AV1 en YouTube.

Compatibilidad con el cambio de códecs y contenedores en ECM

Chrome agrega compatibilidad para mejorar las transiciones entre códecs o transmisiones de bytes en la reproducción de extensiones de fuente de medios con un nuevo método changeType() en SourceBuffer. Permite cambiar el tipo de bytes de medios adjuntos a SourceBuffer más adelante.

La versión actual de MSE admite la reproducción adaptable de contenido multimedia; sin embargo, la adaptación requiere que cualquier contenido multimedia agregado a un SourceBuffer debe cumplir con el tipo de MIME proporcionado cuando se crea inicialmente el SourceBuffer a través de MediaSource.addSourceBuffer(type). Los códecs de ese tipo y cualquier segmento de inicialización analizado con anterioridad deben permanecer iguales. Esto significa que el sitio web debe realizar pasos explícitos para lograr el cambio de códec o flujo de bytes (con varios elementos multimedia o segmentos SourceBuffer y alternando entre ellos), lo que aumenta la complejidad de la aplicación y la latencia visible para el usuario. (Estas transiciones requieren que la app web realice una acción síncrona en el subproceso principal del procesador). Esta latencia de transición afecta la fluidez de la reproducción de contenido multimedia en las transiciones.

Con su nuevo método changeType(), un SourceBuffer puede almacenar en búfer y admitir la reproducción en diferentes formatos de flujo de bytes y códecs. Este nuevo método retiene medios previamente almacenados en búfer, expulsión o eliminación de marcos codificados en MSE futuros de módulo, y aprovecha la lógica de empalme y almacenamiento en búfer en el algoritmo de procesamiento de tramas existente codificado con MSE.

A continuación, se muestra cómo usar el método 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);
    }

Como era de esperar, si el navegador no admite el tipo que se pasó, este método arrojará una excepción NotSupportedError.

Consulta la muestra para reproducir un elemento de audio con el almacenamiento en búfer de códecs y transmisiones de bytes cruzados, así como con la reproducción.

Intent de enviar | Seguimiento de Chromestatus | Error de Chromium

Opus en MP4 para ECM

El códec de audio abierto y altamente versátil Opus es compatible con los elementos <audio> y <video> desde Chrome 33. Luego, se agregó compatibilidad con Opus en ISO-BMFF (también conocido como Opus en MP4). Ahora Opus en MP4 está disponible en Chrome 70 para las extensiones de fuente de medios.

Sigue estos pasos para detectar si el Opus en MP4 es compatible con el ECM:

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

Si deseas ver un ejemplo completo, consulta nuestra muestra oficial.

Debido a la falta de herramientas para combinar Opus en MP4 con valores correctos de recorte final y omisión previa, si esa precisión es importante para ti, deberás usar SourceBuffer.appendWindow{Start,End} y SourceBuffer.timestampOffset en Chrome para obtener una reproducción con precisión de muestra.

Intent de enviar | Seguimiento de Chromestatus | Error de Chromium

Cómo permitir la reproducción de contenido protegido de forma predeterminada en Android

En Chrome 70 para Android, el valor predeterminado de la configuración de "contenido protegido" del sitio cambia de "Preguntar primero" a "Permitido", lo que disminuye las dificultades asociadas con la reproducción de ese tipo de contenido multimedia. Este cambio es posible, en parte, debido a los pasos adicionales que se tomaron para borrar las licencias de medios junto con las cookies y los datos de sitios, lo que garantiza que los sitios no usen licencias de medios para hacer un seguimiento de los usuarios que borraron los datos de navegación.

Parámetro de configuración de contenido protegido en Android.
Figura 2: Parámetro de configuración de contenido protegido en Android.