Как стать автором
Обновить

Организация видео-трансляции на Chaos Constructions 2010

Время на прочтение 8 мин
Количество просмотров 1.9K
Организация видео-трансляции на Chaos Constructions 2010.



Началось все с идеи: сделать все «как у взрослых», настоящее телевидение.


(фото с assembly2010)

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

Определившись с задачей стали выбирать варианты решения.
Нам нужно было получить на машину 3-4 источника видео, и выдать видео в сеть и на экран. Для ввода мы рассматривали варианты — ip с других компов или камер, dv через firewire, аналоговые тюнеры/граберы.

Для начала пришлось плотно погуглить.
Нагуглилось не так уж много софта, который позволял делать видео-свитчинг на обычном пц.
Мы посмотрели практические все, что удалось найти, например DVSwith (linux), WireCast, DV Studio pro, VidBlaster, в том числе посмотрели программы для виджеинга типа Rezolume.
Неплохо помогла разобраться в вопросе wiki статья Интернет трансляции.




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



На этом этапе нам пришлось отказаться от вариантов ip камер и от dv-firewire, все одни по задержке и рядом не лежали с обычными аналоговыми тюнерами. Также у dv ограничение на длину firewire порядка 7-10 метров, а репитеры на fw достаточно редки и дороги. А нам хотелось снимать репортажи в зале и даже за пределами его.

Вторая засада оказалась в том, что кодирование видео h.264 хотя бы в 640*480 требует очень заметных ресурсов. Это видимо относится именно к потоковому видео, обычные файловые конвертеры (вроде) ведут себя по другому. Для кодирования мы использовали Adobe flash media encoder 3.1.

Тесты показали, что разместить его на одной машине с еще чем-либо мы не можем — на всех имеющихся под рукой машинах ресурсов даже для просто кодирования не хватало. Пришлось организовать поиски более быстрой машины, и передавать на нее сигнал то же аналогом по svideo. В итоге такая машина нашлась — Core2 Quad Q9550-2.83GHz. Она смогла кодировать одновременно два потока:
1 — h264, 640x~470, 1.8mbit + aac stereo 128kbit
2 — h264, 320x~235, 500kbit + aac stereo 128kbit
При этом загрузка всех 4 ядер была не ниже 60 процентов, а при большой активности видео, в демках и тп. — подскакивала до 80-85%.



В этот момент пришлось опять возвращаться к пересмотру всех программ для видео свитчинга — нам необходимо было получить на второй монитор (tv выход видяхи) постоянно фулскриновую картинку выбранной камеры.
В итоге оказалось, что большинству критериев удовлетворяет практически только VidBlaster. Несмотря на то, что m512 настаивал на пересмотре схемы и реализации части задач на linux решениях, я выбрал вариант на винде — оно нагляднее и визуально проще, а это значит, что на пульте я мог оставить практически любого, даже «левого» человека и он не запутается в суматохе всеобщего бардака когда и куда надо нажимать.
Вариант на linux был использован в зале семинаров, там стояла машина уровня Pentium4, брался dv поток по firewire, с помощью ffmpeg кодировался один поток и отправлялся на сервер. Более подробно о ключах ffmpeg и тонкостях настройки лучше спросить непосредственно у m512.

Дальше нам надо было получить четыре или больше работоспособных тюнеров в одной машине. Это то же оказалось не сильно простой задачей. Первое на что мы наткнулись — два тюнера на чипе saa713x хотя и становятся сразу отдельными устройствами, но при одновременной работе обоих, на их изображениях идут странные помехи, будто им не хватает пропускной способности шины. Два тюнера на bt878 с драйверами от тюнеров имеют под виндой странный драйвер, который переключает источники (composite/svideo/tv) сразу на всех платах одновременно. Это удалось победить, если ставить референсные драйвера от bt, сначала на одну плату, потом ее вынимать, ставить на вторую, и только потом вставлять обе. Еще не просто найти, куда все эти тюнеры можно одновременно вставить. Современных машин с 4 pci под рукой не оказалось, а простой usb-свисток «easy caputure» работать почему-то отказался. Пришлось взять тюнер на pci-e от iconbit, чип ati ragetheater. У него то же вылез непонятный глюк, при работе через dshow корректно показывает только ntsc сигнал, а pal/secam искаженным. Ну и в последний момент удалось еще подключить usb pinnacle dazzle.
Финальная конфигурация:
pci — bt878, bt878, saa731x; pci-e — rage theater; usb — pinnacle dazzle.


