HTML5 видео - HTML5 video

Спецификация HTML5 представила элемент видео для воспроизведения видео, частично заменив элемент объекта . Видео HTML5 задумано его создателями, чтобы стать новым стандартным способом показа видео в сети вместо прежнего стандарта де-факто использования проприетарного плагина Adobe Flash , хотя раннему внедрению препятствовало отсутствие согласия относительно того, какие форматы кодирования видео и форматы кодирования аудио должны поддерживаться в веб-браузерах. По состоянию на 2020 год HTML5-видео является единственной широко поддерживаемой технологией воспроизведения видео в современных браузерах, при этом плагин Flash постепенно прекращается.

История элемента <video>

Элемент <video> начал обсуждаться WHATWG в октябре 2006 года. Элемент <video> был предложен Opera Software в феврале 2007 года. Opera также выпустила предварительную сборку, которая была продемонстрирована в тот же день, и манифест, призывавший к видео для стать первоклассным гражданином Интернета.

Примеры элементов <video>

Следующий фрагмент кода HTML5 встроит видео WebM в веб-страницу.

<video src="movie.webm" poster="movie.jpg" controls>
	This is fallback content to display for user agents that do not support the video tag.
</video>

Атрибут "controls" позволяет собственному пользовательскому интерфейсу браузера управлять воспроизведением. В качестве альтернативы воспроизведением можно управлять с помощью JavaScript , который веб-дизайнер может использовать для создания пользовательского интерфейса. Необязательный атрибут «poster» указывает изображение, которое будет отображаться на месте видео перед началом воспроизведения. Его цель - представить видео.

Множественные источники

Поддержка видеоформатов различается в зависимости от браузера (см. Ниже), поэтому веб-страница может предоставлять видео в нескольких форматах. Для других функций иногда используется анализ браузера , который может быть подвержен ошибкам: любой веб-разработчик знает браузеры, что неизбежно будет неполным или устаревшим. Соответствующий браузер лучше всех знает, какие форматы он может использовать. Элемент «видео» поддерживает откат за счет указания нескольких источников. Используя любое количество элементов <source>, как показано ниже, браузер автоматически выберет файл для загрузки. В качестве альтернативы для достижения того же можно использовать функцию JavaScript canPlayType () . Атрибут «type» указывает тип MIME и, возможно, список кодеков, который помогает браузеру определить, может ли он декодировать файл, не загружая его. Тип MIME обозначает формат контейнера файла, а формат контейнера определяет интерпретацию строки кодека.

<video poster="poster.jpg" controls>
	<source src="av1.mp4" type='video/mp4; codecs="av01.0.00M.08, opus"'>
	<source src="avc.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'>
	<source src="vp9.webm" type='video/webm; codecs="vp9.0, opus"'>
	<source src="theora.ogv" type='video/ogg; codecs="theora, vorbis"'>
	<p>This is fallback content to display for user agents that do not support the video tag.</p>
</video>

Поддерживаемые видео и аудио форматы

Спецификация HTML5 не указывает, какие видео- и аудиоформаты должны поддерживать браузеры. Пользовательские агенты могут поддерживать любые видеоформаты, которые они считают подходящими, но авторы контента не могут предполагать, что какое-либо видео будет доступно для всех соответствующих пользовательских агентов, поскольку у пользовательских агентов нет минимального набора видео- и аудиоформатов для поддержки.

Рабочая группа HTML5 сочла желательным указать хотя бы один видеоформат, который должны поддерживать все пользовательские агенты (браузеры). Идеальный формат в этом отношении:

  • Хорошее сжатие, хорошее качество изображения и низкое использование процессора декодирования.
  • Будьте свободны от лицензионных отчислений.
  • В дополнение к программным декодерам для формата должен существовать аппаратный видеодекодер , поскольку многие встроенные процессоры не обладают производительностью для декодирования видео.

Изначально Ogg Theora был рекомендованным стандартным форматом видео в HTML5, поскольку на него не распространялись какие-либо известные патенты. Но 10 декабря 2007 года спецификация HTML5 была обновлена, заменив ссылку на конкретные форматы:

Пользовательские агенты должны поддерживать видео Theora и аудио Vorbis, а также формат контейнера Ogg.

с заполнителем:

Было бы полезно для взаимодействия, если бы все браузеры могли поддерживать одни и те же кодеки. Однако не существует известных кодеков, которые удовлетворяли бы всех текущих игроков: нам нужен кодек, который, как известно, не требует лицензирования на единицу или на каждого дистрибьютора, который совместим с моделью разработки с открытым исходным кодом, который имеет достаточное качество, чтобы быть пригодными для использования, и это не является дополнительным риском патентования подводных лодок для крупных компаний. Это постоянная проблема, и этот раздел будет обновлен, когда появится дополнительная информация.

Результат был поляризацией видео HTML5 между промышленным стандартом , ISO-определенным , но патент -encumbered форматов и открытыми форматами . Новый формат AV1 от Alliance for Open Media призван стать отраслевым стандартом, бесплатным и открытым, а также получить широкую поддержку в отрасли.

Бесплатные форматы

Хотя на Theora не распространяются известные несвободные патенты, Apple выразила озабоченность по поводу неизвестных патентов, которые могут повлиять на нее, владельцы которых могут ждать, пока корпорация с обширными финансовыми ресурсами воспользуется форматом, прежде чем подавать в суд. Форматы, такие как H.264, в принципе могут также быть предметом неизвестных патентов, но они получили гораздо более широкое распространение, и поэтому предполагается, что любые патентообладатели уже заявили о себе. Apple также выступала против требования поддержки формата Ogg в стандарте HTML (даже в качестве «обязательного» требования) на том основании, что некоторые устройства могут гораздо легче поддерживать другие форматы, и что HTML исторически не требовал определенных форматов ни для чего.

Некоторые веб-разработчики раскритиковали удаление форматов Ogg из спецификации. Последующее обсуждение также произошло в блоге вопросов и ответов W3C.

Mozilla и Opera поддерживают только открытые форматы Theora и WebM . Google заявил о своем намерении прекратить поддержку H.264 в 2011 году, особенно для тега видео HTML5. Хотя он был удален из Chromium , по состоянию на январь 2021 года он еще не был удален из Google Chrome десять лет спустя.

Поддержка MPEG-DASH через HTML5 Media Source Extensions (MSE)

Стандарт MPEG-DASH с адаптивным битрейтом может использоваться в веб-браузерах через HTML5 Media Source Extensions (MSE) и проигрыватели DASH на основе JavaScript. Такими проигрывателями являются, например, проект с открытым исходным кодом dash.js отраслевого форума DASH, но есть также такие продукты, как bitdash of bitmovin (с использованием HTML5 с JavaScript, но также проигрыватели DASH на основе Flash для устаревших веб-браузеров, не поддерживающих HTML5 MSE).

Покупка Google On2

Приобретение компанией Google компании On2 в 2010 году привело к приобретению видеоформата VP8 . Google предоставил бесплатную лицензию на использование VP8. Google также запустил WebM , который объединяет стандартизированный видеокодек VP8 с открытым исходным кодом со звуком Vorbis в контейнере на основе Matroska . Открытие VP8 приветствовалось Фондом свободного программного обеспечения .

Когда в январе 2011 года Google объявил о прекращении нативной поддержки H.264 в Chrome, критика исходила от многих сторон, включая Питера Брайта из Ars Technica и интернет-евангелиста Microsoft Тима Снита, который сравнил шаг Google с объявлением эсперанто официальным языком Соединенных Штатов. Состояния. Однако Хаавард Моен из Opera Software подверг резкой критике статью Ars Technica, и Google отреагировал на реакцию, разъяснив свое намерение продвигать WebM в своих продуктах на основе открытости.

После запуска WebM Mozilla и Opera призвали включить VP8 в HTML.

7 марта 2013 года Google Inc. и MPEG LA , LLC объявили о соглашениях, касающихся технологий, которые «могут быть важны» для VP8, при этом Google получил лицензию от MPEG LA и 11 патентообладателей, а MPEG LA прекратил свои усилия по формированию патента VP8. бассейн.

В 2012 году компания Google выпустила VP9 как преемник VP8, также открытый и бесплатный.

В конце 2017 года новый формат AV1 , разработанный Alliance for Open Media (AOMedia) по мере развития VP9, ​​достиг заморозки функций, и замораживание потока битов ожидается в январе 2018 года. Ночные сборки Firefox уже включают поддержку AV1.

Несвободные форматы

H.264 / MPEG-4 AVC широко используется, имеет хорошую скорость, сжатие, аппаратные декодеры и качество видео, но защищен патентами. Пользователям H.264 требуются лицензии либо от отдельных держателей патентов, либо от MPEG LA , группы патентообладателей, включая Microsoft и Apple, за исключением некоторых видов использования видеотрансляции в Интернете. H.264 обычно используется в формате контейнера MP4 вместе со звуком Advanced Audio Coding (AAC). Сам AAC также защищен патентами, поэтому пользователям MP4 придется лицензировать как H.264, так и AAC.

В июне 2009 года WHATWG пришла к выводу, что ни один существующий формат не подходит в качестве конкретного требования.

Apple по-прежнему поддерживает только H.264, но Microsoft теперь поддерживает VP9 и WebM и пообещала поддерживать AV1 .

Cisco бесплатно предоставляет лицензированный двоичный модуль H.264

30 октября 2013 года Cisco объявила, что делает доступным для загрузки двоичный модуль H.264. Cisco оплатит стоимость лицензирования патентов на эти двоичные модули при их загрузке с помощью используемого программного обеспечения во время его установки , что делает H.264 бесплатным для использования в этом конкретном случае.

В объявлении Cisco в качестве причины указала свое желание дальнейшего использования проекта WebRTC , поскольку функция видеочата WebRTC выиграет от поддержки видеоформата во всех браузерах. Модуль H.264 будет доступен на «всех популярных или практически поддерживаемых платформах, которые могут быть загружены в любое приложение».

Cisco также планирует опубликовать исходный код этих модулей под лицензией BSD , но без выплаты лицензионных отчислений, поэтому код будет практически бесплатным только в странах, не имеющих патентов на программное обеспечение H.264 , что уже было верно в отношении других существующих реализаций.

Также 30 октября 2013 года Брендан Эйх из Mozilla объявил, что Firefox по умолчанию автоматически загружает модуль Cisco H.264, когда это необходимо. Он также отметил, что двоичный модуль не является идеальным решением, поскольку пользователи не имеют полных прав на бесплатное программное обеспечение «изменять, перекомпилировать и распространять без лицензионных соглашений или сборов». Таким образом, Xiph и Mozilla продолжают разработку Daala .

OpenH264 поддерживает только базовый профиль H.264 и сам по себе не удовлетворяет потребности в декодере AAC. Поэтому его недостаточно для типичного веб-видео MP4, которое обычно имеет высокий профиль со звуком AAC. Однако для использования в WebRTC упущение AAC было оправдано в объявлении о выпуске: «органы стандартизации согласовали Opus и G.711 в качестве общих аудиокодеков для WebRTC». Есть сомнения относительно возможности глобального лицензирования AAC, такого как Cisco для H.264, после того, как лицензионное бюро AAC сняло ценовой потолок вскоре после выпуска OpenH264.

Поддержка браузера

Эта таблица показывает , какие форматы видео , вероятно , должны поддерживаться данным агентом пользователя . Большинство перечисленных здесь браузеров используют мультимедийную структуру для декодирования и отображения видео вместо включения таких программных компонентов. Как правило, невозможно определить набор форматов, поддерживаемых мультимедийной структурой, без запроса, поскольку это зависит от операционной системы и сторонних кодеков. В этих случаях поддержка видеоформатов является атрибутом фреймворка, а не браузера (или его механизма компоновки), при условии, что браузер правильно запрашивает свою мультимедийную фреймворк, прежде чем отклонять неизвестные видеоформаты. В некоторых случаях поддержка, указанная здесь, не является функцией ни кодеков, доступных в базовой среде мультимедиа операционной системы, ни возможностей кодеков, встроенных в браузер, а скорее может осуществляться надстройкой браузера, которая может, например, обходить обычный HTML-анализ браузера тега <video> для встраивания видеопроигрывателя на основе подключаемого модуля.

Обратите внимание, что видеофайл обычно содержит как видео, так и аудио контент, каждый из которых закодирован в собственном формате. Браузер должен поддерживать как видео, так и аудио форматы. См. HTML5 audio, чтобы узнать, какие аудиоформаты поддерживаются каждым браузером.

Формат видео может быть задан типом MIME в HTML (см. Пример ). Типы MIME используются для запроса фреймворков мультимедиа для поддерживаемых форматов.

Из этих браузеров только Firefox и Opera используют библиотеки для встроенного декодирования. На практике Internet Explorer и Safari также могут гарантировать определенную поддержку формата, поскольку их производители также создают свои мультимедийные фреймворки. На другом конце шкалы Konqueror имеет ту же поддержку формата, что и Internet Explorer при работе в Windows, и Safari при запуске на Mac, но выбранная поддержка Konqueror типична для Linux , где Konqueror имеет большинство пользователей. В общем, поддержка форматов браузерами во многом продиктована конфликтующими интересами поставщиков, в частности, тем, что Media Foundation и QuickTime поддерживают коммерческие стандарты, тогда как GStreamer и Phonon не могут юридически поддерживать другие форматы, кроме бесплатных, по умолчанию в бесплатных операционных системах, для которых они предназначены. .

Статус поддержки видеоформатов в каждом веб-браузере
Браузер Операционная система Теора ( Огг ) H.264 ( MP4 ) HEVC ( MP4 ) VP8 ( WebM ) VP9 ( WebM ) AV1 ( WebM )
Браузер Android Android Начиная с 2.3 Начиная с версии 3.0 Начиная с 5.0 Начиная с 2.3 Начиная с 4.4 С 10
Хром Unix-подобные и Windows Начиная с r18297 Через FFmpeg Нет Начиная с r47759 Начиная с r172738 да
Гугл Хром Unix-подобные, Android, macOS и Windows Начиная с версии 3.0 Начиная с версии 3.0 Нет Начиная с 6.0 Начиная с 29.0 С 70
Internet Explorer Окна Через OpenCodecs Начиная с 9.0 Нет Через OpenCodecs Нет Нет
телефон с операционной системой Виндоус Нет Начиная с 9.0 Нет
Windows RT Начиная с 10.0
Microsoft Edge Unix-подобные, macOS и Windows

(Хром)

Начиная с v79 Начиная с версии 79 (только браузер с поддержкой DRM PlayReady) Нет Начиная с v79 Начиная с v79 Начиная с v79
Windows 10 (устаревший EdgeHTML) Начиная с версии 17.0 (с расширениями веб-медиа ) Начиная с 12.0 Требуется аппаратный декодер Поскольку (тэг <видео> с 17,0 Web Media Extensions и VP9 Видео Extensions ) Включено по умолчанию только при наличии аппаратного декодера

Поскольку (тэг <видео> с 17,0 Web Media Extensions и VP9 Видео Extensions )

Начиная с 18.0 (с расширением видео AV1 )
Windows 10 Mobile Нет Начиная с 13.0 Начиная с 15.0 (только через MSE ) Начиная с 14.0 (только через MSE ) Нет
Konqueror Unix-подобные и Windows Требуются кодеки уровня ОС
Mozilla Firefox Windows 7+ Начиная с версии 3.5 Начиная с 21.0 Нет Начиная с 4.0 Начиная с 28.0 Начиная с 65.0
Виндоус виста Начиная с 22.0
Редакции Windows XP и N Начиная с 46.0
Linux 26.0 (через GStreamer )
43.0 (через FFmpeg )
С 67
Android Начиная с версии 17.0 в Nightly
macOS Начиная с 34.0 Начиная с 66.0
ОС Firefox Начиная с версии 1.1 Нет
Opera Mobile Android, iOS, Symbian и Windows Mobile Начиная с 13.0 С 11.50 Нет Начиная с 15.0 Начиная с версии 16.0 с 57.0
Опера macOS, Windows, Linux Начиная с 10.50 Начиная с 24.0 Начиная с 10.60 да с 57.0
Сафари iOS Нет Начиная с версии 3.1 С 11 Начиная с 12.1 (поддерживает только WebRTC ) С 14 (поддерживает только WebRTC ) Нет
macOS Через компоненты Xiph QuickTime ( macOS 10.11 и более ранние версии )
GNOME Web Linux и BSD Требуются кодеки уровня ОС
Примечания

Управление цифровыми правами (зашифрованные мультимедийные расширения)

HTML поддерживает управление цифровыми правами (DRM, ограничение использования контента) через HTML5 Encrypted Media Extensions (EME). Добавление DRM вызывает споры, потому что оно позволяет ограничить свободу пользователей использовать носители, ограниченные DRM, даже если добросовестное использование дает пользователям законное право на это. Главный аргумент в одобрении W3C EME заключался в том, что видеоконтент в противном случае доставлялся бы в плагинах и приложениях, а не в веб-браузере.

В 2013 году Netflix добавила поддержку видео HTML5 с использованием EME, помимо старого метода доставки с использованием плагина Silverlight (также с DRM).

использование

В 2010 году, после выпуска Apple iPad и после того, как Стив Джобс объявил, что мобильные устройства Apple не будут поддерживать Flash , ряд известных сайтов начали показывать видео H.264 HTML5 вместо Adobe Flash для пользовательских агентов, идентифицируемых как iPad. . Видео HTML5 не было так широко распространено, как Flash-видео, хотя были развернуты экспериментальные видеоплееры на основе HTML5 от DailyMotion (с использованием форматов Ogg Theora и Vorbis), YouTube (с использованием форматов H.264 и WebM) и Vimeo (с использованием H Формат .264).

Поддержка видео HTML5 неуклонно растет. В июне 2013 года Netflix добавил поддержку видео HTML5. В январе 2015 года YouTube по умолчанию перешел на использование видео HTML5 вместо Flash. В декабре 2015 года Facebook перешел с Flash на HTML5 для всего видеоконтента.

По состоянию на 2016 год Flash по-прежнему широко используется на настольных компьютерах, но, как правило, не поддерживается на мобильных устройствах, таких как смартфоны. Широко распространено мнение, что подключаемый модуль Flash, в том числе Adobe, будет постепенно выведен из употребления, в результате чего видео HTML5 останется единственным широко поддерживаемым методом воспроизведения видео во всемирной паутине. Chrome, Firefox, Safari и Edge планируют сделать так, чтобы почти весь флеш-контент воспроизводился по щелчку мыши в 2017 году. Единственный крупный браузер, который не объявил о планах отказаться от Flash, - это Internet Explorer. Adobe объявила 25 июля 2017 года, что окончательно прекратит разработку Flash в 2020 году.

Смотрите также

использованная литература

внешние ссылки

Категория; Мультимедиа