Apache video streaming: flv et mp4 (H264) via modules open-source
Note: cette installation s’est déroulée avec Apache 2.2.3 (Plesk 9.2) sous CentOS 5.2
Pour réaliser du pseudo streaming via HTTP avec le serveur web Apache, il suffit d’installer deux modules open-source:
- mod_flv: pour des fichiers videos flash (flv) qui comportent des keyframes
- H264 Streaming Module: pour des fichiers MPEG4 (mp4)
L’installation…
- Installer APXS pour Apache
yum install httpd-devel - Télécharger la source du module mod_flv
wget http://people.apache.org/%7Epquerna/modules/mod_flvx.c - Compiler et installer mod_flv
apxs -c -i ./mod_flvx.c - Créer/Editer un fichier de configuration mod_flv pour Apache
vi /etc/httpd/conf.d/mod_flvx.conf
avec le contenu suivant:
LoadModule flvx_module modules/mod_flvx.so
AddHandler flv-stream .flv - Redémarrer Apache pour être certain que l’installation de mod_flv s’est bien déroulée
service httpd restart - Télécharger et décompresser le module H264 Streaming
wget http://h264.code-shop.com/download/apache_mod_h264_streaming-2.2.5.tar.gz
tar -xvzf apache_mod_h264_streaming-2.2.5.tar.gz - Compiler et installer le module H264 Streaming
cd ./mod_h264_streaming-2.2.5
./configure
make
make install - Créer/Editer un fichier de configuration mod_flv pour Apache
vi /etc/httpd/conf.d/mod_h264_streaming.conf
avec le contenu suivant:
LoadModule flvx_module modules/mod_flvx.so
AddHandler flv-stream .flv - Redémarrer Apache
service httpd restart
Des fichiers flv avec des keyframes…
- les clés peuvent être ajoutées sur un fichier flv existant en utilisant flvtool2 (DAG repository):
flvtool2 -U video.flv
Tester le streaming HTTP…
- utiliser le lecteur video Flash JW Player avec la variable “provider” définie à “http”
- un exemple ici
Sources:
Comme vu sur DevBlog:
http://www.devblog.fr/2009/09/18/streaming-de-fichiers-mp4-avec-h264-streaming-module-et-apache/
“En fonction de votre configuration d’apache vous pouvez rencontrer des problèmes à la lecture des vidéos mp4 sous firefox toutes versions.
Ceci vient probablement du mod_deflate (ex g-zip), activé par défaut dans pas mal de configurations. Pour remédier au problème et profiter du streaming sur toutes les plate-formes, pensez à mettre à jour votre httpd.conf comme suit, afin d’exclure les .mp4 du processus de compression :”
#Don’t compress MP4
SetEnvIfNoCase Request_URI \.(?:mp4)$ no-gzip dont-vary
(lignes que l’on peut ajouter sans autre au fichier mod_h264_streaming.conf)