Доставка видео: HTTP PD или Flash Streaming

Количество онлайн видео проектов быстро растет. Я думаю в ближайшем времени их будет еще больше. Многие проекты встречаются с выбором технологии доставки видео контента. Это привело к большому количеству обсуждений, какой метод является «лучшим». В этой статье мы рассмотрим принципиальные отличия между HTTP Progressive Download и потоковым Flash Video и их влияние на Ваши проекты.

HTTP Progressive Download
Видео загружается в Flash Player по HTTP протоколу и отдается обычным веб сервером (как правило бесплатным), как обычная загрузка статичного контента. При начале воспроизведения видео пользователю как правило отображается полоса загрузки видео. Если маркер текущей видео позиции доходит до края полосы загрузки видео останавливается до тех пор пока не загрузится достаточное количество данных. Интернет пользователи с широким каналом смогут начать воспроизведение практически моментально, а пользователям с узким каналом необходимо дождаться когда в буфер загрузится достаточное количество данных.
Потоковое вещание — Flash Streaming
Потоковая доставка видео несколько сложнее. При правильной реализации существует несколько экземпляров видео контента, подготовленных с разными характеристиками качества. Разные видео потоки используются для доставки видео пользователям с разной шириной Интернет канала. Переключение качества видео потока может происходить незаметно для пользователя. Таким образом для повышения интерактивности воспроизведение видео может начинаться с наименьшего качества, а потом со временем плавно переключаться на повышенное качество. Кроме того пользователь может самостоятельно выбирать качество воспроизводимого видео.
Сравнительная характеристика
Интерактивность
Использование технологий стриминга позволяет быстрее начать воспроизведение, тем самым создавая у пользователя ощущение большей интерактивности видео портала. Такой эффект получается из-за двух причин: во-первых, RTMP обладает меньшим оверхедом, а во-вторых, начало воспроизведения можно выполнять в низком качестве, что обеспечивает более быстрое заполнение буфера.

Навигация по видео
Потоковая доставка видео позволяет существенно более эффективную реализацию навигации по видео контенту. Также перемещение текущей позиции видео просмотра реализуется существенно более эффективно с точки зрения трафика контент провайдера.

Однако здесь стоит отметить, что при навигации по уже загруженному видео контенту (перемотка назад) воспроизведение начнется существенно быстрее при использовании HTTP Progressive Download, т.к. видео уже загружено и это будет перемотка по уже загруженному файлу. В данной ситуации при потоковой доставке видео потребуется заново выполнить буферизацию.

Доставка видео
Видео, доставляемое при помощи HTTP PD сохраняются в пользовательском кеше. При этом возможны небольшие поттормаживания при записи видео в дисковый кеш — как правило, это случается на слабых компьютерах со скоростным интернетом.

Защита контента
Правообладатели, которые хотят сохранять контроль над своим контентом, как правило требуют использование потокового вещания, причем его шифрованный вариант (RTMPE). Потоковое вещание дает существенное преимущество — пользователям очень сложно сохранить видео контент на своем компьютере. При использовании HTTP Progressive Download пользователь всегда может получить доступ к локальному кешу браузера или загрузить видео с веб сервера (как это делает Flash Player при просмотре).
Если Вы планируете в своем проекте размещать видео контент крупных правообладателей — таких как Disney, Paramount — Вам определенно стоит ориентироваться на обеспечение возможности доставки видео при помощи потокового вещание в RTMPE.

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

Управление видео потоками
Flash Media Server позволяет выполнять интеллектуальное управление видео потоками. Например, возможна реализация функций ограничения доступа к HD качеству видео для не премиум пользователей, тем самым экономя на трафике и мотивируя пользователей переходить на премиум сервис.

Онлайн трансляции
Если Вы планируете осуществлять онлайн видео трансляции, тогда Вам необходимо реализовать потоковую доставку видео.

Стоимость
Потоковое вещание требует дополнительных затрат — Adobe Flash Media Server стоит $4500 за расширенную версию стримингового сервера.

Завключение
Повышенная стоимость и сложность реализации потоковой доставки видео привела к восприятию этого метода доставки видео как лучшего решения для всех ситуаций. Однако, во многих случаях HTTP Progressive Download является предпочтительным. Далее перечислены основные ситуации, когда следует использовать потоковое вещание.

Основные ситуации, при которых рекомендуется осуществлять потоковое вещание

  • Онлайн трансляции
  • Длительный контент (больше 10 минут)
  • Видео, которое часто просматривают не сначала
  • Быстрое начало просмотра для пользователей с медленным интернетом
  • Доставка премиум контента, требующего защиты

Примеры порталов, использующих потоковое вещание

Медиа серверы
Для полноты обзора (по совету viktorious) добавлю информацию по наиболее популярным медиа серверам.

  • Adobe Flash Media Server — $4500 за один сервер в версии Interactive и $1000 за Streaming версию. Поддержка RTMPE сертифицирована правообладателями только в нем.
  • Wowza Media Server — наиболее близкий конкурент Adobe FMS (более дешевый), с широким набором дополнительных функций и некоторых болезней, связанных с reverse engineering разработкой продукта. Очень полезна возможность перекладывания RTSP и других протоколов в RTMP.
  • Red5 — бесплатный сервер потокового вещания
  • Erlyvideo — с этим сервером мне пока не довелось встретиться