Обновления аудио/видео в Chrome 70

Франсуа Бофор
François Beaufort

Смотрите видео с помощью функции «Картинка в картинке»

Функция «картинка в картинке» (PiP) позволяет пользователям смотреть видео в плавающем окне (всегда поверх других окон), чтобы они могли следить за происходящим, взаимодействуя с другими сайтами или приложениями. С помощью нового веб-API «картинка в картинке» вы можете активировать и управлять функцией «картинка в картинке» для видео на вашем сайте.

Прочитайте нашу статью , чтобы узнать об этом все.

Декодер AV1

AV1 — это кодек нового поколения, разработанный Alliance for Open Media . AV1 повышает эффективность сжатия более чем на 30% по сравнению с современным видеокодеком VP9. В Chrome 70 в Chrome Desktop x86-64 добавлен декодер AV1, основанный на официальной спецификации битстрима . В настоящее время поддержка ограничена профилем «Main» 0 и не включает возможности кодирования. Поддерживаемый контейнер — MP4 ( ISO-BMFF ) (краткое описание контейнеров см. в разделе «От необработанного видео к веб-контенту »).

Чтобы попробовать AV1:

  • Перейдите на страницу YouTube TestTube .
  • Выберите «Предпочитать AV1 для SD» или «Всегда предпочитать AV1», чтобы получить желаемое разрешение AV1. Обратите внимание, что при более высоких разрешениях AV1 с большей вероятностью может вызвать проблемы с воспроизведением на некоторых устройствах.
  • Попробуйте воспроизвести клипы YouTube из плейлиста запуска бета-версии AV1 .
  • Подтвердите кодек av01 в «Статистике для ботанов».
Статистика для любителей AV1 на YouTube.
Рисунок 1. Статистика пользователей AV1 на YouTube.

Поддержка переключения кодеков и контейнеров в MSE

Chrome добавляет поддержку улучшенных переходов между кодеками и потоками байтов при воспроизведении Media Source Extensions с помощью нового метода changeType() для SourceBuffer . Он позволяет впоследствии изменять тип байтов медиа, добавляемых в SourceBuffer .

Текущая версия MSE поддерживает адаптивное воспроизведение медиа; однако для адаптации требуется, чтобы все медиаданные, добавляемые в SourceBuffer соответствовали типу MIME, указанному при первоначальном создании SourceBuffer через MediaSource.addSourceBuffer(type) . Кодеки этого типа и любые ранее проанализированные сегменты инициализации должны оставаться неизменными на протяжении всего процесса. Это означает, что веб-сайту приходится предпринимать явные шаги для переключения кодеков или потоков байтов (используя несколько медиаэлементов или дорожек SourceBuffer и переключаясь между ними), что увеличивает сложность приложения и задержку, видимую пользователю. (Такие переходы требуют, чтобы веб-приложение выполняло синхронные действия в основном потоке рендерера). Эта задержка перехода ухудшает плавность воспроизведения медиаданных при переходах.

Благодаря новому методу changeType() SourceBuffer может буферизировать и поддерживать воспроизведение в различных форматах байтового потока и кодеках. Этот новый метод сохраняет ранее буферизированные медиаданные, с учётом будущего удаления или вытеснения кадров с кодировкой MSE, и использует логику сплайсинга и буферизации в существующем алгоритме обработки кадров с кодировкой MSE.

Вот как использовать метод 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);
    }

Как и ожидалось, если переданный тип не поддерживается браузером, этот метод выдает исключение NotSupportedError .

Ознакомьтесь с примером, чтобы поэкспериментировать с буферизацией между кодеками и потоками байтов, а также воспроизведением аудиоэлемента.

Намерение отправить | Chromestatus Tracker | Ошибка Chromium

Opus в MP4 для MSE

Открытый и универсальный аудиокодек Opus поддерживается элементами <audio> и <video> начиная с Chrome 33. Позже была добавлена ​​поддержка Opus в формате ISO-BMFF (также известного как Opus в формате MP4). Теперь Opus в формате MP4 доступен в Chrome 70 для расширений Media Source Extensions .

Вот как можно определить, поддерживается ли Opus в формате MP4 для MSE:

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

Если вы хотите увидеть полный пример, ознакомьтесь с нашим официальным образцом .

Из-за отсутствия инструментов для мультиплексирования Opus в MP4 с корректной обрезкой концов и значениями предварительного пропуска, если такая точность для вас важна, вам нужно будет использовать SourceBuffer.appendWindow{Start,End} и SourceBuffer.timestampOffset в Chrome, чтобы добиться воспроизведения с точностью до сэмпла.

Намерение отправить | Chromestatus Tracker | Ошибка Chromium

Разрешить воспроизведение защищенного контента по умолчанию на Android

В Chrome 70 для Android значение по умолчанию для настройки сайта «Защищённый контент» меняется с «Спрашивать сначала» на «Разрешено», что снижает сложности, связанные с воспроизведением таких медиафайлов. Это изменение стало возможным отчасти благодаря дополнительным мерам по очистке лицензий на медиафайлы вместе с файлами cookie и данными сайтов, что гарантирует, что лицензии на медиафайлы не будут использоваться сайтами для отслеживания пользователей, очистивших данные о просмотре.

Настройка защищенного содержимого в Android.
Рисунок 2. Настройка защищенного содержимого в Android.