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

GrIvA
  • 13 сентября 2011
  • 9k

Это третья статья (первая и вторая) из планируемого цикла "Как мы запустили канал". Сегодня я расскажу о техническом обеспечении канала Dog Channel TV и о том, как это все работает... В статье достаточно много специализированной для вещания лексики. Если по комментариям будет видно, что что-то не понятно я буду уточнять и конкретизировать отдельные моменты по мере необходимости.

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. Именно он был взят за основу при создании своего плеера.

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

Обсуждения

Dmitry Kornev
Вчера, 06:37
Потихоньку живет проект Pantheon Desktop для Debian — рабочий стол от Elementary OS для Debian. Это пакеты... Обсуждаем Elementary OS
Dmitry Kornev
13 июля, 06:24
Подобные горизонтальные подергивания видеоизображения - это проблема старых записей с видеокассет. Искать... Сильно дрожит изображение...
Dmitry Kornev
5 июля, 19:34
Capfgku, windows xp сильно устарела. Наверняка она еще и не чистая, а какая-нибудь сборка. Плюс... Нужна помощь с Behold...
Dmitry Kornev
5 июля, 19:30
Capfgku, тут автономный тюнер обсуждается. Behold TV SOLO (нет...

Комментарии

Вот это да! Молодцы. Нет слов. Прочитал с большим интересом.
основным достоянием такого рода проектов лично я считаю контент.
Очень правильно подмечено.