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

Как мы запустили телеканал в Интернете. Техника

Время на прочтение4 мин
Количество просмотров7K
Это третья статья (первая и вторая) из планируемого цикла «Как мы запустили канал». Сегодня я расскажу о техническом обеспечении канала DOG CHANNEL TV и о том, как это все работает… В статье достаточно много специализированной для вещания лексики. Если по комментариям будет видно, что что-то не понятно я буду уточнять и конкретизировать отдельные моменты по мере необходимости.
Итак...

ЧАСТЬ ПЕРВАЯ. СНАЧАЛА БЫЛА МОНТАЖКА...

Как ни странно это может прозвучать, но основным достоянием такого рода проектов лично я считаю контент. Канал специализированный. Говорить о массовых закупках контента не приходится. Это
  • дорого ввиду специфичности;
  • практически отсутствует предложение.
Поэтому конкретно этот канал родился из сотен дней, проведенных в монтажке, когда рождалась очередная программа «Просто собака».

Теперь о технических требованиях, на каком битрейте вещать?

С одной стороны можно легко отдавать картинку формата SD (это 720х576 пикселей), с другой стороны больший размер кадра — это бОльший битрейт, для сохранения приемлемого качества. Путем проб, ошибок и жарких обсуждений мы остановились на размерах 500х374 пикселей, и битрейте порядка 750-800 кбит/сек. С одной стороны, это обеспечивает приемлемое качество, с другой — любой, кто имеет мегабитный Интернет, сможет стабильно и комфортно смотреть наш канал.

ЧАСТЬ ВТОРАЯ. ИЗ ПЕСНИ СЛОВ НЕ ВЫКИНЕШЬ, ИЛИ ЛЕТИ С ПРИВЕТОМ...

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

Понятно, что проще всего это реализовывалось с помощью Flash. Тестовые трансляции собирались буквально «на коленке». Схема была следующей:
Источник сигнала (либо просто файлы, либо вообще DV сигнал с магнитофона) цеплялся на виртуальную камеру, которую затем отдавали на бесплатный сервис, типа ustream.tv.

Ну все… Канал есть!

Ага, щас-с-с… те кто поверил — представьте себя, сутками сидящим перед компьютером и бесконечно меняющим программы-заставки-врезки… А еще все это надо сверстать, просчитать по времени, и молиться, чтобы не дай бог не отключили Интернет. В общем, как схема — да, но как база — надо было все строить с нуля и самому.

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

Настал этап поисков, проб и ошибок. Из того, что было «на виду» — это Adobe Flash Media Server, Wowza Media Server, Red5 Media Server.
Adobe:
плюсы:
— надежное решение
— техподдержка
— собственно, придумали RTMP протокол
минусы:
— просит денег
— ставится на WINDOWS
— исходники закрыты

Wowza:
— удобно и достаточно надежно
— техподдержка
— можно поставить на Linux
— можно стримить под iPhone & Co
минусы:
— просит денег
— при больших нагрузках «плывет»

Red5
— бесплатно
минусы:
— «плывет» уже при средних нагрузках

Что-то — лично мое мнение, что-то вычитано на просторах Интернета. Лично я больше всего склонялся к Wowza.

Но, как всегда, в дело вмешался случай. Абсолютно случайно я наткнулся на проект москвича Максима Лапшина Erlyvideo media server. Язык ERLANG, на котором он был написан — для меня — чистой воды экзотика. Но!!! Базовый функционал сервера бесплатен. Надежность — высокая. Отзывы — в общем, разные, но в большинстве своем положительные. И я решил рискнуть. (О чем сейчас ни капли не жалею)

Итак Erlyvideo:
— бесплатен (вернее условно бесплатен. Об этом я еще скажу)
— собирается из исходников (а значит, при определенном упорстве ставится, куда угодно)
— сейчас набирает обороты (с одной стороны — комьюнити не такое большое как хотелось бы, с другой достаточно просто выйти непосредственно на создателя и получить «наводку» по интересующему тебя вопросу)
минусы:
— дополнительный функционал — за деньги
— тяжело найти хорошего программиста на erlang-e
— как следствие бесплатности, возможное изменение функционала в новой версии без предупреждения.

ЧАСТЬ ТРЕТЬЯ. ГЕРОИЧЕСКАЯ…

Нами был арендован выделенный сервер. На нем установлена UBUNTU и ERLYVIDEO.

На форуме erlyvideo можно получить ответ на заданный вопрос, почти всегда, в тот же день. За что автору, как говорится, респект и уважуха. Но! Как правило ответ содержит направление, куда двигаться, и принципиальную возможность или невозможность достигнуть результата. Еще раз подчеркну это относится к дополнительному функционалу! Что касается конфигурирования и исправления багов — то здесь все абсолютно адекватно. Остальные тридцать три удовольствия — через техподдержку для лицензированных клиентов.

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

После того, как медиа сервер заработал настало время доводки функционала под себя. Что могу сказать… Erlang, оказывается, можно учить довольно быстро. Сервер и правда удивительно стабилен. Для меня и сейчас остается чем-то волшебным то, что можно обновить версию сервера не прерывая трансляции!!! И это функционал самого языка. Потрясающая масштабируемость и гибкость. Д-а-а-а… если вы фанат и готовы травить время и силы на то, чтобы со всем этим разобраться.
У нас денег не было, поэтому мы оказались готовы. Сначала понадобилась система трансляции по плейлисту. Потом захотелось динамически генерировать программу. Потом рестартовать плейлист без обрыва трансляции. На подходе — авторизация пользователей и чат для пользователей.

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

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

Серьезное испытание по всем аспектам, в том числе и техническим, нас ожидает в начале октября, во время проведения онлайн трансляции чемпионата мира по дрессировке немецкой овчарки в Киеве. Мы будем рады любой помощи или сотрудничеству в проведении данного мероприятия. Особенно, что касается нагрузочных возможностей серверов, балансировки нагрузки и т.д. Но это в личку.
Теги:
Хабы:
+27
Комментарии28

Публикации