четверг, 21 августа 2014 г.

Как организовать онлайн видео трансляцию.

Есть у меня на работе учебный центр, наше дочернее предприятие, занимается обучением сео и прочих специалистов, но не суть. Дали мне задачку, модернизировать ихнюю, центра, систему онлайн трансляции занятий, есть у них такая для диcтанционщиков. И не отвертишься, пришлось делать. Тема показалась мне интересной и я решил поделится наработками.




А теперь по теме.

Перво наперво необходимо определится со своими желаниями и возможностями. От этого зависит будущий формат (затраты) трансляции. Мы будем рассматривать трансляцию в формате HD, хотя при недостатке средств возможна реализация, так сказать лайт версия, с использованием SD формата видео. Непосредственно сам SD вариант мы рассматривать не будем, мало смысла, структура та же, разница только в затратах (цене используемого оборудования).

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

Видео Камера. 

Основной источник видео картинки, занимается непосредственно съёмкой, это думаю объяснять не нужно. Наверное самый дорогой из всех компонентов комплекса, цена самой простой HD камеры на момент написания статьи находилась в пределах 200уе. На эту роль не обязательно использовать дорогую видео камеру, если помещение не слишком большое можно обойтись и обычной HD веб камерой. Надо отметить что вариант с использованием веб камеры не потребует наличия платы видеозахвата. Если учесть что цены на хорошую HD веб камеру начинаются от 100у.е. то экономия выходит весьма приличная.




Плата видеозахвата

она же Capture Cards. Устройство связывающее видеокамеру с компьютером и выполняющее роль оцифровщика видео сигнала для последующей обработки его компьютером. Не стоит путать плату захвата с ТВ тюнером, хоть они и похожи по функционалу и многие тюнеры имеют возможность получать сигнал с внешних источников, всё же между ними имеется существенное различие. Платы видео захвата делятся в основном по реализации (внешние USB или внутренние PCI устройства). А также по назначению: для записи видео игр или оцифровки видео записей (такие платы как правило имеют весьма ограниченный спектр применения, имеют встроенный кодировщик для сжатия видео, из за чего часто возникают проблемы с использованием их сторонними программами), для простой оцифровки видеосигнала (автономно работать не могут, сами сжатием видео не занимаются, из за чего имеют более широкий спектр применения и могут быть использованы любыми сторонними программами). Для организации видео трансляции подойдёт именно последний тип. Справедливости ради отмечу что существуют платы видеозахвата ориентированные на использование в системах видео наблюдения, но для нашей задачи они практически бесполезны.




В качестве примера, для использования в онлайн трансляции, приведу следующие платы: IconBiT Spider Hybrid HD Recorder PCI-E E710, Blackmagic Intensity Shuttle, AVerMedia Live Gamer HD, Blackmagic Intensity Pro. Я же сам использовал AverMedia ExtremeCap U3, именно она изображена на снимке выше, со своей задачей она вполне справилась, быстрая (задержка минимальна) , не сложная в настройке, надёжная, работает с любым ПО. Цена около 200у.е. В любом случае выбор остаётся за вами.


Компьютер и ПО. 

Тут всё предельно просто, подойдёт практически любой современный компьютер или ноутбук оборудованный процессором начиная с Core 2 Duo, памятью от 4 Gb и интерфейсом USB3.0 если плата захвата внешняя.

Выбор ПО также как и выбор плат весьма разнообразен и ориентирован под разные задачи. Многим скорее всего будет достаточно функционала базового ПО платы захвата. Многие сервисы видео трансляций предлагают собственное ПО, а некоторые позволяют вести трансляцию прямо из браузера как например YouTube. Если же камер или других источников видеосигнала несколько то вам в довесок понадобится программа видео микшер. В качестве примера приведу парочку: Vidblaster, Xsplit, Wirecast.

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




Интернет и сервис видео трансляции. 

Необходимая ширина интернет канала напрямую зависит от качества транслируемого видео потока, чем выше качество тем более быстрым на отдачу должен быть интернет канал. Для потока в 720p как правило достаточно исходящего канала шириной в 4 Mbit\s.

Сервис видео трансляции нужен в первую очередь для того что бы нагрузка создаваемая большим кол-вом зрителей не ложилась целиком на ваш интернет канал. Иначе поток будет передаваться всем сразу что приведёт многократному увеличению нагрузки на интернет канал. Расчёт тут будет примерно такой: 10 пользователей * 4 Mbit\s на каждого = требуемый канал в 40 Mbit\s. Для Белоруси организация подобного интернет канала мало реальна. Сервис видео трансляций избавляет вас от подобных проблем.

Послесловие

Но это всё просто теория, как не странно но на практике описание организации видео трансляции легко помещается в один абзац текста. Итак оборудование выбрано и закуплено, с подключением у человека понявшего хотя бы 50% этой писанины не должно возникнуть проблем. Камера подключается к карте захвата при помощи HDMI или Компонентного кабеля (в зависимости от наличия тех или иных разъемов), сама же плата захвата подключается USB кабелем или вставляется в PCI-e разъём компьютера. Устанавливаются драйвера для платы захвата и устанавливается выбранное ПО. При выборе платы захвата и настройке ПО нужно указать порт куда подключена камера и выставить разрешение видео, оно должно соответствовать разрешению сигнала камеры. Вкратце это всё. Далее вам осталось зарегистрироваться на сервисе видео трансляций и следовать его указаниям по началу трансляции.

Комментариев нет: