Размещение видео материалов на сайте

This post is also available in: Английский

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

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

  • Публичный хостинг — YouTube, RuTube, Vimeo
  • Профессиональный хостинг — онлайн видео платформы (Brightcove, Ooyala и др.)
  • Собственная видео инфраструктура

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

Удобным средством сравнения предложений различных видео хостингов является проект VidCompare, а в их блоге недавно появился пост о наиболее вероятном развитии событий на этом рынке. Факт наличия сервиса по сравнению различных поставщиков услуг и их широкий выбор, а также высокая активность M&A сделок на рынке говорит о существенной коммодизации услуги. Многие игроки на рынке стараются диверсифицировать свои предложения, поэтому возможно имеет смысл изучить основные функциональные возможности потенциальных претендентов (средства по аналитике, монетизации, поддерживаемые платформы, возможности кастомизации и др.).

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

Рост количества популярных платформ (iPhone, iPad, Android, Flash, Internet TV) в случае самостоятельной реализации видео инфраструктуры может привести к тому, что Вам придется тратить значительные средства на поддержание и развитие собственной видео платформы. Возможно, лучше сконцентрироваться на основном бизнесе, используя онлайн видео платформы или хотя бы аутсорсинг обслуживания инфраструктуры.

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

Настройка собственной инфраструктуры

Если Вы выбрали доставку видео контента своими силами, то руководство по конфигурации может быть Вам полезно.

Схема процесса размещения видео контента:

При размещении видео на портале Вам требуется решить три задачи:
1. Подготовка контента
Задача подготовки видео контента состоит из двух этапов: транскодирование и сегментирование.
Транскодирование видео в формат, воспринимаемый Интернет ресурсами, можно выполнить широким спектром средств: от бесплатного ffmpeg до промышленных ферм типа Rhozet Carbon. Для размещения на сайте как правило отлично подходит F4V формат Adobe с H.264 видео кодеком и AAC аудио кодеком. Если Вы планируете сделать возможность динамического выбора качества видео в видео плеере, то нужно сгенерировать несколько видео файлов с разным битрейтом.
Сегментирование видео контента необходимо при использовании HTTP Dynamic Streaming, чтобы видео плеер мог обращаться к произвольному участку видео файла без необходимости полной загрузки предыдущих фрагментов. Эта задача выполняется при помощи бесплатной утилиты Adobe f4fpackager. Скачать ее можно с сайта Adobe. Пример команды для сегментации файла:

1
f4fpackager --input-file=sample.f4v --output-path=/outputdir

2. Конфигурирование веб сервера
HTTP веб сервер выполняет две основные задачи: выдает фрагменты видео файла Flash видео плееру и кеширует наиболее популярные фрагменты (опционально). Часто для решения этих задач используют разные серверы. В нашем случае удобно использовать Apache с плагином для выдачи фрагментов и NGINX для кеширования наиболее популярных фрагментов по URL. Подробное руководство по настройке инфраструктуры приведено в отдельной статье. Для упрощения, если кеширование Вам не требуется, можно пропустить настройку кеширующего NGINX.
В случае использования Flash Media Server’а задача существенно упрощается, т.к. достаточно просто подложить файл в нужную директорию.
3. Видео плеер
Для воспроизведения видео контента необходимо встроить Flash видео плеер в HTML страницу.
В Интернете много инструкций по разработке Flash плееров. С появлением OSMF эта задача стала еще проще, но все равно требует некоторых навыков программирования. Если нет никакого желания программировать, то хорошим решением будет использование JWPlayer и FlowPlayer. В качестве альтернативы можете использовать наш open source видео плеер. В большинстве случаев все сводится к вставке нескольких строк кода в HTML страницу и указание URL видео контента сконфигурированного на предыдущем шаге.

1
2
3
4
5
6
7
8
<object type="application/x-shockwave-flash" id="ontivi" name="ontivi" align="middle" data="http://195.34.30.4/swf/ontivi.swf" width="800" height="450">
<param name="quality" value="high">
<param name="bgcolor" value="#fffdc5">
<param name="allowscriptaccess" value="sameDomain">
<param name="allowfullscreen" value="true">
<param name="wmode" value="opaque">
<param name="flashvars" value="playerType=httpds&contentUrl=http://server_addr/content_url">
</object>

В случае если Ваше видео пользуется высокой популярностью, то Вы легко можете использовать CDN оператора для улучшения нагрузочных характеристик или дополнительные кеширующие NGINX серверы для доставки видео.

Популярного видео контента Вашим ресурсам!