воскресенье, 21 февраля 2010 г.

Живая трансляция с Adobe Flash Media Server 3 и Adobe Flash Media Live Encoder.

Специально по просьбе моего читателя Andrey публикую небольшой материал по использованию FMS для трансляции живого потока. Итак что нам для этого понадобится: Adobe Flash Media Server подробно на русском из первых рук http://www.adobe.com/ru/products/flashmediainteractive/ Надо сказать, что FMS не бесплатное приложение, точнее даже очень небесплатное, но компания Adobe любезно предоставляет разработчикам полнофункциональную девелоперскую версию продукта, правда с ограничением по количеству коннектов, чем мы и воспользуемся. Adobe Flash Media Live Encoder — свободная программа от Adobe позволяющая обеспечить захват потоковых данных, кодирование и отправку в адрес серверного приложения в составе FMS. Подробнее на русском: http://mediadomltd.ru/capacities-docs/fmle3-manual/ В наших целях мы могли бы и сами написать Flash приложение, которое обеспечивало бы данную функциональность, но зачем, ведь все уже есть и бесплатно. Итак. Все это хозяйство мы установим на клиентской машине, опять же в тестовых целях. Установка не вызывает ни каких затруднений. Полный вариант установки включает в себя установку web- сервера Appache. У меня к началу данного эксперимента уже был установлен Denver, поэтому я от установки Appache отказался. Если же последовать полной установке, то Appache будет стартовать автоматически при запуске FMS. Для решения нашей задачи нам потребуется:
1.Серверное приложение предназначенное для приема и передачи данных на стороне сервера.
2.Клиетское приложения для захвата, кодирования и отправки потока в адрес серверного приложения (оно у нас есть - Adobe Flash Media Live Encoder)
3.Клиентское приложение -плеер для приема потоковых данных (разработка такого приложения — отдельная тема, поэтому возьмем стандартный, например тот, что входит в комплект поставки FMS).
Итак круг наших задач сузился до разработки серверной части. Для этого идем в директорию, установки FMS, находим там папку applications. В ней лежат две папки тестовых приложений : «live» и «vod» Приложение vod позволяет транслировать плейлист flv-файлов, в контексте данного материала оно нас не интересует. Приложение «live» как раз и решает поставленную задачу, т.е. Организует трансляцию видео и аудио потока. Протестируем его. Для этого:
1.Запустим FMS(в винде делай «Пуск» → Flash Media Server-> Start Adobe Flash Media Server ) .
2.Запустим Adobe Flash Media Live Encoder. Если подключены камера и микрофон, то в двух окнах (Input и Output) должны появиться наши рожи. По умолчанию приложение как раз настроено на подключение к live на localhost. В правом окне программы есть строки FMS URL: В нем введено rtmp://localhost/live т.е. Адрес приложения на FMS, и Stream: введено livestream — уникальное имя потока используемого приложением. Эти данные нам пригодятся, чтоб подключится к этому потоку клиентским плеером. Жмем зеленую кнопку старт и начинаем трансляцию.
3.Идем в директорию установки FMS и в поддиректории samples\videoPlayer\ запускаем в браузере videoplayer.html, в нижней части окна видим поле ввода «STREAM URL: » вводим в него данные в следующем виде [protocol]://[servername]/[application]/[codecID]:[streamname+extension] т.е. В нашем случае rtmp://localhost/live/livestream отмечаем чекбокс LIVE и жмем кнопку «PLAY STREAM» Обана. Наши рожи! Для дальнейшей модернизации нашего мини интернет телевидения дублируем папку FMS/applications/live в рамках FMS/applications и обзовем ее как-нибудь иначе, ну например «myTV», в результате данной операции мы должны иметь директорию FMS/applications/ myTV, можно создавать сколько угодно копий приложения live. Адрес для подключения клиента для вновьсозданного приложения будет выглядеть так: rtmp://localhost/myTV/livestream. Для того, чтобы иметь возможность модифицировать наше приложение (Внимание! Нам не предоставлена возможность модифицировать само приложение live, для этого мы создали его дубликат) нам необходимо проделать следующее:
1.Перенесем куда нибудь подальше файл main.far из директории FMS/applications/myTV
2.Скопируем файл \FMS\samples\applications\live\main.asc в FMS/applications/myTV
3.Откроем в текстовом редакторе файл FMS\conf\fms.ini (перед тем как дрожащей рукой вносить в него изменения желательно сделать бэкап этого файла). Исправим параметр LIVE_DIR с того, что там написано (это был адрес приложения live) на адрес нового приложения .
4.Рестарт Сервера. Для этого делаем «Пуск»->FMS-> Flash Media Administration Console заходим в админку под учетными данными введенными при установке FMS. Заходим во вкладку Manage Servers. В футере панельке Servers находим кнопку Restart Server or vhost.
5.После этого протестируем созданное нами приложение myTV подобно тому, как тестили live. Если все зделано правильно — приятного просмотра!
И на закуску - самое полезное: Русскоязычная документация на API FMS: http://ruslanshestopal.com/flashmediaserver Спасибо, RuslanShestopal

