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

Организация видео-трансляции на 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
31 августа 2010, 05:11
24
easy_john 254,9

комментарии (60)

–3
super #
На мой взгляд самое разумное и простое решение — сначала всё отснять, а потом выложить в сеть в нормальном качестве. В любом случае — спасибо за видео.
НЛО прилетело и опубликовало эту надпись здесь
+2
Zawullon #
Собственно, мы так и делали. Все семинары снимались на пленку одновременно с трансляцией.
+1
itjobby #
вероятно как и с винампом лучше было бы иметь несколько часов видео в резерве (записанные интервью, приветствия и т.п.)
Но это в копилку.
А так огромный респект за то что подняли такой офигенно сложный в реализации проект.
Сколько приблизительно по деньгам/часам он вам стоил суммарно? (желательно в $)
+1
easy_john #
В том то и дело, что бюджета на это в организации цц не было.
Нам было выделено примерно 200 usd на организацию связи мобильных камер с пультом (кабели или там радио). Они ушли пополам на комплект переходников видео по витой паре, и на комплект радио передатчик/приемник видео.
Вся остальная аппаратура — компьютеры, тюнеры, камеры, сервера, рации — собрано с организаторов и по знакомым. Семь комплектов мониторов с клавомышами я привез с фирмы, где я работаю.
Единственно что — все переходные аудио и видео кабеля для звука и видео (кроме покупных svideo) я делал сам, на закупку кабеля и разъемом я потратил еще около 70-100 usd из семейного бюджета.
0
easy_john #
по времени подготовки — это целиком съело примерно 3-4 выходных на тестирование разных вариантов видео-ввода, разных программ для свитчинга и кодирования. плюс примерно половину вечеров за эти три недели подготовки.
сам монтаж на пати — с примерно 14 часов четверга до 24 часов пятницы с перерывом на 5-6 часов сна.
+1
easy_john #
в принципе да, но для этого надо иметь полностью рабочую аппаратуру. нам пришлось работать с камерами найденными по знакомым — это оказались камеры dv (не мини), vhs, и sd (флешки). по этому только на часть удалось писать.
0
easy_john #
если просто только снимать — то что показывать на экране посетителям?
рилтайм съемка оживляет пати, даже если просто сидишь за компом перед экраном — видно что где происходит. плюс тем, кто не был — нет других способов узнать что еще полезного происходило, кроме просто демок.
а сначала снять, а потом тут же показывать — не получается. суматоха большая, не до этого. например мы сняли киборгородки, я принес камеру, поставил на паузу, и готов был дать про нее коротенько сюжет, но так и не успел на это отвлечься.
+4
demoded #
круто! закулисье всегда интересно
0
dzeban #
Прикольно. На самом деле прямая трансляция приятно удивила.

P.S. Mihhru — забавный чувак, мне понравились его боты ;-)
0
easy_john #
да, у него на свадьбе был еще круче прикид и вроде еще больше боты :)
0
mihhru #
Спустя более чем год, наконец имею принципиальную возможность написать комментарий.

Спасибо, боты постоянно подобные таскаю, ибо комплекс — не дотягиваю без них немного до двух метров.
0
easy_john #
Вот ты зомби! Я аж удивился комменту более годичной давности посту.
0
mihhru #
А ты думал — вся эта организация выставки, статья, попадание на хабрахабр — альтруизм? О нет, я просто ждал возможности написать этот комментарий!

*сумасшедший смех, fade-out…
НЛО прилетело и опубликовало эту надпись здесь
+2
aim #
это старая мысль. основная проблема тут — желание всё делать самим.
НЛО прилетело и опубликовало эту надпись здесь
0
easy_john #
мы слишком поздно вышли на стадию «у нас готовы финальные сервера для трансляций», что бы можно было успеть привязываться к другим площадкам.
если бы сервера стояли и вещали хотя бы за неделю-две можно было бы успеть.
ну в первый раз оно всегда так, с бухты барахты. если в следующем году кто-то будет повторять будет уже проще и наверно сделают грамотнее.
0
aim #
а расскажите (ткните пальцем?) что необходимо вам чтобы начать трансляцию? что от нас требуется? в каком виде видеопоток предоставлять и т.п.
НЛО прилетело и опубликовало эту надпись здесь
0
easy_john #
и напрямую rtmp можете забирать?
НЛО прилетело и опубликовало эту надпись здесь
+2
char #
Респект людям, которые пробуют и делают!
0
easy_john #
спасибо.
+3
aim #
ты забыл написать что на семинарах помимо меня работал ещё и zawullon
+1
easy_john #
исправил.
+4
tzong #
Поддержу Рэндома: это наиболее продуманное и технологичное решение на ЦЦ за годы. Спасибо огромное!
0
easy_john #
не соглашусь. как правило в прошлые годы планирование было более конкретным, решения используемые более оттестированные. а мы начали подготовку слишком поздно, что бы придти к такому же уровню. то что в этом году основные организаторы подготовились хуже — не моя заслуга, а их недостаток.
0
aim #
нет. это было первое решение которое работало и которое было приятно смотреть.
0
easy_john #
ты как-то забываешь 2004-2005 годы, где трансляции шли практически автоматом, без участия человека, без накладок и задержек.
0
frog #
2005-й был образцом. Пока этого не удалось повторить даже близко…
0
easy_john #
согласен.
тогда был какой-то всеобщий настрой, каждый делал свое дело, никуда не убегал, и делал хорошо и вовремя. во всяком случае у меня сложилось такое впечатление.
0
frog #
Именно. Отличие только в отношении организаторов к делу. Что касается финансовой и железячной части — тогда всё было значительно беднее и сложнее.
0
easy_john #
мало новых людей. а один человек может все, но не успевает по времени.
я поставил наблюдеине охране, принес стену железа, хотя вешать пришлось rizn, привез амигу, хотя подготовил ее условно, привез ббс, до которой так и не дошел. я мог бы все это сделать на 90%, но времени/сил не хватило.
подозреваю что похожая ситуация с зумом. он то же может все, но не одновременно.
0
aim #
с примерно та же беда что и с фрогом.

