Manipulez vos fichiers video avec PHP

Abonnements, magazines... Notre catalogue complet au bas de cette page.

Découvrez comment manipuler dynamiquement vos fichiers vidéo et audio avec PHP FFmpeg et son extension. Un outil surpuissant!

La plupart des développeurs utilisant PHP connaissent l'extension GD qui permet de manipuler des images. On peut générer des graphiques, des miniatures, retailler à la volée des images,... (souvent couplée avec l'utilisation de bibliothèques PHP telles que la JpGraph ou artichow.). Cette première approche amène à se demander s'il ne serait pas possible de faire la même chose avec des fichiers vidéo ? N’est-il pas plus agréable dans une galerie d'avoir un aperçu de ses vidéos plutôt qu'une icône identique pour toutes les vidéos. L'extension PHP FFmpeg-PHP vous permet de faire ce type de manipulation automatiquement.

FFmpeg Utilité : Manipulation de flux numériques audio ou vidéo. Auteur : Fabrice Bellard. A ce jour, maintenu par Michael Niedermayer. Licence : LGPL Site : http://ffmpeg.sourceforge.net

FFmpeg-PHP Utilité : Manipulation de flux numériques audio ou vidéo à partir de PHP. Auteur : - Licence : GPL Site : http://ffmpeg-php.sourceforge.net

Installation FFmpeg est un logiciel Open Source qui peut enregistrer, lire ou convertirun flux numérique, audio ou vidéo. Pour le coupler avec PHP, on a deux possibilités : Soit y accéder en faisant appel, via la commande PHP exec(), soit en utilisant l'extension PHP FFmpeg-PHP. Nous allons commencer par utiliser l'extension PHP.

Installation sous Linux La première étape consiste à installer FFmpeg, l'utilitaire permettant de manipuler les fichiers multimédia. Le plus simple est de faire appel aux rpm : • urpmi ffmpeg Pour tester : • " ffmpeg -L " vous affichera la licence de FFmpeg et " ffmpeg –formats " vous listera les formats supportés par votre installation. La seconde étape consiste à récupérer le fichier contenant l'extension sur SourceForge (http://ffmpeg-php.sourceforge.net). La version actuelle est la 0.4.6 et est compressée en tbz2. • Téléchargez le fichier ffmpeg-php-0.4.6.tar.tbz2 sur sourceforge, • Première étape de décompression : "bunzip2 ffmpeg-php-0.4.6.tbz2". Normalement, vous devriez avoir un fichier "ffmpeg-php-0.4.6.tar" dans votre répertoire. • Seconde étape de décompression : "tar xvf ffmpeg-php-0.4.6.tar". Normalement la décompression devrait avoir généré un répertoire ffmpeg-php-0.4.6 . • Déplacez l'ensemble du répertoire ffmpeg dans le répertoire " ext " de vos sources PHP (si vous ne les avez pas, téléchargez-les sur http://fr.php.net) : " cp-R ffmpeg /path/to/sourcePHP/ext/ " • Rendez vous dans le répertoire des sources PHP " cd /usr/local/src/php-5.1.4/ " • Compilez votre PHP avec l'option de configuration "–with-ffmpeg=yes"

Installation sous Windows L'installation de FFmpeg-PHP sous Windows nécessite de télécharger la dll qui convient à sa version de PHP. Vous trouverez des informations sur l'espace Sourceforge de ffmpeg-php.

API L'API FFmpeg-PHP permet aux développeurs d'accéder aux informations des fichiers vidéo et audio. Elle permet également de manipuler les frames d'une vidéo et de les extraire pour les manipuler avec les méthodes PHP classiques de gestion d'images. L'accès aux médias ne se fait qu'en lecture et n'est donc pas intrusif pour les médias. Les méthodes suivantes sont accessibles via la classe ffmpeg_movie. Cette classe a principalement pour but d'offrir des accès en lecture aux informations “classiques” des médias (vidéo & audio). Il est par exemple possible d'accéder à des informations comme la durée, le codec audio, le format, ... La classe ffmpeg_movies dispose d'une méthode getFrame qui retourne également une instance de la lasse ffmpeg_frame. Cet objet expose de nouvelles méthodes, destinées au traitement des frames, puis au transfert vers GD pour des traitements “images” plus spécifiques.

S'ABONNER
Egalement au sommaire de :
Programmez! #88