Комментарии: 25:

В 21 февраля 2010 г. в 23:34 , Blogger Василий Потапов сказал(а)...

Добрый вечер. Большое спасибо за вашу статью, даже мне абсолютному чайнику стало хоть чуть-чуть понятно. Запустил адобе стрим и посмотрел трансляцию локально.

Только вот в конце описания немного непонятно.
"Вы пишите заходим в Админку"
Вопрос: Где эта админка и как туда зайти? Если имеется ввиду, что надо запустить файл, из корня fms_adminConsole.htm, то при его запуске помимо Пароля и Логина, запрашивается Адрес Сервера (Что за сервер и что за адрес, где их брать?). Если попытаться войти без указания сервера, то пишет, что "Попытка войти потерпела неудачу, попробуйте набрать логин заново".

Если можно, поясните в статье как направить это видео в интернет (к примеру положил этот же тестовый плеер на хостинг), что за адрес должен тогда быть, как он выглядит и пишется и куда его вбивать?

Буду признателен за помощь.

 
В 22 февраля 2010 г. в 00:03 , Blogger Unknown сказал(а)...

Добрый вечер. Да под админкой имеется ввиду именно файл fms_adminConsole.htm имя сервера в случае если при установке сервера вы не определяли ничего другого, - "TestServer". Дело в том, что консоль администратора может управлять несколькими серверами...
Адрес для приема и передачи потока где бы ни находился плеер и программа его передающая серверу имеет вид: [protocol]://[servername]/[application]/[codecID]:[streamname+extension]
где [protocol] rtmp
[servername] адрес сервера(foo.com например)
[application] -название расширения, в нашем случае myTV
далее, чтоб не усложнять - название потока, для данного примера это проверено работает, в нашем случае "livestream"
итого:
rtmp://mysite.ru/myTV/livestream

 
В 22 февраля 2010 г. в 00:21 , Blogger Василий Потапов сказал(а)...

Последний вопрос. который я не выполнил из вашего описания:
"1.Перенесем куда нибудь подальше файл main.far из директории FMS/applications/myTV"-
Что такое файл "main.far" - такого нет в указанных директориях, потому я его не переносил, как описано.

 
В 23 февраля 2010 г. в 13:14 , Blogger Unknown сказал(а)...

Добрый день. main.far -это скомпилированный файл приложения live. Его код не доступен для модификации, собственно поэтому мы сделали копию всей папки Ваш FMS/applications/live и переименовали ее в Ваш_FMS/applications/MyTV. После этой операции MyTV должна содержать те же файлы что и live, а именно:
allowedHTMLdomains.txt
allowedSWFdomains.txt
Application.xml
main.far
readme.txt
Далее файл main.far мы заменили файлом с открытым кодом main.asc из директории Ваш_FMS/semples/applications/live
Который собственно и представляет собой исходник приложения live

 
В 27 февраля 2010 г. в 13:38 , Blogger max.lapshin сказал(а)...

