Affichage des articles dont le libellé est Red 5. Afficher tous les articles
Affichage des articles dont le libellé est Red 5. Afficher tous les articles


Premier client Red5 (avec Flex)

Pour faire suite à mon précédent article illustrant comment créer une simple application Red5, je vais dans cet article vous illustrer comment s’y connecter simplement avec un client léger.

Le protocole de communication utilisé dans ce genre d’application se nomme RTMP (Real Time Messaging Protocol). Il a initialement été développé par Adobe afin de permettre aux applications Flash de communiquer en temps réel avec un serveur, grâce à de simples "messages".

Mais trève de théorie, voici sans plus tarder les quelques lignes qui vous permettront de vous connecter à votre serveur :



 
  
 

Comme vous pouvez le voir dans la méthode "connect", l’URL de l’application est basée sur le protocole RTMP.

Si tout se déroule correctement, une fenêtre pop-up s’ouvrira indiquant "Starting app...". Vous pouvez dès lors faire appel à d’autres méthodes, la connexion au serveur étant assurée.

Dans le cas où tout ne se déroulerait pas aussi simplement, vous pouvez consulter la page de Red5 Blog décrivant les différents messages d’erreurs possibles et leur description/cause.

Note :

Il est important de savoir que la moindre erreur dans votre code JAVA (NullPointerException…) entrainera un retour du type NetConnection.Connect.Failed dans Flex, sans plus d’information. En effet, il semblerait que, pour le moment, Red5 ne puisse pas faire suivre les erreurs levées jusqu’au client... (du moins à ma connaissance!). Alors si vous ne voyez pas pourquoi votre code ne fonctionne pas, n’hésitez pas à le bourrer de try...catch pour faire apparaître les éventuelles erreurs dans la console Red5!


Fichier(s) joint(s) :

Flex/Red5 : Enregistrer le flux de la webcam

Une question toute simple m’a brulé les lèvres ces jours derniers : comment capturer le flux vidéo de ma webcam et en faire une video FLV?

Je me suis décidé à écrire cet article lorsque je me suis aperçu, au fil de mes recherches sur le net, que cette problématique paraît tellement simple que personne n’en a donné une réponse claire et explicite…

Voici donc les quelques lignes (et surtout LA ligne!) qui va vous permettre d’enregistrer votre webcam :



 
  
 
 
 
  
 

Comme vous pouvez le constater, rien de plus simple! Il suffit de faire appel à la méthode NetStream.publish avec le paramètre "record". Un fichier FLV sera créé, portant le nom indiqué.

Hope this help!

Note :

Un bug connu du Flash Player 9, lié (je pense) à ce bug rapporté chez Adobe, persistant sous Flash Player 10 et résidant dans la méthode NetStream.close, provoque l’écriture de fichiers FLV mal formés et parfois donc illisibles… Je décrirais dans un prochain article une solution pour “nettoyer” vos fichiers et les rendre utilisables.


Fichier(s) joint(s) :



A la découverte de Red5!

Avant d’entrer dans le vif du sujet, commençons par présenter rapidement Red5, pour ceux qui ne connaissent pas :
Il s’agit simplement d’un serveur de streaming, permettant de gérer la diffusion de flux diverses, tels des flux audio, vidéos ou même des connexions vers d’autres serveurs (bases de données...). Il est l’équivalent gratuit et open source de Flash Media Server.

Je vais dans cet article vous donner les premières étapes nécessaires à la mise en place de votre première application.

Répartition des fichiers

Les fichiers JAVA

Toutes les classes utilisées pour créer le côté serveur de l’application sont en JAVA et doivent se situer à l’emplacement suivant :

[dossier_installation_red5]/webapps/[nom-de-l'appli]/WEB-INF/classes/

Les fichiers de configuration

Trois fichiers sont requis pour faire fonctionner votre application, dans le répertoire :

[dossier_installation_red5]/webapps/[nom-de-l'appli]/WEB-INF/

web.xml :

Sert à décrire le nom et le répertoire racine de votre application. Il suffit simplement de remplacer "param-value" dans le tag suivant :

********

red5-web.xml :

Indique au serveur quelle sera la classe qui vous aurez créée comme base à votre application (voire le paragraphe suivant sur la classe ApplicationAdapter). Vous devrez indiquer le nom complet de votre classe (package compris) dans ce tag :

***********

red5-web.properties :

Fichier de propriétés déclarant quelles URL doivent pointer vers votre application :

webapp.contextPath=/demo
webapp.virtualHosts=*, localhost, localhost:8088, 127.0.0.1:8088

La classe : ApplicationAdapter

Toute application Red5 doit étendre la classe native ApplicationAdapter pour permettre de gérer les évènement de bases : dé/connexion, démarrage/arrêt de l’application… Voici un exemple basic de ce type de classe :

package applicationAdapter;
 
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
import org.apache.log4j.Logger;
 
public class Application extends ApplicationAdapter {
 
private static Logger logger = Logger.getLogger(Application.class);
 
public void appStop() {
logger.info("App stop");
}
 
public void appStart() {
logger.info("App start");
}
 
public boolean appConnect(IConnection conn, Object[] params) {
try {
logger.info("appConnect");
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
 
public void appDisconnect(IConnection conn, Object[] params) {
logger.info("appDisconnect");
}
 
}

Votre application est maintenant prête à être démarrée. Elle sera accessible à l’addresse :

http://localhost:5080/[nom-de-l'appli]/

Dans le prochain article, je vous montrerai le code utilisé pour réaliser un simple client vers notre serveur Red5...


Fichier(s) joint(s) :