- Автономное воспроизведение с постоянными лицензиями и Widevine L1 теперь поддерживается на Android.
- Chrome теперь отключает видеодорожки, когда видео MSE воспроизводится в фоновом режиме, чтобы оптимизировать производительность.
- Веб-разработчики могут настраивать диапазон поиска в прямых трансляциях MSE.
- Chrome теперь поддерживает FLAC в MP4 с MSE .
- Видео будет отображаться в полноэкранном режиме при повороте устройства .
Постоянные лицензии для Android
Постоянная лицензия в Encrypted Media Extensions (EME) означает, что лицензия может сохраняться на устройстве, чтобы приложения могли загружать лицензию в память без отправки еще одного запроса лицензии на сервер. Вот как в EME поддерживается автономное воспроизведение.
До сих пор ChromeOS была единственной платформой, поддерживающей постоянные лицензии. Это уже неправда. Воспроизведение защищенного контента через EME, когда устройство находится в автономном режиме, теперь возможно и на 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.
});
Вы можете попробовать постоянные лицензии самостоятельно, ознакомившись с образцом Media PWA и выполнив следующие действия:
- Перейдите на https://biograf-155113.appspot.com/ttt/episode-2/.
- Нажмите «Сделать доступным офлайн» и дождитесь загрузки видео.
- Включите режим полета.
- Нажмите кнопку «Play» и наслаждайтесь видео!
Widevine L1 для Android
Как вы, возможно, уже знаете, все устройства Android должны поддерживать уровень безопасности Widevine 3 (Widevine L3). Однако существует множество устройств, которые также поддерживают самый высокий уровень безопасности: уровень безопасности Widevine 1 , где вся обработка контента, криптография и контроль выполняются в доверенной среде выполнения (TEE).
Добрая весть! Widevine L1 теперь поддерживается в Chrome для Android, что позволяет воспроизводить мультимедиа наиболее безопасным способом. Обратите внимание, что он уже поддерживается в 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 , библиотека JavaScript для адаптивных медиаформатов (таких как DASH и HLS), предлагает вам попробовать Widevine L1:
- Перейдите на https://shaka-player-demo.appspot.com/demo/ и при появлении запроса нажмите «Разрешить».
- Выберите «Angel One (мультикодек, многоязычный, Widevine)».
- Введите
HW_SECURE_ALL
в поле «Надежность видео» раздела «Конфигурация». - Нажмите кнопку «Загрузить» и наслаждайтесь видео!
Оптимизация фоновой видеодорожки (только MSE)
Команда Chrome всегда пытается найти новые способы увеличить время автономной работы, и Chrome 62 не является исключением.
Chrome теперь отключает видеодорожки, когда видео воспроизводится в фоновом режиме (например, на невидимой вкладке), если видео использует расширения источника мультимедиа (MSE) . Прочтите нашу предыдущую статью, чтобы узнать больше.
Настройте диапазон поиска в прямых трансляциях MSE
Как вы, возможно, уже знаете, атрибут seekable
содержит диапазоны медиа-ресурсов, к которым может обращаться браузер. Обычно он содержит один временной диапазон, который начинается с 0 и заканчивается длительностью медиаресурса. Однако если продолжительность недоступна, например, при прямой трансляции, временной диапазон может постоянно меняться.
Хорошей новостью является то, что теперь вы можете более эффективно настраивать логику диапазона seekable
с помощью Media Source Extensions (MSE) , предоставляя или удаляя один диапазон поиска, который объединяется с текущими буферизованными диапазонами. В результате получается единый диапазон поиска, который подходит для обоих, когда продолжительность источника мультимедиа равна +Infinity
.
В приведенном ниже коде медиа-источник уже прикреплен к медиа-элементу и содержит только его инициальный сегмент:
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) }
Есть много случаев, которые я не рассмотрел выше, поэтому я бы посоветовал вам попробовать официальный образец , чтобы увидеть, как буферизованные и доступные для поиска временные диапазоны реагируют на различные события MSE.
Намерение отправить | Трекер Chromestatus | Ошибка хрома
FLAC в MP4 для MSE
Формат кодирования звука без потерь FLAC поддерживается при обычном воспроизведении мультимедиа, начиная с Chrome 56. Вскоре после этого была добавлена поддержка FLAC в ISO-BMFF (также известная как FLAC в MP4). И теперь FLAC в MP4 доступен в Chrome 62 для Media Source Extensions (MSE) .
Для информации, ребята из Firefox — это те, кто разработал и реализовал поддержку FLAC в спецификации инкапсуляции MP4 , а BBC экспериментировала с использованием этого с MSE. Чтобы узнать больше, вы можете прочитать публикацию BBC «Delivering Radio 3 Concert Sound» .
Вот как вы можете определить, поддерживается ли FLAC в MP4 для MSE:
if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
// TODO: Fetch data and feed it to a media source.
}
Если вы хотите увидеть полный пример, ознакомьтесь с нашим официальным образцом .
Намерение отправить | Трекер Chromestatus | Ошибка хрома
Видео автоматически переходит в полноэкранный режим при повороте устройства.
Если вы повернете устройство в горизонтальное положение во время воспроизведения видео в области просмотра, воспроизведение автоматически переключится в полноэкранный режим. Поворот устройства в книжную ориентацию возвращает видео в оконный режим. Более подробную информацию можно найти в нашей прошлой статье .