Ниже приводится фрагмент кода на HTML5, который позволяет встроить WebM видео на веб-сайт:
<videosrc="movie.webm"poster="movie.jpg"controls>
This is fallback content to display if the browser
does not support the video element.
</video>
Множественность ресурсов
Используя любое количество элементов <source>, как показано ниже, браузер выберет автоматически, какой файл загружать. Также, чтобы добиться того же результата, можно использовать функцию canPlay() из JavaScript. Атрибут «type» определяет тип MIME и список кодеков, которые помогают браузеру определить, может ли он декодировать файл. Из-за отсутствия общего видеоформата множественность ресурсов является важной особенностью для того, чтобы избегать «фырканья» браузера, что склоняет его к ошибке: известно, что любые знания веб-разработчиков о браузерах будут неполными, браузер знает о себе больше[источник не указан 504 дня].
Текущий проект спецификации HTML5 не уточняет, какие форматы должны поддерживаться в теге <video>. Пользовательские агенты имеют право поддерживать любой подходящий видеоформат[источник не указан 408 дней].
Почему нельзя поддерживать те форматы, на которые есть системные кодеки?
Возникает вопрос: почему бы не поддерживать все форматы, на которые в системе есть кодек? Этому есть несколько причин.
Это попытка «спихнуть» стандартизацию на пользователей. Они могут выработать стандарт де-факто, который на поверку окажется платным. Пострадают от этого разработчики свободного ПО, вебмастера мелких сайтов и владельцы карманных устройств с нетрадиционными ОС. Поскольку в мире нет единой культуры, в разных концах Земли стандартом могут стать разные форматы.
До HTML5 атаки (переполнение буфера и подобные) на системные кодеки были малорезультативны: требуется скачать «отравленный» файл и запустить его вручную, к тому же может сработать антивирус, а маленький размер эксплойта вызовет подозрение. Как только проигрывание видео станет массовым и автоматическим, на системные кодеки — в том числе старые и слабо поддерживаемые — обрушатся такие атаки, что мало кто выдержит.
Редкий формат видео с подписью «чтобы увидеть, установите кодек» — это возрождение надписи 90-х годов «чтобы увидеть, установите ActiveX-компонент». Веб-стандарты создаются не для этого: веб должен быть доступным всем, независимо от ОС и дополнительного ПО.
Рабочая группа HTML5 считает, что желательно определить по крайней мере один видеоформат, который бы поддерживался всеми браузерами. Идеальный формат в этом отношении должен:
иметь хорошее сжатие, хорошее разрешение изображения и низкие затраты работы процессора для расшифровки;
быть бесплатным;
для формата должен существовать аппаратный декодер, так как многие встроенные процессоры слишком слабы, чтобы раскодировать видео программно.
Изначально, OggTheora был рекомендуемым стандартом для HTML5, потому что он не был затронут никакими известными патентами. Но 10 декабря 2010 года спецификация HTML5 была подкорректирована,[5] изменились ссылки на конкретные форматы:
Браузеры должны поддерживать видеоформат Theora и аудиоформат Vorbis, а также контейнерный формат Ogg.
Было бы очень полезно для функциональной совместимости, если бы все браузеры смогли поддерживать один кодер-декодер. Но не существует ни одного такого кодер-декодера, который бы удовлетворял всех: нам нужен такой кодер-декодер, который, как известно, не требует лицензирования, который совместим с современной развивающейся моделью, который имеет достаточно качеств, чтобы быть пригодным, и который не станет подводным камнем для крупных компаний. Это текущая проблема, и эта часть будет ещё доработана.[7]
Хотя Theora не затронута известными патентами, такие компании как Apple (владелец некоторых патентов на H.264 и член MPEG LA)[8] и Nokia[обновить данные] заявили, что опасаются неизвестных патентов, чьи собственники могли бы ждать корпорацию с финансовыми ресурсами, чтобы предъявить иск по использованию данного формата.[9][10] С несвободными кодеками H.264 и MP3 это тоже может случиться, но Apple уже использует их, и поэтому только использование Ogg было бы для неё дополнительным риском. Apple также возражает против требования о поддержке формата Ogg в HTML5 на тех основаниях, что некоторым приспособлениям поддерживать другие форматы намного легче, и что HTML ни разу за всю историю его существования не требовал особые форматы для чего-либо.[10]
H.264/MPEG-4 AVC широко используем и обладает хорошей скоростью, сжатием, декодером для аппаратных средств, но он уже запатентован.[15] Кроме особых случаев, пользователям H.264 приходится платить за лицензию MPEG LA — группе патентодержателей, включая Apple и Microsoft.[16] В итоге упоминание кодер-декодера по умолчанию было убрано.
В январе 2011 года Google объявил, что собирается прекратить поддержку H.264 в Chrome, многие критиковали это, включая Питера Брайта из Ars Technica[18] и «веб-проповедника» Тима Снита из Microsoft, которые заявили, что скорее эсперанто объявят официальным языком США, чем Google продвинется в этом деле.[19] Однако Говард Моен из Opera Software сильно раскритиковал статью Ars Technica[20], и Google ответила на реакцию, объяснив своё решение тем, что они намерены продвигать WebM в своих продуктах на основе их открытости.
Браузерная поддержка
Значения
Значения показывают уровень поддержки в самых последних версиях разметки или (если известен номер версии) в указанной версии. Номер версии без каких-либо других значений указывает на версию, с которой впервые полностью поддерживаются все необходимые свойства для разметки.
Значение
Описание
Yes
показывает, что разметка полностью поддерживает данное свойство/элемент, когда используются правильные значения
No
показывает, что свойство/элемент полностью игнорируется
Partial
показывает, что свойство/элемент понято, но не все его значения поддерживаются. Поддерживаемые значения выполняются правильно.
Incorrect
показывает, что свойство/элемент понято, но работает правильно не во всех случаях.
Experimental
показывает, что свойство/элемент понято, но поддерживается под другим именем. Может быть незавершённым или содержать ошибки
Dropped
показывает, что свойство/элемент больше не поддерживается
Вы можете помочь проекту, обновив её и убрав после этого данный шаблон.
Эта таблица показывает, какие видео-форматы вероятно будут поддерживаться указанным браузером. Большинство браузеров, представленных здесь, используют multimedia framework для раскодирования и отображения видео-файла, а не включают такие компоненты в программное обеспечение. Как правило, невозможно перечислить все форматы, которые поддерживает multimedia framework без их запроса, так как всё зависит от операционной системы и типа кодер-декодера.[21] В таких случаях поддерживаемый видео-формат является атрибутом для framework, а не для браузера или его разметки; браузер обязательно спрашивает свой multimedia framework, прежде чем отвергнуть неизвестный видео-формат. Видео-формат может быть определён с помощью MIME в HTML. (Смотри example) MIME используется для уточнения у multimedia frameworks о поддерживаемых форматах. [note 1]
Среди этих браузеров только Firefox, Opera и Origyn[англ.] используют библиотеки для встроенного раскодирования. На деле Internet Explorer и Safari также могут обеспечивать поддержку определённых форматов, потому что их изготовители также сделали их multimedia frameworks. С другой стороны, Konqueror поддерживает те же форматы, что и Internet Explorer на Windows и Safari на Mac OS X, но указанная здесь поддержка для Konqueror типична для GNU/Linux, где Konqueror в основном и используется. В основном поддержка браузерами какого-либо формата навязана конфликтующими интересами производителей; в особенности Media Foundation и QuickTime поддерживают проприетарные стандарты, тогда как GStreamer и Phonon не могут законно ничего поддерживать, кроме свободных форматов на свободных операционных системах, для которых они созданы.
С апреля 2010 года вслед за запуском iPad от Apple несколько сайтов с высокой посещаемостью стали выдавать H.264 HTML5 видео вместо Flash для браузеров, идентифицирующих себя как iPad.[55]
В мае 2010 года HTML5 video ещё не так широко распространено, как Flash видео, хотя DailyMotion[56] недавно массово выпустил экспериментальные видео-плееры на основе HTML5 (использующие форматы Ogg Theora и Vorbis), YouTube[57] (использующий форматы H.264 и WebM) и Vimeo[58](использующий формат H.264) намекают, что интерес к приему HTML5 видео увеличивается.
Некоторые крупные публикующие видео веб-сайты опубликовали решение продолжить использование технологий, отличающихся от HTML5 video.[59][60][61] Согласно статье блога YouTube, тег <video> не удовлетворяет всем потребностям веб-сайтов, таких как YouTube.[62] В заявленные важные причины входит необходимость стандартного формата, отсутствие эффективного и надежного метода для передачи видео браузеру, неспособность JavaScript отображать видео на полный экран и проблема защиты содержимого. Хулу также не принял HTML5 video из-за отсутствия функций для обеспечения пользователя адаптивным битрейтом для видео, «защиты» контента и предоставления рекламодателям данных.[63]Netflix заявил, что есть много проблем, которые мешают ему использовать HTML5 video: приемлемые контейнерные A/V форматы; допустимые аудио и видео кодер-декодеры, потоковый протокол, метод для потокового протокола, чтобы адаптировать его к доступным диапазонам частот, метод для передачи информации о доступных потоках и другие параметры для модуля воспроизведения потока данных; метод поддержки защищенных данных; и метод отображения всей этой функциональности в HTML5.[60][64]
11 января 2011 года Google's Chromium Project объявил в своем блоге, что поддержка закрытых кодер-декодеров(например, H.264) будет удалена из будущих версий Chrome-а. В объявлении Chromium особенно выделялось то, что эта ликвидация была попыткой увеличить популярность использования HTML5 и тега <video> без необходимости лицензирования патентованных технологий, стимулируя всю сеть принять общедоступный кодер-декодер для VP8 и Theora.
Предложение добавить DRM
Внесённое в W3C предложение добавить в HTML5 API для DRM было встречено крайне негативно теми, кто считает одним из основных свойств веб-стандартов[англ.] типа HTML, и преимуществ их перед плагинами, открытость или отсутствие требований использования программного или аппаратного обеспечения от определённого поставщика (как на стороне клиента, так и на стороне сервера).[65][66][67][68]
В «живом стандарте HTML», развиваемом WHATWG, планов о добавлении DRM не появилось.[69]
↑ 12Any format supported by Phonon on Qt 4.5.[51] Format support depends on the backend of Phonon. Available Phonon backends include GStreamer and xine; backends using MPlayer and VLC are in development.
↑ 123Any format supported by GStreamer on Webkit/GTK+ builds of Epiphany.
Примечания
↑The video element (неопр.). HTML5: A vocabulary and associated APIs for HTML and XHTML. World Wide Web Consortium (24 июня 2010). — «A video element is used for playing videos or movies.» Дата обращения: 27 сентября 2010. Архивировано из оригинала 25 августа 2012 года.
↑AVC/H.264 Patent List(PDF), MPEG LA, 1 Февраля 2010 года, Архивировано(PDF)14 мая 2015, Дата обращения: 20 августа 2011{{citation}}: Проверьте значение даты: |date= (справка)Источник (неопр.). Дата обращения: 20 августа 2011. Архивировано 14 мая 2015 года.
↑AVC/H.264 Licensors, MPEG LA, Архивировано30 мая 2015, Дата обращения: 20 августа 2011Источник (неопр.). Дата обращения: 20 августа 2011. Архивировано 30 мая 2015 года.
↑Kevin Carle and Chris Zacharias (20 Января 2010 года), Introducing YouTube HTML5 Supported Videos, Official YouTube Blog, Архивировано7 сентября 2012, Дата обращения: 12 марта 2010{{citation}}: Проверьте значение даты: |date= (справка)Источник (неопр.). Дата обращения: 20 августа 2011. Архивировано 7 сентября 2012 года.
↑Dougherty, Brad (21 Января 2010 года), Try our new HTML5 player!, Vimeo Staff Blog, Архивировано4 марта 2010, Дата обращения: 12 марта 2010{{citation}}: Проверьте значение даты: |date= (справка)Источник (неопр.). Дата обращения: 20 августа 2011. Архивировано 4 марта 2010 года.
↑Hachamovitch, Dean (29 Апреля 2010 года), HTML5 Video, Microsoft, Архивировано11 мая 2010, Дата обращения: 5 мая 2010{{citation}}: Проверьте значение даты: |date= (справка)Источник (неопр.). Дата обращения: 21 августа 2011. Архивировано 11 мая 2010 года.
↑Firefox Nightly Builds, Mozilla, Архивировано10 ноября 2016, Дата обращения: 21 августа 2011Источник (неопр.). Дата обращения: 21 августа 2011. Архивировано 10 ноября 2016 года.
↑Bankoski, Jim (2010-05-19), WebM and VP8 land in Chromium, Google, Архивировано21 мая 2010, Дата обращения: 21 августа 2011Источник (неопр.). Дата обращения: 21 августа 2011. Архивировано 21 мая 2010 года.
↑HTML5 Media Support, WebKit Open Source Project: Surfin' Safari, 12 Ноября 2007 года, Архивировано4 сентября 2021, Дата обращения: 11 марта 2010{{citation}}: Проверьте значение даты: |date= (справка)Источник (неопр.). Дата обращения: 21 августа 2011. Архивировано 4 сентября 2021 года.
↑Lie, Håkon Wium (19 Мая 2010 года), Welcome, WebM <video>!, Opera, Архивировано из оригинала21 марта 2011, Дата обращения: 21 августа 2011{{citation}}: Проверьте значение даты: |date= (справка)Источник (неопр.). Дата обращения: 21 августа 2011. Архивировано 21 марта 2011 года.
↑Davison, Peter (2010-03-03), KHTML Browsers including Konqueror, Legend Scrolls, Архивировано12 апреля 2010, Дата обращения: 12 марта 2010Источник (неопр.). Дата обращения: 21 августа 2011. Архивировано 12 апреля 2010 года.
↑Vestbø, Tor Arne (2008-05-13), Top Secret, Hush Hush!, Nokia Corporation, Архивировано из оригинала9 июля 2012, Дата обращения: 14 марта 2010Источник (неопр.). Дата обращения: 7 сентября 2017. Архивировано 9 июля 2012 года.
↑Dougherty, BradTry our new HTML5 player! (неопр.) Vimeo (21 января 2010). Дата обращения: 7 марта 2010. Архивировано из оригинала 25 августа 2012 года.