2010-07-02 2 views
1

J'essaie d'envoyer un flux vidéo à un serveur Red5 en utilisant Flex. Mon installation Red5 semble fonctionner pour les invocations de méthodes distantes et les objets partagés, mais je n'ai pas encore réussi à faire fonctionner la vidéo.Comment envoyer un flux vidéo à un serveur Red5 à l'aide de Flex?

Ce code AS3 qui se connecte à 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) 

Et quand NetConnection.Connect.Success est reçu le code suivant est exécuté pour commencer à envoyer le flux:

# 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()); 

Cependant, cela ne fonctionne pas donc je fais quelque chose de mal.

C'est l'application Java lié au contexte Red5 je me connecte à:

package com.company; 

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

Je suis en Red5 0.9.1 et la seule configuration que je l'ai fait est la mise en place ma demande en modifiant WEB-INF/red5-web.xml et en ajoutant:

<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" /> 

Ce sont les messages du journal que je reçois dans la console lors de la connexion Red5 et en essayant d'envoyer de la vidéo:

org.red5.server.net.rtmp.RTMPHandler - Connecting to: [[email protected] 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 

Qu'est-ce que je fais mal? Comme indiqué, notez que l'installation Red5 fonctionne parfaitement pour les invocations de méthodes distantes et les objets partagés, mais pas pour les vidéos qui sont étranges.

Répondre

1

Rien ne me sort de vos configs/classes, tout a l'air ok. Avez-vous essayé de publier sur l'une des démos juste pour exclure votre client? oflaDemo ou en direct?

0

Juste une pensée, mais savez-vous quel codec votre appareil photo utilise?

J'ai réussi à obtenir une application Flex simple jusqu'à & en cours d'exécution à une application de serveur exemple Red5 et de ce que je peux dire faisait à peu près la même chose que vous avez fait.

Si vous changez "live" en "record", est-ce que quelque chose sera enregistré dans le répertoire streams de votre application serveur?

Questions connexes