отличие лишь в том что фрог хочет всё контролировать (и в том есть резон, только нельзя это совмещать с чем-либо производительным. нельзя нести отвественность за какую-то часть пати), то зум делает всё сам (что ужасно!).

в общем лидеры должны руководить, а не работать на пати. и нужно больше активных новичков (а вот это уже fail в текущих реалиях, почему так — отдельный вопрос, у меня на него нет ответа)
0
frog #
Я бы не совмещал это с чем-то производительным, если бы все орги ответственно выполняли то, что сами согласились выполнять. Но, к сожалению, это невозможно (ну т.е. люди есть люди, при любом раскладе). Поэтому и сложилась система, когда есть условно говоря 3 организатора, каждый из которых более-менее компетентен в 90% вопросов решаемых на фестивале и может заткнуть телом возникшую дыру.
Ну и естественно у каждого из этих трёх есть какие-то личные предпочтения-интересы, хотя это не так существенно по сравнению с тем, что я сказал.
0
aim #
куда шли? что-то я не помню никаких трансляций. но с моей памятью это может быть нифига не удивительно.

и всё-же прошу пояснить — где вещались трансляции цц в 2004-2005?
0
easy_john #
точно вещались на большой экран. я имел ввиду в первую очередь это.
плюс в коридоре стоял телевизор с копией экрана.
поток в интернет вроде то же был, но по моему с каких-то обзорных камер, без основного экрана. настраивал камеры при мне aalien, можно уточнить.
0
aim #
ну вот основное это конечно же internet-вещание. потому что надо привлекать свежую кровь а сделать это можно только при помощи сети.

что касается вещания — так почему не повторить схему если она была так хороша?!
0
easy_john #
интернет вещание прошлой группой организаторов никогда не ставился приоритетом. наоборот утверждалось, что вещание должно быть так себе, что бы стимулировать личный приезд.

в этом году мы попробовали сделать все же получше.

почему не повторить схему показа как раньше фрог выше ответил: «Отличие только в отношении организаторов к делу. Что касается финансовой и железячной части — тогда всё было значительно беднее и сложнее. „
0
aim #
да вроде вы втроём работали как волки и не отлынивали… во всяком случае я не вижу способа вам работать «ещё лучше».
0
easy_john #
я имею ввиду работу остальных людей, особенно на ключевых точках.
и мы то же могли работать лучше. я на это надеялся.
0
frog #
Лично мой КПД напрямую зависит от отношения к делу окружающих меня оргов. Думаю, у большинства так.
0
easy_john #
не только. еще есть собственный настрой, который может быть «сделаем уж как нибудь» или «сделаем максимум на что мы способны». во втором случае это за одно мотивирует и окружающих.
но в принципе да.
+2
oisee #
Огромное спасибо за Chaos-TV. Так близко к атмосфере СС те, кто не смог приехать ещё никогда не были.

Живьём смотреть все конкурсы и объявление результатов — дорогого стоит =)
0
easy_john #
спасибо.
к сожалению не все и не везде мы успевали, не хватало рук и ног. так что показать удалось только примерно половину реально прошедших конкурсов. с другой стороны если выбирать между спонсорским конкурсом и демо компо — лучше показать имено сценовые конкурсы.
+1
mutabor #
Титаны! Уважаю
+2
Sauron #
Смотрел трансляцию — было интересно.
Спасибо вам!
+1
yandexx #
Познавательно. Спасибо.

Пати была отличная! :)
+1
easy_john #
по мне — мы не сделали слишком много того, что хотели. :(
с другой стороны изнутри оргзоны самой пати я почти и не видел :) как обычно, сейчас смотрю запись трансляции, пытаюсь проникнуться :)
0
yandexx #
Да получилось очень хорошо, пусть небольшие срывы сроков и негусто с релизами, но атмосфера была что надо, а ведь это очень важно :)
0
erlyvideo #
круто! Интересно было почитать!
0
allein #
А запись где-то можно получить? Очень заинтересовали некоторые презентации по безопасности.
0
easy_john #
все семинары будут выложены чуть позже, после обработки на ютуб, как это делается каждый год.
0
easy_john #
да, все выложили, если еще интересно party10.cc.org.ru/online.php
0
allein #
О! Спасибо большое!
0
gorod #
Спасибо за статью. Кое-что для себя подчерпнули из нее, если у нас будут клиенты из Питера, заинтересованные в интернет-трансляциях — можем вас привлекать для проведения видеосъемок и кодирования видеопотока. Мы (компания CDNvideo) занимаемся распространением потокового видео в интернете, у нас есть сеть географически распределенных серверов (CDN) с которых можно раздавать видеопотоки в Интернет (сейчас поддерживаем десятки тысяч одновременных потоков) — так что если бы Вы использовали нашу сеть, вам не нужно было бы самим ставить сервера для трансляций.

0
easy_john #
ну, кто ж знал. :)
плюс минимум один сервер снаружи все равно надо иметь свой.
чужие сети это хорошо, но когда что-то начинает не работать в выходные, зачастую в чужой организации сложно найти специалиста способного оперативно решить вопрос.
и локальным пользователям надо со своего раздавать.
0
gorod #
У нас есть телефон тех. поддержки, он работает круглосуточно. В следующий раз обращайтесь :)
0
easy_john #
договорились. :)

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