Подготовка онлайн трансляции при помощи Red5 сервера, Android телефона и Wimax модема

в 8:37, , рубрики: android, linux, Peer-to-Peer, red5, поток, телефон, трансляция, метки: , , , ,

25 апреля 2013 года в Душанбе, Таджикистан должна стартовать конференция ROSCCA-2013 (Regional Open Source Conference of Central Asia). У организаторов мероприятия появилась мысль последовать трендам и организовать дополнительный приток аудитории слушателей за счет организации онлайн трансляции события. И, отвечая сразу на вопрос скептиков, что сегодня это сделать элементарно просто на основе уже существующих веб сервисов, таких как Ustream, Smotri, скажу что Таджикистан находится в магистральном тупике. В связи с горной местностью оптические магистрали из Китая в Европу проходят вдалеке от него. Создалась такая ситуация, когда внутренний канал между таджикскими провайдерами по сути бесплатен, а канал внешнего трафика обходится от 10 долларов за гигабайт информации. Соответственно, местный пользователь, экономя свои финансы, просто не будет смотреть видео трансляцию с внешних веб-ресурсов.
Как решение этой проблемы я предложил организаторам поднять «локальный» медиа сервер и в соответствии с тематикой конференции сделать это на СОПО, а именно на Red5 Media Server.
Сразу скажу что, данный материал не является мануалом по установке Red5. Это достаточно подробно описано здесь. Мне показалось интересным найти решение и сделать онлайн трансляцию на основе мобильного телефона. За подробностями прошу под кат.
Итак, сервер, поднятый в соответствии с инструкциями, у нас уже есть. С чего будем вещать? На руках я имею андроид телефон – довольно старенький Vibrant T959. Полез в Google Play, сделал запрос в поиске red5 и сразу увидел интересное приложение с названием Broadcaster. Вспомнил, что одно из демо приложений к Red5 называется именно так и скачал его.
Подготовка онлайн трансляции при помощи Red5 сервера, Android телефона и Wimax модема
С первого взгляда все сразу понятно. Так как собираюсь вещать видео поток конференции при помощи демо приложения oflaDemo, идущего в комплекте с Red5, то в строку URL вбиваем rtmp:// :5080/oflaDemo, в строку Stream name вношу red5StreamDemo. Нажимаем Connect, а затем Publish. Все, на стороне сервера появился поток.
Подготовка онлайн трансляции при помощи Red5 сервера, Android телефона и Wimax модема
Это можно проверить приложением Subscriber, введя в строку rtmp:// :5080/oflaDemo.

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


<script type="text/javascript" src="swfobject.js"></script>
<div id="player"></div>
<script type="text/javascript">
var so = new SWFObject('player.swf','mpl','400','250','8');
so.addParam('allowfullscreen','true');
so.addParam('flashvars','file=red5StreamDemo&provider=rtmp&streamer=rtmp://193.111.10.75/oflaDemo');
so.write('player');
</script>

Предварительно нужно закинуть в корень сайта файлы jwplayer.js, player.swf, swfobject.js.
Для трансляции можно было бы сразу использовать 3G канал, но сразу вспомнилось, что на таких конференциях достаточно много блогеров, журналистов, тех же слушателей, которые способны забить любой канал ОПСОСа. К тому же он обойдется очень дорого. В моей ситуации я могу применить следующие решения: использовать WIMAX модем Huawei bm-652w, работающий от сети 220 В, с возможностью раздачи интернета через встроенный WiFi модуль, а могу использовать WIMAX USB модем Seowon SWU-3020, подключенным к ноутбуку с расшаренным доступом в интернет через WiFi. Ноутбук можно разместить в рюкзаке, подключив к нему дополнительно кабель для подзарядки мобильного телефона. Пока остановился на втором варианте, как более дешевом и удовлетворяющем все условия, в том числе и дешевый трафик между провайдерами.

P.S. После выхода в продажу Google Glass было бы интересно применить их для создания First Look онлайн трансляции.

Автор: vasiliy_pupkin

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js