Можно использовать тот же FMLE вместе с бесплатным RTMP сервером erlyvideo

 
В 27 февраля 2010 г. в 13:51 , Blogger Василий Потапов сказал(а)...

Вот делать нефига кому-то еще разбираться с бесплатными серверами, даю голову на отсечение, что глючить будет немерено. К тому же бесплатные сервера - это самообман. Стоимость специалиста который будет поддерживать этот сервер в месяц равна стоимости лицензии на самый дорогую версию Интерактив от Адобе. И получается, что в пересчет на на год эксплуатации, сервер от Адобе. который работает более менее стабильно, на порядок дешевле любого другого бесплатного. К тому время потерянное на изучение и борьбу с глюками "бесплатного" сервера потом уже невозможно вернуть.
Лично моё мнение дешевле купить самую дорогую лицензию, чем пользоваться чем-то бесплатным.

 
В 27 февраля 2010 г. в 15:26 , Blogger Unknown сказал(а)...

Andrey!"...Лично моё мнение дешевле купить самую дорогую лицензию, чем пользоваться чем-то бесплатным."
Золотые слова!

 
В 27 февраля 2010 г. в 15:36 , Blogger Unknown сказал(а)...

Тем не менее, max.lapshin, спасибо за ссылочку. Вопрос требует изучения. Кстати не нашел примеров использования erlyvideo в качестве ретранслятора потока с камеры и микрофона, или это не про то?

 
В 27 февраля 2010 г. в 15:39 , Blogger max.lapshin сказал(а)...

2Kohl: если надо захватывать камеру и микрофон с флеша, то надо пользоваться стандартным API флеша. Если хочется пользоваться FMLE, то надо просто прописать erlyvideo как сервер без каких-либо настроек. Если Quicktime Broadcaster или Wirecast, то на сайте есть про это.

 
В 28 февраля 2010 г. в 13:02 , Blogger Unknown сказал(а)...

да, уже прочитал, спасибо.

 
В 1 ноября 2010 г. в 19:05 , Blogger yuri kutyur сказал(а)...

Добрый вечер...
Спасибо огромное за статью, по ней так все и настроил, все заработало наконец..
Но появилась одна маленькая сложность... если я с своего компа захожу к себе на сайт http://www.kutyur.ru/mytv/livetest.html я вижу свою камеру онлайн, но если заходишь с другого компа туда же то ничего не происходит, картинки нету...
Где может быть ошибка?

 
В 2 ноября 2010 г. в 15:21 , Blogger Unknown сказал(а)...

Добрый день, Юрий. У меня тоже не получилось подключиться к Вашему сервису (connectionError), но чтобы Вам помочь нужна более подробная информация (где стоит сервер, AS код клиентского приложения).
Часто проблема возникает с настройками Apache. Вот пруфлинк: http://help.adobe.com/en_US/FlashMediaServer/3.5_AdminGuide/WSE2A5A7B9-E118-496f-92F9-E295038DB7DB.html

 
В 3 ноября 2010 г. в 08:44 , Blogger yuri kutyur сказал(а)...

Спасибо за ответ. Я уже неделю пытаюсь это замутить, но пока никак.)
у кого нибудь это получилось.?)
В FMS где [servername] я должен написать -
rtmp://kutyur.ru/mytv/livestream
Или может это windows 7 что то блокирует..?
"AS код клиентского приложения" - что это за файл, я с удовольствием бы показал его вам...

 
В 3 ноября 2010 г. в 10:48 , Blogger Unknown сказал(а)...

>> у кого нибудь это получилось.?
У всех нормально работает. Видимо нужно немножко денег, и Вам все настроят...

 
В 18 июля 2011 г. в 17:50 , Blogger Unknown сказал(а)...

Для живой трансляции также могу посоветовать отказаться от собственного Adobe Flash Media Server и довериться сторонним ресурсам коих немеренно Justin.tv, Ustream.tv и другие, мне нравиться Justin.tv на нём при дропе кадров аудио идёт без прерывания.
При такой схеме нет ограничения на кол-во пользователей, не нужен быстрый канал интернета и др.

 
В 15 октября 2011 г. в 22:52 , Blogger INFLICTED сказал(а)...

Не понятно, как от localhost переходим к rtmp://mysite.ru

по какому адресу обращаться, если FMS установлена на обычном компе подключенному к Инету ?

 
В 15 октября 2011 г. в 23:52 , Blogger INFLICTED сказал(а)...

и какой должна быть ссылка для просмотра юзерам?

 
В 17 октября 2011 г. в 22:41 , Blogger Unknown сказал(а)...

Добрый день.
Ссылка для юзеров rtmp:/[public dns ресурса, где установлен FMS, если localhost, значит localhost]/[имя Вашего приложения]/[имя публикующего потока]

 
В 17 января 2012 г. в 19:16 , Blogger Maria сказал(а)...

Доброго времени суток,сразу хочется перейти к вопросу, по существу:имеется домашняя машинка dual xeon, interactive версия adobe flash media server, внешний белый IP, широкий 80 mbit канал интернета, и желание с этого компьютера вещать в сеть.при настройке vhost в режиме local все крутится в домашней подсети прекрасно,но вот получить доступ к потоку из глобальной сети возможности нет,используем приложение videowhisper livestream as код могу предоставить вознаграждение обсуждается

 
В 17 января 2012 г. в 20:36 , Blogger Unknown сказал(а)...

Привет Maria, наиболее часто распространенная трабла - настройка Apache, дело в том, что FMS идет со своим апачем, вернее со своими настройками сервера, чтоб не вдаваться в подробности рекомендую грохнуть процесс Apache2.2 и запустить его родной FMSHttpd (если устанавливали без родного Apache - переустановите с ним). Если хотите по-упрожняться в настройках апача самостоятельно - гугл сразу вам поможет(например: http://help.adobe.com/en_US/FlashMediaServer/3.5_AdminGuide/WSE2A5A7B9-E118-496f-92F9-E295038DB7DB.html). Если это не прокатит, напишите в личку Ваш IP - хочу посмотреть что там будет видно...

 
В 18 января 2012 г. в 18:32 , Blogger Maria сказал(а)...

Установка производилась с идущим в комплект поставки apache в процессах он же выставлен на автоматический запуск.Ip приобретенный у провайдера крутится по VPN машинка к интернету подключена по витой паре то есть, без роутера и проброса портов. Тех поддержка провайдера твердит что порты необходимые 1935 и 80 у них открыты по приведенной вами в одной из ваших же статей проFMS на AWS по ссылке на проверку портов это подтверждается, хотя сторонний сервис 2IP говорит об обратном.в настройках apache ничего не менялось. .Сеть домашняя выходит в интернет без прокси.IP предоставлю если подскажите как тут написать личное сообщение.

 
В 4 марта 2013 г. в 15:46 , Blogger Unknown сказал(а)...

Этот комментарий был удален автором.

 
В 4 марта 2013 г. в 15:51 , Blogger Unknown сказал(а)...

Привет Константин
Я читал вашу статия.
я немогу определить какий программы надо установит на ползоват. и на сервера. Спасибо!

 
В 8 марта 2013 г. в 15:19 , Blogger Unknown сказал(а)...

Shuhrat Sharipov, Хороший вопрос:)
Сервер: Adobe Flash Media Server
Клиент: Adobe Flash Media Live Encoder

 
В 25 сентября 2015 г. в 14:16 , Blogger Unknown сказал(а)...

Подскажите пожалуйста, а как организовать HLS вещание через AFMS. RTMP у меня работает без проблем, но хотим сделать так чтобы HLS поток показывался бы в HTML5 плеере.

 

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница