Pull to refresh

Flash и HTML5-тег «video» — позиция YouTube

Reading time5 min
Views14K
Original author: John Harding
Пару дней назад YouTube разместил в своем блоге интересный пост.

Сразу скажу от себя, что в последнее время я с интересом наблюдаю за всем этим искусственно раздуваемым «противостоянием» Flash-платформы и HTML5, но уверен, что тема интересует не только меня.

Интересно, что многие бросаются в бой с головой с аргументами вроде «мы хотим открытые стандарты, мы не хотим этот ужасный, отвратительный и жутко проприетарный Flash, который к тому же еще и всего-лишь навсего плагин!». Вот именно внимание таких людей я и хочу обратить на то, что «HTML5» (в частности тег <video>) — это не серебряная пуля, и я сторонник точки зрения, что Великое Пришествие HTML5 не решит разом всех проблем.

Рано или поздно кто-то должен был обозначить (более-менее) объективную позицию по этой теме и вот это сделали YouTube, а они, будем надеяться, хоть что-то да смыслят в таких вещах как «видео» и «флэш».

Итак, собственно, перевод. Поехали.

В последнее время было множество дискуссий и споров о том, станет ли в конце концов вожделенный тег HTML5 <video> заменой Flash Player'у для проигрывания видео онлайн. Нас самих уже долгое время интересуют подвижки, связанные с HTML И тегом <video>, и большую часть видео на YouTube уже можно просматривать с помощью нашего HTML5-плеера. Его работа показала нам, что хотя тег <video> — это большой шаг в сторону открытых стандартов, платформа Adobe Flash продолжит играть критическую роль в доставке видео в интернете.

Важно понимать, чего же именно такому сайту, как YouTube, нужно от браузера для того, чтобы сервис устраивал и зрителей, и создателей самого видео-контента. Здесь необходимо чуть больше усилий, чем просто указать браузеру на видео-файл, как это делает тег <img> с картинками — на практике все оказывается сложнее, чем просто достать и показать видео. Разумеется, тег <video> реализует самые необходимые базовые требования и кипит работа над выполнением остальных, но в текущем состоянии <video>-тег не в состоянии учесть все требования YouTube:

Стандартный формат видео


Первое и основное — нам нужно, чтобы все браузеры поддерживали стандартный формат видео. Пользователи загружают на YouTube по 24 часа видео каждую минуту, так что важно минимизировать количество поддерживаемых форматов. Особенно, если иметь в виду, что для каждого видео-формата можно сделать еще и несколько размеров (360p, 480p, 720p, 1080p). Мы тут кодируем видео для YouTube кодеком H.264 с самого 2007-го года, и используем этот кодек как для Flash Player'а, так и для мобильников iPhone и Android-фонов. Это позволяет нам легко запустить HTML5-видео в браузерах, которые поддерживают H.264, например, в Chrome и Safari.

Беспокойство о патентах и лицензиях привели к тому, что некоторые браузеры не поддерживают H.264, а это, в свою очередь, привело к тому, что в спецификации HTML5 нет требования о поддержке стандартного формата видео. Мы считаем, что вебу нужна альтернатива в виде открытого формата. Такого, который не только будет разрешать нюансы лицензирования, но также будет учитывать специфичные особенности видео в вебе. В этом плане, мы заинтересованы в успехе нового проекта WebM. Например, Google, в качестве вклада в общее доброе дело, открывает исходники VP8 и делится ими с WebM. Google, Mozilla и Opera поддерживают WebM и мы уже начинаем работать над тем, чтобы видео было доступно в этом формате. Adobe также пообещал поддержку VP8, видео-кодека для WebM, в будущих релизах Flash Player'а.

Полноценное потоковое видео


Вместе с необходимостью стандартного видео-формата, также нужны эффективные и надежные средства для собственно доставки видео в браузер. Простое указание браузеру нужного URL недостаточно — это не дает пользователю возможности указать напрямую на кусок видео, который его интересует. В то время как мы двигаемся к размещению полнометражных фильмов и освещению событий в прямом эфире, становится очень важно иметь достаточный контроль над «буфером» и качеством (причем, «на лету»).

