Encore plus léger et offrant de meilleurs résultats que le format FLV (On2VP6) qui avait, en son temps, révolutionné la vidéo sur le web, le MP4 (H264) apparaît désormais comme la nouvelle référence en matière de compression vidéo. Disponible à la lecture universelle depuis la version 9 du player flash, il présente également l’énorme avantage d’être le format natif de nombreux caméscopes numériques du marché.
En clair, vous n’avez plus besoin de passer par la case logiciel pour publier vos vidéos directement sur votre site internet, blog ou autre. Comptatibles avec le très populaire JW Player, les fichiers MP4/h264 révolutionnent à leur tour la diffusion de contenus vidéo sur le web. Cerise sur le gâteau, la possibilité de les diffuser en streaming pour peu que vous disposiez d’un serveur LAMP. Comment ?, c’est tout l’objet de ce petit tutorial (testé et approuvé sur une release 2 OVH – en fonction de votre distrib’ certains chemins et/ou commande peuvent varier) :
Téléchargement du h264 Streaming Module pour Apache (2+)
cd ~
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
Vous aurez peut-être besoin d’installer subversion pour ça : emerge -av dev-util/subversion
Compilation du module
cd ~/apache_http_h264_streaming
sudo /usr/local/apache/bin/apxs -c -i -a mod_h264_streaming.c moov.c
Compilation d’apache pour la prise en charge par le module des fichiers MP4
Edition du fichier de configuration dans /usr/local/apache/conf/httpd.conf
LoadModule h264_streaming_module modules/mod_h264_streaming.so
AddHandler h264-streaming.extensions .mp4
Redémarrer la configuration d’apache :
sudo /etc/init.d/apache reload
Choses importantes à savoir concernant l’installation de module :
1 – Pour les utilisateurs d’apache 2.0 qui rencontreraient le message d’erreur suivant au moment de la compilation du module « undefined symbol: apr_brigade_insert_file » il faut impérativement modifier le fichier : mod_h264_streaming.c comme suit :
#ligne 104 :
apr_brigade_insert_file(bb, fp, mdat_offset, mdat_size, r->pool);
#à remplacer par :
apr_bucket *e; e = apr_bucket_file_create(fp, mdat_offset, mdat_size, r->pool,r->bucket_alloc); APR_BRIGADE_INSERT_TAIL(bb, e);
2-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 images (et pas non plus les mp4 ! )
SetEnvIfNoCase Request_URI
.(?:gif|jpe?g|png|mp4)$ no-gzip dont-vary
Sources et ressources :
http://h264.code-shop.com/
JW Player
Démo (n’hésitez pas à vous déplacer dans le film avant son chargement complet, c’est tout l’intérêt du streaming !) :