Схема включения:
В итоге предварительных прений и тестов была нарисована следующая схема подключения компьютеров показа, камер, экрана:



Сервера:

Нам пришлось построить довольно сложную схему серверов. Поскольку программа кодирующая видео может отправлять потоки только в один сервер, внутри оргзоны был поднят master-сервер принимающий этот поток. Дальше у нас было две slave сервера в сети, один на площадке Oyster Telecom, второй на работе у одного из организаторов. В обоих случаях был как минимум 100mbt канал в интернет. Делать автоматическую балансировку времени и сил уже не оставалось, поэтому были даны просто две ссылки на mirror 1/2. Еще один сервер располагался внутри, для обслуживания внутренних клиентов. Мы могли бы подключать клиентов и к master-серверу, но поскольку потоковый сервер вещания использует java, и потребляет немало памяти на каждое подключение, я боялся, что множество локальных клиентов смогут его перегрузить по потреблению памяти или сетевого интерфейса, что сразу скажется и на проблемах с потоком на внешних серверах, так что сделали отдельный внутренний, если его задосят — внешние не пострадают. Оба зеркала внутри сети показывали на этот внутренний сервер. Сервера практически полностью настроил m512, причем три из четырех меньше чем за 15 часов до начала.



На статистике в конце первого дня с внешнего slave1-сервера видно подключение порядка 60-70 клиентов, с пиками до 100. Если все в пике смотрели 2мегабитный поток, то это 200 мегабит трафика. Ко второму slave было подключено еще около 30 человек.

Камеры:

У нас было несколько камер, причем половина попала в руки слишком поздно, чтобы провести полноценные тесты и исправить недостатки.

Изначально я планировал, что каждая из 2-3 камер будет связана отдельным svideo кабелем со свитчером. Тут нас подстерегала неприятность, что для этого нужен многокабельный коаксиал (мультикор) цена которого от 115 рублей за метр. Выложить больше 14 т.р. за хотя бы 100-120 метров кабеля для двух камер мы были не в состоянии. Следующим шагом была идея использовать комплекты для передачи видео/аудио по витой паре.
Мы купили один такой комплект, а витую пару предоставляли основные организаторы. Опять же я планировал передать по ней svideo и звук. И самым последним вариантом были радио передатчики видео. Мы соблазнились на рекламу и купили один комплект «JMK WF-1500». К сожалению это происходило уже в дни подготовки и проверяли мы буквально за день до. Радио-передатчик откровенно разочаровал. несмотря на заявленные 1.5 километра в прямой видимости, у нас он практически переставал работать в пределах 20 метров от приемника. При этом помехи, уплывания цветов были заметны даже когда камера была в 2-3 метрах. Да, возможно он ловил гармоники от wifi, или помехи от множества аппаратуры. Но в итоге использовать мы его не смогли. Купить второй комплект для витой пары было уже слишком поздно, поэтому пришлось подключать обе камеры по композиту, к одному комплекту передатчиков по ethernet. Стоит отметить, что работали они отлично, претензий по качеству к приемо-передатчику нет, я могу рекомендовать такое решение всем.


Общий вид

Рабочее место оператора в итоге выглядело так

слева место зарядки видеокамер, звуковой микшер, запасной компьютер (я планировал, что на нем будут приниматься потоки ip камер, которые также по аналогу будут приходить в основной видео-свитчер, но мы в итоге не стали использовать никаких ip вариантов передачи видео), основной компьютер с vidblaster, правее монитор Flash encoder'а, еще правее компы показа демо, свитчер основного экрана.
перед мониторами — клавомышки основных компов (переключать видеокамеры удобнее с цифровой клавиатуры, а не мышкой елозить), рация для связи с операторами.

Экран VidBlaster

Сверху два стандартных окна Preview и Program — это те две камеры, которые меняются местами (одна в эфир, другая на подхвате) нажатием одной кнопки. Ниже список добавленных камер, их может быть произвольное количество, но это сильно завязано на производительность машины. Тут видно, что 5 камер дали загрузку проца около 80-90%.
Не влезло в этом кадре — панели плееров видеороликов, наложения титров с графикой и т.п.

Общий вид на зону трансляции и показа.


