![]() |
Изучаю Red5 с нуля =)
Часть первая:
Возникла необходимость сделать простенький видеочат, тет-а-тет. Я когда то работал с FCS - ныне FMS, от Адобы поэтому решил что проблем с red5 у меня не возникнет. Ах, как же я ошибался =) Итак, первое что я узнал, это то, что весь серверный скрипт пишется на Java, т.е. придется изучать новый для меня язык. Впринципе я рассчитывал что это будет не сложно, т.к. ActionScript и JavaScript, Java - очень похожи... Итак, первое что я нашел в интернете, это переведнная статья: "Начало разработки с Red5" Следуя инструкциям, я выполнил все шаги по инсталляции эклипса, и самого red5. Единственное что я не сделал сразу, это не качал Flash плагин к эклипсу, т.к. хотелось на скорую руку опробовать сервер в действии написав что нибудь простое во FlashIDE, да и не хотелось разбираться с эклипсом и его плагинами. Вобщем выполнив все действия по шагам, и переместив собранный пример на сервер, я понял что сервер не видит мою серверную часть программы ни в какую =( Первая попытка: NetConnection.Connect.InvalidApp?NetConnection.Connect.Closed Затем: NetConnection.Connect.Failed Очень странно т.к. по идее код простой и все должно работать! Ну деваться некуда, надо как-то разобраться ... нашел примеры в папке сервера, и решил начать сних. Берем пример от oflaDemo, лежащий в папке webapps, и тупо суем в эклипс, эклипс начинает материться что мол нет библиотек - все в красных крестах. Я сначала выборочно смотрел какие библиотеки необходимы, но т.к. разобраться надо в сжатые сроки, добавляю ВСЕ библиотеки из папки lib в red5. Делается это так же как в предыдущем примере: Project ? Properties. Раздел Java Build Path, вкладка Libraries. Нажимаем Add External JARs и выбираем все библиотеки в директории [red5_HOME]/lib нажимаем OK. Так же добавляем библиотеку red5.jar, лежащую в директории установки red5. Ура! Теперь эклипс видит библиотеки, а мы видим вместо скомпилированных классов, Application.class - код Applicayion.java. И никаких красных крестов =) Теперь когда я могу ковырять готовый пример, все пойдет намного быстрее. Итак, лезем в папку WEB-INF/src org.red5.server.webapp.oflaDemo и сразу делаем копию Application.java ( CopyOfApplication.java ). Это возможно пригодится, если я что-то накосячу своими кривыми руками. Ну что теперь? Попробую добить пример описаный в статье, для этого я копирую весь код из примера в статье, в наш Application.java. Копирую проект на сервер, рестартую сервак, и вуаля, флешка говорит что коннект успешен! ( либо не успешен, в зависимости от того какой параметр мы шлем, true или false ) ДА, это работает! Еще один маленький шаг вперед. Теперь у меня есть необходимость попробовать законнектить свою флешку, и постараться отдать поток серверу с веб камеры. Хочется так же, что бы поток именовался именно так как я хочу - это позволит мне раздавать этот поток отталкиваясь для начала лишь от его имени. Я выдрал кусок кода из копии CopyOfApplication.java подправил Application.java, и теперь он выглядит так: Код:
package org.red5.server.webapp.oflaDemo;Код:
var nc:NetConnection;Итак, stream.publish ( "myId", "live" ); - позволяет задать имя потока и тип потока налету ("record", "append", "live"). Наш сервер это хавает, создает в папке streams файл с именем myId. Все, пол дела сделано, и это оказалось не так уж и сложно =)) Но это я не вникал в java, а просто тупо скопировал пример. Да, кстати еще такое дело - примеры которые валяются в red5 для клиентской стороны все написаны на АС2.0, и используют кучу библиотек, написанных опять же на 2.0. Я пишу клиентскую часть на АС3, потому что мне так удобнее. Как же забрать поток? А поток забрать с сервера еще проще, чем отдать. Вот пример кода который будет читать по названию файла наш поток. Код:
var nc:NetConnection;Ну вот собственно дело сдвинулось с мертвой точки. Я немного разобрался в эклипсе, немного в яве. В следущий раз напишу как я делал соединение сокетами локального сервера проверки id и сервером red5 ( надеюсь это возможно ). |
спасибо за пост и тему, ALiEN. тоже интересуюсь red5. слушай, а ты сервак этот на чем поднял? на винде или на линуксе?
|
Часть вторая:
Итак немного помучавшись, почучав друзей решил приступить к написанию простой вещи, red5 создает сокет, коннектится к внутреннему серверу и делает запрос на существование в базе данных юзера с заданным id. Для начала я пошел в гугл и просто поискал примеры "java socket пример", и т.д. ковырялся надо сказать долго, потому что все время всплывали ошибки =) в итоге подключив несколько библиотек, Код:
import java.applet.*;Код:
private boolean getSession ( String user_id )Хочется сказать несколько слов о яве. По сравнению с синтаксисом ActionScript, Java, ближе к С =) Например обозначить функцию на яве можно так: private boolean getSession ( String user_id ) а в АС так: private function getSession ( String user_id ) : boolean Так же и имена переменных: java String data = "user_id=" + user_id + "\n"; AS var data:String = "user_id=" + user_id + "\n"; Как оказалось - ничего сложного. Немного поправил основную функцию, которая теперь принимает параметром id нашей флешки. Код:
public boolean appConnect ( IConnection conn , Object[] params )Соответственно и клиентская часть притерпела изменения: Код:
function createConnect () |
Цитата:
Проблем с установкой под макосью не возникло вообще - действовал по инструкции по первой ссылке. Под линуксом пришлось повозиться, потому что тащит он за собой всякого очень много. НО! инструкции по установке в сети тоже есть. |
Вложений: 1
не всопмню сразу где видел ссылку на док. по ред5. качнул. мож.пригодится кому, решил выложить.
|
Вообще-то в Red5 можно писать webapps на целой куче языков от javascript до jython... Только надо это уметь делать :)
|
Цитата:
|
вопросик
а если будет много пользователей, будет ли стабилен red5 ? или лучше брать FMS |
ну почему же у меня постоянно не получаеться((((
Код AS3:
я уже четверо суток юзаю различное ПО, готовые исходки, гугл и всё напрасно. просто ппц, что я насколько слаб(( Подскажите подалуйста, я просто сойду с ума... И какое ПО нужно для разработки? У меня стоит: Red5 v2.1 Adobe Flash CS3 Proffesional edition Adobe Flex Builder 3 Eclipse Platform v3.4.1 Build id: M20080911-1700 NetBeans IDE 5.5 Build 200612070100 |
Цитата:
версия 0.63 тянет более менее 200 юзеров а вот 0.7 частенько просто выпинывает клиентов |
Цитата:
|
Тоже пришлось взяться за изучение RED5 и сразу вылезла масса проблем.
Пока я пробовал менять код приложения oflaDemo ещё как-то дело двигалось, но пришло время дать приложению своё имя. И вот на этом всё остановилось. Что я сделал: взял чистые сорцы от oflaDemo и в файлах red5-web.properties red5-web.xml web.xml изменил везде имя oflaDemo на своё (скажем, myFirst) удалил все *.class в сорцах .java изменил везде oflaDemo на то же имя. Во всех .java файлах изменил package org.red5.server.webapp.oflaDemo; на package org.red5.server.webapp.myFirst; и скомпилировал. появилась папка webapps\myFirst\bin\org\red5\server\webapp\myFirst\ и в ней классы, которые ранее были webapps\oflaDemo\bin\org\red5\server\webapp\oflaDemo\ ошибок не выявлено (точнее они были, но после подключения к проекту red5.jar commons-logging-1.1.jar и spring-core.2.0.6.jar всё прошло). при попытке подключения стандартной флешкой к rtmp://localhost/myFirst получаю ошибку Код:
description = No scope "myFirst" on this server.Использую red5 версии 0.6 под Windows, тот, который инсталлер в комплекте с jetty. Ставил "на посмотреть" 0.8 версию. Там появился какой-то installer приложений и до инсталляции они не работали, может тут тоже какая-то нужна инсталляция? PS после перекомпиляции приложения приходится перезапускать сервис red5 это так у всех? Может есть какой-то другой способ? |
Цитата:
На одном из сайтов (red5 0.7) стала проявляться вот эта бага http://jira.red5.org/browse/APPSERVER-168 |
это что - меня седня начальство озадачило - мне надо пустить мультикаст поток с dvb карточки на окошко на сайте - типа онлайн телевидиние организовать.
я конечно упал на мороз, сказав что ничего не обещаю, но сам заинтересовался - можно ли использовать FMS или red5 для видеозахвата с устройства и мультикаст трансляции во флешки? P.S. я вообще не сталкивался ниразу с разработкой связаной с видео во флеш и этими серверами, но у меня еще задача видеочат наваять скоро объявится, так что полюбому прийдется, спасибо за грамотные мануалы :) |
|
У меня такой вопрос по Red5 - нужно сделать клиентскую часть на Java - есть ли какие-то примеры этого?? хотелось бы полностью файлик класса или что-то подобное..
Добавлено через 10 минут и еще вопрос по серверу Red5 - он может работать с потоковым видео/аудио?? |
Подскажите, умеет ли ред5 ловить события на стороне сервера ? Тоесть в момент окончания одного ролика он допустим вызывает некую клиентскую функцию (например, чтобы дать понять плееру, что на сервере сменился ролик)? В фмс делалось это довольно легко, но не по карману мне он :(
|
Радио с Red5
Может Red5 помочь мне в создании радио? Радио должно работать с Shoutcast потоком.. Очень нужна помощь :)
|
Цитата:
Добавлено через 1 минуту Цитата:
|
Пытаюсь запустить Red5. Если в корне имеется red5.jar(после компиляции), то сервер ругается, что дублируются какие-то классы.
Если удаляю jar, то выдает эксепшн Код:
Exception in thread "main" java.lang.ClassNotFoundException: org.red5.server.Launcher |
| Часовой пояс GMT +4, время: 14:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.