Ce guide est découpée en plusieurs parties, chacune présentant une fonctionnalité de notre futur service
- installer le serveur Web
- installer le module de streaming
- utiliser Flowplayer pour lire les vidéos
- sécuriser les urls
- gérer la bande passante
- suivre la santé de notre serveur
Deuxième partie : installer le module de streaming
Si vous avez suivi la première partie, vous avez un serveur apache mpm-worker qui fonctionne.
Nous allons maintenant installer le module qui permet de faire du pseudo streaming h.264.
2.1 Récupérer les sources
Les Néerlandais de code-shop aiment la norme H.264 et le pseudo streaming, ça se voit.
Ils ont créé un plugin pour différents serveurs http, notamment celui qui nous intéresse, apache.
Les fonctionnalités qui nous intéressent sont bien entendu le support de H.264 ainsi que la possibilité d’atteindre n’importe quel point de la vidéo sans avoir besoin de télécharger l’ensemble du fichier (timeshifting seek).
Nous allons donc récupérer les sources de ce plugin et l’installer sur notre serveur.
Installons dans un premier temps SVN, nous pourrons ainsi accéder au dépôt et récupérer la dernière version des sources:
nous récupérons les sources dans le répertoire /root/apache_http_h264_streaming :
svn export http://h264.code-shop.com/svn/h264/tags/mod_h264_streaming-2.0/apache apache_http_h264_streaming
svn export --force http://h264.code-shop.com/svn/h264/tags/mod_h264_streaming-2.0/mp4split apache_http_h264_streaming
2.2 Compiler le module
Dans l’article précédent nous avons installé apache2-threaded-dev. Ce paquet nous fourni le binaire apxs2 (APache eXtenSion tool) qui va nous être utile pour compiler et installer mod_h264_streaming.
apxs2 -c -i mod_h264_streaming.c moov.c
Les options -c et -i indiquent à apxs2 d’effectuer une compilation et d’installer ensuite le module dans le répertoire /usr/lib/apache2/modules/
Je tiens à souligner à quel point apxs2 est pratique, il nous évite une séance fastidieuse de ./make et ./configure même si certains esprits malicieux préféreront cette dernière méthode.
2.3 Configurer Apache
Nous modifions la configuration d’apache afin de lui indiquer qu’il peut désormais servir du contenu H.264.
Nous ouvrons httpd.conf avec nano
et nous ajoutons les lignes suivantes:
AddHandler h264-streaming.extensions .mp4
l’instruction AddHandler h264-streaming.extensions .mp4 nous permet d’indiquer à Apache que le nom de fichier à associer aux videos H.264 est ‘.mp4′.
On redémarre apache et le tour est joué
A ce stade notre serveur est prêt à diffuser nos vidéos.
Dans la prochaine étape, nous verrons comment utiliser Flowplayer pour les lire depuis une page web.


22 février 2010 - 14 h 37 min
3 petites remarques ici :
« nous récupérons les sources dans le répertoire /root/apache_http_h264_streaming : »
Précise (au vu du code qui suit) que tu es connecté en root, car sinon on retrouvera les source sous /home/$USER/apache_http_h264_streaming.
Ensuite (mais cette remarque est uniquement basée sur des souvenirs) il me semble que dans /etc/apache2 tu trouves 2 dossiers mods_available et mods_enabled …
Tu peux ainsi créer dans mods_available :
un fichier mod_h264.load contenant :
LoadModule h264_streaming_module /usr/lib/apache2/modules/mod_h264_streaming.so
un fichier mod_h264.conf contenant :
AddHandler h264-streaming.extensions .mp4
Il te suffit ensuite d’utiliser l’executable a2enmod pour activer ce module.
Cela sera plus cohérent avec l’utilisation faite de la release « Debian » que tu utilises (My2cp ^^)
Enfin, un simple /etc/init.d/apache2 reload suffit, beaucoup plus court qu’un restart en terme d’indisponibilité
10 décembre 2010 - 21 h 05 min
Bonjour,
J’ai suivi avec grand intérêt ton tuto sur la création d’un serveur de streaming.
Je voulais savoir si tu avais un retour d’expérience sur ce serveur en environnement de production :
support de charge
sécurisation des url
suivi des bandes passantes
Je suis très intéressé par cette solution mais il y a malheureusement peu d’informations sur le net de manière générale et encore moins sur le site de Code Shop !
De plus j’ai l’impression que le site n’est plus vraiment mis à jour depuis mars 2010.
Voila merci d’avance,
Khalil
11 décembre 2010 - 14 h 49 min
C’est cette solution que j’ai mis en place sur Nolife Online, le service de VOD de Nolife (http://www.nolife-tv.com)
. Vu l’intérêt que tu manisfestes ça me motive pour les finaliser rapidement.
C’est robuste, stable et peu couteux : il y a juste une licence à payer aux p’tits gars de code shop, vu les services rendus c’est dérisoire.
La charge CPU est très faible(sur des quad core), le seul goulet d’étranglement est au final la bande passante.
Pour les URL la solution proposée empêche le hotlinking, par contre ce n’est pas une solution miracle, en ce sens que tu ne pourras pas empêcher quelqu’un de coder un script pour crawler ton site.
pour la suite… disons que les articles sont prêts à 90%, depuis plusieurs mois déjà