Неудачи:
— освещение было установлено только на двух камерах, при этом одна их них, с хорошим штатным фонарем быстро вышла из строя из-за старого аккумулятора, а на второй, где свет был самодельный я поставил слишком мощную галогеновую лампу и она слишком быстро сажала аккумулятор. поэтому нареканий на слабый свет во время съемок было немало.
— работать с микшером мне приходилось впервые, и хотя сам процесс прост, но выключать фоновый звук или микрофоны в паузах я просто в суматохе забывал. На это были нарекания у посетителей.
— к сожалению в этом году были сложности с человеком, отвечающим за показ демо. Плюс как оказалось видеоматериал для показа подготовлен не был. Если первый день мы в принципе неплохо показывали принесенный мной (случайно!) материал — демки с последнего breakpoint, ночью старый плейлист frog'а, то во второй день плейлистом рулил кто попало и с заметными заминками. Плюс мне было очень неудобно все время прыгать между двумя рабочими местами, учитывая что видео приходилось переключать одновременно на пульте большого экрана и в нашем свитчере.
— в большинстве случаев ведущие, из-за нехватки рук и общей суматохи, брали радио-микрофон, который довольно сильно шипит. Несмотря на то, что была возможность брать проводной.
— в схеме есть раздвоитель svideo сигнала после видео-свитчера, один идет на энкодер, второй на главный экран. он был самодельный, специально собран прямо перед пати, и, к сожалению давал довольно большие смазы на контрастных переходах и вообще нещадно мылил картинку. это целиком моя вина, я решил, что такое устройство просто и должно работать без изъянов, поэтому не озаботился его поиском/созданием заранее, чтобы успеть провести тесты. Когда мы увидели результат уже на мониторах, менять что-то было поздно.

Заметки:
— очень полезно иметь где-то плеер с фоновым видео/аудио, чтобы на него можно было быстро переключиться в случае любых заминок. у меня было два аудио плеера — один винамп на запасном компе, где крутилась одна мелодия по кругу, и второй — на сотовом, где я могу выбрать что-то из плейлиста и плавно ввести. вот желательно то же самое иметь и для видео. у меня был один плеер с фоновым роликом, но он был запущен на той же машине с vidblaster, и включал я его редко из-за того, что ресурсов и так не хватало, а если забыть его выключить при смене на камеру — начинала лагать и картинка с камер.
— очень важна связь человека за пультом с операторами камер. рации с гарнитурами нас спасали, но реально хотелось что-то вроде общей конференции, иначе были моменты когда и сказать что-то надо. но не хватает времени/рук взять рацию и нажать на кнопку.
— кстати, с кабелем то же много возни, каждый раз для репортажа надо его размотать, подключить камеры, потом обратно смотать. это очень неоперативно. если будут надежные варианты радио-связи нужно использовать их, мобильность повышается категорически. у нас был даже вариант связи — камера с усб грабером к ноуту, дальше по wifi до компа в оргзоне и в показ. но в реальных тестах выяснилось, что стабильный поток по wifi даже с усиленной антенной на расстоянии 50-70 метров получить не удается, а при обрывах зачастую приходится делать вручную реконект, в общем это не вариант для мобильной съемки, где оператору и так некогда отвлекаться.

Отвлеченное:
— примерно 70% оргзоны было запитано от 4кВт UPS, с реальным потреблением около 3.7 кВт. Сюда входит основной проектор, усилитель, практически все сервера и компьютеры. Например для подключения всей аппаратуры вещания и показа понадобилось восемь или девять пятирозеточных «пилотов».


— для озвучивания зала использовался ламповый усилитель 90-ых годов, мощностью 1кВт — Novik e12. Из плюсов можно отметить, что его практически невозможно перегрузить, чтобы звук стал сваливаться в хрип. Четыре колонки, нижние две — старые EVM, верхние — корпус от EVM, а динамики мастеровые Божан (если я правильно записал фамилию мастера на слух).


Участвовавшие лица:

Наша «команда», операторы —
fandrey


m512.


За пультом я — easy_john


Также снимать помогали rizn, mihhru, takedo. В семинарах — aim, zawullon.
Ведущие — frog, oldayn, tzong, dyn.
Камеры — mihhru, veta, m512, константин, hun7er
Микрофоны — mihhru, frog
Тюнеры — m512, easy_john, veta
Компьютеры — veta, easy_john, m512
Не забыть отметить tnt23 — пайка нужных причиндалов и мелкий ремонт прямо во время феста, vga-svideo конвертер kramer extron vcs700.
Остальное (провода, мишкер, мониторы, мелочевка) — easy_john
Теги:
Хабы:
+40
Комментарии 60
Комментарии Комментарии 60

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн