Как отправить видеопоток на сервер Red5 с помощью Flex? - PullRequest
1 голос
/ 02 июля 2010

Я пытаюсь отправить видеопоток на сервер Red5 с помощью Flex.

Кажется, что моя установка Red5 работает для удаленных вызовов методов и общих объектов, но мне еще не удалось заставить работать видео.

Это код AS3, который подключается к Red5:

# connect to RTMP server
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
netConnection.connect("rtmp://localhost/context_name");
# omitted code for waiting for connection success, and setting up shared
# objects (which works fine - the Red5 setup is hence OK)

А когда получено NetConnection.Connect.Success, запускается следующий код, чтобы начать отправку потока:

# when NetConnection.Connect.Success then the following code is run:
var netStream:NetStream = new NetStream(netConnection);
netStream.publish("name_of_stream", "live");
netStream.attachCamera(Camera.getCamera());

Однако это не работает, поэтому я делаю что-то не так.

Это приложение Java, привязанное к контексту Red5, к которому я подключаюсь:

package com.company;

public class NameOfApplication extends ApplicationAdapter {
    // Empty class.
}

Я использую Red5 0.9.1, и единственная конфигурация, которую я сделал, это настройка моего приложения путем редактирования WEB-INF/red5-web.xml и добавления:

<bean id="context_name.context" class="org.red5.server.Context" autowire="byType" />
<bean id="context_name.scope" class="org.red5.server.WebScope" init-method="register">
     <property name="server" ref="red5.server" />
     <property name="parent" ref="global.scope" />
     <property name="context" ref="context_name.context" />
     <property name="handler" ref="context_name.handler" />
     <property name="contextPath" value="/context_name" />
     <property name="virtualHosts" value="*,localhost, localhost:5080, 127.0.0.1:5080" />                  
 </bean>
 <bean id="context_name.handler" class="com.company.NameOfApplication" />

Это сообщения журнала, которые я получаю в консоли Red5 при подключении и попытке отправить видео:

org.red5.server.net.rtmp.RTMPHandler - Connecting to: [WebScope@68e0ada6 Depth = 1, Path = '/default', Name = 'application_name']
org.red5.server.net.rtmp.RTMPHandler - Remembering client buffer on stream: 0
org.red5.server.stream.ClientBroadcastStream - Provider connect
org.red5.server.stream.ClientBroadcastStream - Stream start
org.red5.server.stream.ClientBroadcastStream - Provider connect
org.red5.server.stream.ClientBroadcastStream - Close
org.red5.server.stream.ClientBroadcastStream - Provider disconnect
org.red5.server.stream.ClientBroadcastStream - Provider disconnect

Что я делаю не так? Как уже было сказано, обратите внимание, что установка Red5 работает безупречно для удаленных вызовов методов и общих объектов, но не для видео, что странно.

Ответы [ 2 ]

1 голос
/ 04 сентября 2010

Ничто не выскакивает на меня из ваших конфигов / классов, все выглядит нормально.Вы пытались опубликовать в одной из демонстраций, чтобы исключить своего клиента?офлаДемо или вживую?

0 голосов
/ 12 июля 2010

Просто мысль, но знаете ли вы, какой кодек использует ваша камера?

Мне удалось запустить и запустить простое приложение Flex для примера серверного приложения Red5, и, насколько я могу судить, он делал то же самое, что и вы.

Если вы измените "live" на "record", будет ли что-либо сохранено в каталоге потоков вашего серверного приложения?

...