<video> — элемент, включённый в HTML5, который используется для воспроизведения видеозаписей, частично заменяя элемент <object>.
Adobe Flash Player широко использовался для встраивания содержимого видеофайлов на сайтах например, YouTube. Flash Player был доступен в качестве плагина для большинства веб-браузеров последних версий (таких как Mozilla Firefox, SeaMonkey, Opera и Safari), и несовместим, например, со встроенными браузерами на iPod и iPhone от Apple, а также с Android версии 2.01 или меньше, версии 4.1.x и выше (официально).
Google Chrome с некоторых пор имел данный плагин по умолчанию, но после прекращения поддержки Flash он был удалён.
По состоянию на 2020 год HTML видео является единственной широко поддерживаемой технологией воспроизведения видео в современных браузерах, а плагин Flash постепенно отменялся.
Пример использования элемента <video> Ниже приводится фрагмент кода на HTML5, который позволяет встроить WebM-видео на веб-сайт:<video src="movie.webm" poster="movie.jpg" controls> Этот текст будет отображаться в случае, если элемент <video> не поддерживается браузером. </video>
Множественность ресурсов Используя любое количество элементов <source>, как показано ниже, браузер выберет автоматически, какой файл загружать. Также, чтобы добиться того же результата, можно использовать функцию canPlay() из JavaScript. Атрибут «type» определяет тип MIME и список кодеков, которые помогают браузеру определить, может ли он декодировать файл. Из-за отсутствия общего видеоформата множественность ресурсов является важной особенностью для того, чтобы избегать «фырканья» браузера, что склоняет его к ошибке: известно, что любые знания веб-разработчиков о браузерах будут неполными, браузер знает о себе больше. <video poster="movie.jpg" controls> <source src='movie.webm' type='video/webm; codecs="vp8.0, vorbis"'/> <source src='movie.ogv' type='video/ogg; codecs="theora, vorbis"'/> <source src='movie.mp4' type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'/> <p>Этот текст будет отображаться в случае, если элемент <video> не поддерживается браузером.</p> </video>https://www.youtube.com/watch?v=oVXfk99dRAc?si=i3opHzF4ZnTaL6AJ
Поддерживаемые видеоформаты Текущий проект спецификации HTML5 не уточняет, какие форматы должны поддерживаться в теге <video>. Пользовательские агенты имеют право поддерживать любой подходящий видеоформат.
Ограничения поддержки форматов с системным кодеками? Существует несколько причин, по которым не все форматы, для которых имеются системные кодеки, получают поддержку: Это попытка «спихнуть» стандартизацию на пользователей. Они могут выработать стандарт де-факто, который на поверку окажется платным. Пострадают от этого разработчики свободного ПО, вебмастера мелких сайтов и владельцы карманных устройств с нетрадиционными ОС. Поскольку в мире нет единой культуры, в разных концах Земли стандартом могут стать разные форматы. До HTML5 атаки (переполнение буфера и подобные) на системные кодеки были малорезультативны: требуется скачать «отравленный» файл и запустить его вручную, к тому же может сработать антивирус, а маленький размер эксплойта вызовет подозрение. Как только проигрывание видео станет массовым и автоматическим, на системные кодеки — в том числе старые и слабо поддерживаемые — обрушатся такие атаки, что мало кто выдержит. Редкий формат видео с подписью «чтобы увидеть, установите кодек» — это возрождение надписи 90-х годов «чтобы увидеть, установите ActiveX-компонент». Веб-стандарты создаются не для этого: веб должен быть доступным всем, независимо от ОС и дополнительного ПО.
Дебаты насчёт стандартного видеоформата
Рабочая группа HTML5 считает, что желательно определить по крайней мере один видеоформат, который бы поддерживался всеми браузерами. Идеальный формат в этом отношении должен: иметь хорошее сжатие, хорошее разрешение изображения и низкие затраты работы процессора для расшифровки; быть бесплатным; для формата должен существовать аппаратный декодер, так как многие встроенные процессоры слишком слабы, чтобы раскодировать видео программно.
Изначально Ogg Theora был рекомендуемым стандартом для HTML5, потому что он не был затронут никакими известными патентами. Но 10 декабря 2010 года спецификация HTML5 была подкорректирована, изменились ссылки на конкретные форматы:
с дополнением:
Хотя Theora не затронута известными патентами, такие компании как Apple (владелец некоторых патентов на H.264 и член MPEG LA) и Nokia заявили, что опасаются неизвестных патентов, чьи собственники могли бы ждать корпорацию с финансовыми ресурсами, чтобы предъявить иск по использованию данного формата. С несвободными кодеками H.264 и MP3 это тоже может случиться, но Apple уже использует их, и поэтому только использование Ogg было бы для неё дополнительным риском. Apple также возражает против требования о поддержке формата Ogg в HTML5 на тех основаниях, что некоторым приспособлениям поддерживать другие форматы намного легче, и что HTML ни разу за всю историю его существования не требовал особые форматы для чего-либо.
Некоторые веб-разработчики раскритиковали удаление Ogg-форматов из спецификации. Последующее обсуждение также произошло и в FAQ блоге W3C.
H.264/MPEG-4 AVC широко используем и обладает хорошей скоростью, сжатием, декодером для аппаратных средств, но он уже запатентован. Кроме особых случаев, пользователям H.264 приходится платить за лицензию MPEG LA — группе патентодержателей, включая Apple и Microsoft. В итоге упоминание кодер-декодера по умолчанию было убрано.
Google покупает On2 Приобретение компанией Google происходит в результате выпуска формата VP8, который является бесплатным открытым стандартом, и создания WebM Project, который соединяет VP8 video с Vorbis audio в контейнер Matroska. Выпуск VP8 был также поддержан Free Software Foundation.
В январе 2011 года Google объявил, что собирается прекратить поддержку H.264 в Chrome, многие критиковали это, включая Питера Брайта из Ars Technica и «веб-проповедника» Тима Снита из Microsoft, которые заявили, что скорее эсперанто объявят официальным языком США, чем Google продвинется в этом деле. Однако Говард Моен из Opera Software сильно раскритиковал статью Ars Technica, и Google ответила на реакцию, объяснив своё решение тем, что они намерены продвигать WebM в своих продуктах на основе их открытости.
Браузерная поддержка
Значения Значения показывают уровень поддержки в самых последних версиях разметки или (если известен номер версии) в указанной версии. Номер версии без каких-либо других значений указывает на версию, с которой впервые полностью поддерживаются все необходимые свойства для разметки.
Значение Описание
Да показывает, что разметка полностью поддерживает данное свойство/элемент, когда используются правильные значения Нет показывает, что свойство/элемент полностью игнорируется Частично показывает, что свойство/элемент понято, но не все его значения поддерживаются. Поддерживаемые значения выполняются правильно. Неправильно показывает, что свойство/элемент понято, но работает правильно не во всех случаях. Экспериментальнопоказывает, что свойство/элемент понято, но поддерживается под другим именем. Может быть незавершённым или содержать ошибки Поддержка прекращена показывает, что свойство/элемент больше не поддерживается Сборка по расписанию показывает, что свойство/элемент поддерживается в некоторой степени в экспериментальной/ночной сборке. Ожидается поддержка в будущем. По-разному показывает, что свойство/элемент поддерживается только на определённых платформах или если сконфигурированы определённые условия.
Таблица
Эта таблица показывает, какие видеоформаты, вероятно, будут поддерживаться указанным браузером. Большинство браузеров, представленных здесь, использует мультимедийный фреймворк для раскодирования и отображения видеофайла, а не включает такие компоненты в программное обеспечение. Как правило, невозможно перечислить все форматы, которые поддерживает мультимедийный фреймворк без их запроса, так как всё зависит от операционной системы и типа кодер-декодера. В таких случаях поддерживаемый видеоформат является атрибутом для фреймворка, а не для браузера или его разметки; браузер обязательно спрашивает свой мультимедийный фреймворк, прежде чем отвергнуть неизвестный видеоформат. Видеоформат может быть определён с помощью MIME в HTML (см. example) MIME используется для уточнения у мультимедийных фреймворках о поддерживаемых форматах.
Среди этих браузеров только Firefox, Opera и используют библиотеки для встроенного раскодирования. На деле Internet Explorer и Safari также могут обеспечивать поддержку определённых форматов, потому что их изготовители также сделали их мультимедийными фреймворками. С другой стороны, Konqueror поддерживает те же форматы, что и Internet Explorer на Windows и Safari на Mac OS X, но указанная здесь поддержка для Konqueror типична для GNU/Linux, где Konqueror в основном и используется. В основном поддержка браузерами какого-либо формата навязана конфликтующими интересами производителей; в особенности Media Foundation и QuickTime поддерживают проприетарные стандарты, тогда как GStreamer и Phonon не могут законно ничего поддерживать, кроме свободных форматов на свободных операционных системах, для которых они созданы.
Браузер Форматы, поддерживаемые различными веб-браузерами Ogg Theora H.264 VP8 (WebM) Остальные Internet ExplorerСамостоятельная установка Самостоятельная установка Mozilla Firefox Google Chrome Chromium SafariСамостоятельная установка Самостоятельная установка По-разному Opera Konqueror По-разному По-разному Epiphany По-разномуПо-разному По-разному
Использование С апреля 2010 года вслед за запуском iPad от Apple несколько сайтов с высокой посещаемостью стали выдавать H.264 HTML5 видео вместо Flash для браузеров, идентифицирующих себя как iPad.
В мае 2010 года HTML5 video ещё не так широко распространено, как Flash видео, хотя DailyMotion недавно массово выпустил экспериментальные видео-плееры на основе HTML5 (использующие форматы Ogg Theora и Vorbis), YouTube (использующий форматы H.264 и WebM) и Vimeo(использующий формат H.264) намекают, что интерес к приему HTML5 видео увеличивается.
Некоторые крупные публикующие видео веб-сайты опубликовали решение продолжить использование технологий, отличающихся от HTML5 video.Gigaom.com: Netflix has no plans to use HTML5 Pseudocoder: Why HTML5 won’t replace Flash Согласно статье блога YouTube, тег <video> не удовлетворяет всем потребностям веб-сайтов, таких как YouTube. В заявленные важные причины входит необходимость стандартного формата, отсутствие эффективного и надёжного метода для передачи видео браузеру, неспособность JavaScript отображать видео на полный экран и проблема защиты содержимого. Хулу также не принял HTML5 video из-за отсутствия функций для обеспечения пользователя адаптивным битрейтом для видео, «защиты» контента и предоставления рекламодателям данных. Netflix заявил, что есть много проблем, которые мешают ему использовать HTML5 video: приемлемые контейнерные A/V форматы; допустимые аудио и видео кодер-декодеры, потоковый протокол, метод для потокового протокола, чтобы адаптировать его к доступным диапазонам частот, метод для передачи информации о доступных потоках и другие параметры для модуля воспроизведения потока данных; метод поддержки защищенных данных; и метод отображения всей этой функциональности в HTML5.
11 января 2011 года Google’s Chromium Project объявил в своем блоге, что поддержка закрытых кодер-декодеров(например, H.264) будет удалена из будущих версий Chrome-а. В объявлении Chromium особенно выделялось то, что эта ликвидация была попыткой увеличить популярность использования HTML5 и тега <video> без необходимости лицензирования патентованных технологий, стимулируя всю сеть принять общедоступный кодер-декодер для VP8 и Theora.
Предложение добавить DRM