Flash Player позволяет решить подобные вопросы, позволяя приложениям самим управлять скачиванием и проигрыванием видео с помощью Actionscript, одновременно используя либо HTTP, либо RTMP-протокол для потокового видео. HTML5-стандарт сам по себе не рассматривает никаких проблем, связанных с протоколами потокового видео, но многие независимые организации работают над улучшением передачи видео через HTTP. Мы тоже начинаем прикладывать к этому усилия и надеемся увидеть единый стандарт в будущем.

Защита контента


YouTube — не владелец тех видео, которые вы смотрите — ими владеют их создатели, авторы, которые и контролируют как именно видео распространяются через YouTube. Для YouTube Rentals, например, владельцы видео требуют от нас технологий для защиты потока, такого как RTMPE-протокол во Flash, чтобы предотвратить дальнейшее (нелегальное) распространение. Без подобных технологий защиты, мы не смогли бы предлагать вот этого видео.

Инкапсуляция и внедрение


Возможность Flash Player'а соединять код приложения и ресурсы в эдакий защищенный и эффективный контейнер — одна из ключевых в возможности встраивать видео с YouTube в другие веб-сайты. Владельцы сайтов должны быть уверены, что внедренный в страницу контент не сможет получить конфиденциальную информацию пользователя, а мы должны быть уверены, что вся логика нашего плеера (для таких фич, как «надписи», «аннотации», «реклама») будет отправлена вместе с видео. В то время как HTML5 добавляет функциональность по изоляции (sandboxing) и передаче сообщений, Flash — единственный механизм, который большинство сайтов готовы использовать для внедрения контента с других сайтов.

Полноэкранное видео


HD-видео так и просится быть показанным во весь экран, но это исторически не было возможно с помощью чистого HTML. Хотя в большинстве браузеров есть полноэкранный режим, они не позволяют активизировать его с помощью JavaScript, также как не позволяют развернуть на весь экран определенную часть страницы (например, видео-плеером). Flash Player в этом плане предоставляет полноценное и безопасное решение для проигрывания полноэкранного видео с поддержкой аппаратного ускорения. Хотя WebKit недавно совершил пару шагов в поддержке полноэкранного режима, этого недостаточно для проигрывания видео (если точнее — возможности показывать дополнительный контент поверх видео).

Доступ к камере и микрофону


Видео движется не только в одну сторону. Каждый день, тысячи пользователей записывают видео напрямую на YouTube из своих браузеров, используя веб-камеры, что было бы невозможно без Flash-технологии. Доступ к камере также нужен для таких штучек, как видео-чат и вещание в режиме «онлайн» — особенно важно для мобильных телефонов, ведь практическив любом из них есть встроенная камера. Flash Player предлагает богатые возможности по доступу к камере и микрофону уже несколько лет, в то время как у HTML5 еще все только начинается.

Мы рады видеть такие активные и полные энтузиазма дискуссии по поводу развития веб-стандартов — ведь YouTube зависит от улучшений в браузерах, чтобы в свою очередь развивать средства просмотра видео для пользователей. В то время как поддержка видео в HTML5 позволит нам показывать наши видео-ролики на компьютерах и устройствах, которые не поддерживают Flash Player, она пока не соответствует всем нашим требованиям. На сегодняшний же день, Adobe Flash является лучшей платформой, подходящей под наши требования, и именно поэтому наш основной видео-плеер сделан именно на Flash.

John Harding, Software Engineer


Как видите, стандарт — это стандарт, но он может не учитывать многие вещи, потому как практика зачастую выходит за рамки стандартов, что происходит и с HTML5. Так что нужно рассматривать проблему чуть менее поверхностно, и даже с точки зрения простого проигрывания видео, просто взять и выбросить Flash как он есть (как этого хочет Apple) — так просто не удастся.

P.S. И нет, я не фанат Flash-технологии самой по себе, а просто считаю, что это обычный инструмент, решающий определенные задачи. Включая проигрывание видео.

Что обо всем этом думают Хабра-people?
Tags:
Hubs:
+148
Comments118

Articles

Change theme settings