Mise à jour le 02-09-2010
Ellny souhaite créer un tchat avec webcam. L'utilisation de la webcam s'assimile à du streaming. L'idée est d'utiliser un serveur red5. Je lui piquerai son chat pour un module optionnel de tinaderp (tjs en cours de développement). Je ne sais pas l'utiliser mais de toutes façon avant ça faut l'installer.
Je préférais faire un test avant dans une virtual box[1], afin de déja bien voir comment ça s'utilise et se parametre.
Le projet red5 m'a l'air pas mal actif, du coup je n'ai pas trouvé de doc bien à jour et listant toutes les dépendances (hormis java). Preums :p
Je pars d'une débian 5 toute propre.
Vite fait, pour le test ultérieur, installation d'un LAMP:
Le red5, si je retiens cette solution, sera sur le serveur tinad qui a déja une solution LAMP bien propre. Installer serveur Appache Mysql Php:
#LAMP #metre un mot de passe root mysql apt-get install apache2 apache2-doc mysql-server php5 libapache2-mod-php5 php5-mysql libapache2-mod-auth-mysql #redémarrer apache (pour qu'il prenne en compte PHP qui a été installé apres): /etc/init.d/apache2 restart
Pour le moment j'en ai fini avec le serveur http, on l'utilisera plus tard lors des tests de red5.
Installer red5
installation des prérequis (notamment subversion, apache ANT et une java runtime environnement)
Il faut avoir les paquets non-free de débian dans la liste des sources. Si ce n'est pas le cas ajoutez les lignes suivantes dans le fichier /etc/apt/sources.list.
deb http://ftp.fr.debian.org/debian/ lenny non-free deb-src http://ftp.fr.debian.org/debian/ lenny non-free
Puis rafraichissez la liste des paquets:
apt-get update
subversion, apache ANT et une java runtime environnement
J'avais tenté avec open-jdk à la place de sun-java, histoire de limiter les programmes propriétaires mais ça marche mal.
#avec les dépendances, ça fait 449 MO de binaires supplémentares sur le disque: apt-get install subversion dpkg-dev debhelper dh-make devscripts fakeroot sun-java6-jdk ant
Bon le temps que ça installe je fais ma premier tour à la cuisine, pour me chercher un café
J'utilise une cafetière Moka d'ailleurs, le nesspresso me revenait trop cher pour ma paie de fonctionnaire cat B.
Bon allez, c'est fini, la suite:
Installer la dernière version de Red5 depuis les sources:
svn co http://red5.googlecode.com/svn/java/server/tags/0_9_1 red5-0.9.1
Un repertoire red5-0.9.1/ a été créé dans le repertoire courant.
Compiler le bouzin
cd red5-0.9.1 make make install
démarrer red5
#il faut se placer dans son dossier sinon ça ne marche pas cd /usr/lib/red5/ ./red5.sh
On teste à présent en se connectant au serveur sur le port 5080 (entrez dans le navigateur une adresse du genre http://XXX.XXX.XXX:5080 où XXX.XXX.XXX est l'adresse IP).
Si vous voyez la vidéo, ça marche:

Pour vraiment tester, allez sur "install a ready made application"
Puis installez oflademo par exemple. On revient sur les démos, et si vous n'êtes pas en local Remplacez "locahost" par l'IP su serveur. wahou un extrait de toystory
Bah c'est cool, sauf qu'il faudrait que ça marche en tache de fond. Car là des qu'on ferme le terminal ssh ou la session, red5 s'arrête.
Inscrire red5 en service au démarrage:
Je me base sur ce script, juste en modifiant le chemin de red5, et en précisant dans quel fichier il doit causer.
Créer un fichier /etc/init.d/red5
vi /etc/init.d/red5
y coller le script suivant:
#! /bin/sh
# Modification Gnieark http://blog-du-grouik.tinad.fr/ mai 2010
# Send red5's verbose on a log file
#
# Author: Jake Hilton <red5@jakehilton.com>
# /etc/init.d/red5
#
# Check for missing file
RED5_DIR=/usr/lib/red5
test -x $RED5_DIR/red5.sh || exit 5
case "$1" in
start)
echo -n "Starting Red5 Service"
echo -n " "
cd $RED5_DIR
su -s /bin/bash -c "$RED5_DIR/red5.sh &" red5 >>/var/log/red5.log
sleep 2
;;
stop)
echo -n "Shutting down red5"
echo -n " "
cd $RED5_DIR
su -s /bin/bash -c "$RED5_DIR/red5-shutdown.sh &" red5 >>/var/log/red5.log
sleep 2
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
;;
esac
Le rendre exécutable et créer un user red5 (dans le script ci dessus, red5 fonctionne avec cet user)
chmod +x /etc/init.d/red5 useradd red5
le script s'utilise des manières suivantes:
- /etc/init.d/red5 start
- /etc/init.d/red5 stop
- /etc/init.d/red5 restart
Dans mon cas, lors de la compilation il a "oublié" de copier le fichier red5-shutdown.sh qui est appelé lors d'un "/etc/init.d/red5 stop", on va le mettre:
cd ~/red5-0.9.1/ cp red5-shutdown.sh /usr/lib/red5/ chmod +x /usr/lib/red5/red5-shutdown.sh
Reste plus qu'à mettre un "/etc/init.d/red5 start" au démarrage:
cd /etc/init.d update-rc.d red5 start 56 2 3 4 5 . stop 44 0 1 6 .
Voilou voila.
Pour les essais, j'en suis juste à tester les applications demo.
waoh trop classe j'arrive à voir la webcam du pc juste à coté. :hem:
Je vais refaire du café. Y'a plus qu'à comprendre comment l'utiliser. ça sera peut être l'objet d'un prochain billet.
Notes
[1] Je ne regrette pas (troisième essai)

Flux RSS des billets
Me contacter
Mon twitter
Sur Buzz
Apache
Dans
Le but est de sauvegarder un serveur distant sur un pc qui n'a pas vocation à être allumé en permanence. L'autre objectif est aussi de se passer de la location d'un espace ftp pour entreposer des sauvegardes. l'inconvénient est le temps d'upload qui sera beaucoup plus long en cas de restauration.

Ce billet a pour but de décrire une méthode pour utiliser différents certificats ssl sur une même instance apache (même adresse IP du serveur, mais plusieurs VHOST) Il existe d'autres méthodes.