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

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

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

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

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

декодер AV1

AV1 — кодек нового поколения, разработанный Alliance for Open Media . AV1 повышает эффективность сжатия более чем на 30% по сравнению с современным видеокодеком VP9. В Chrome 70 в Chrome Desktop x86-64 добавлен декодер AV1 на основе официальной спецификации битового потока . В настоящее время поддержка ограничена «Основным» профилем 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 | Ошибка хрома

Опус в MP4 для MSE

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

Вот как вы можете определить, поддерживается ли 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 | Ошибка хрома

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

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

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