Mes projets du moment m'ayant obligé à pas mal travailler sur le traitement vidéo, notament avec PHP, et ayant au départ pas mal galéré pour trouver les solutions qui allaient bien, j'ai finalement développé une librairie maison permettant, associée à l'incontournable FFmpeg, de manipuler, convertir, transformer facilement des fichiers vidéos.
Je le met en ligne ici en espérant, si vous souhaitez développer le nouveau YouTube ;-), qu'elle puisse vous être utile. Elle est distribuée en licence GPL, donc n'hésitez pas à l'améliorer mais SVP pensez à venir poster ici vos maj afin que tout le monde puisses en profiter ;-) !
Sachez donc pour que cette libraire fonctionne, qu'il vous suffit d'installer ffmpeg sur votre beau serveur linux (sur Debian par ex, un simple apt-get install ffmpeg suffit), puis à intégrer la librairie dans vos scripts PHP et à vous faire plaisir !
Une mini doc (en anglais s'il vous plait ;-)) est incluse en haut du fichier expliquant les diverses fonctions disponibles, permettant entre autres :
-de récupérer des informations sur un fichier vidéo (durée, format, fps, resolution, echantillonage, ...)
- de la convertir de et vers de très nombreux formats (dont 3gp)
- d'effectuer des captures jpg à la volée d'un fichier vidéo
Enjoy !
Version disponible :
- 06/02/2008 - v1.0 : archive tar.gz ou archive zip


















21 commentaires:
23:22
Là franchement Christophe, je n'ai rien à dire dans la mesure ou cela dépasse mes 0 connaissance en la matière, juste une chose à te dire, sacré bon boulot de pro en tout cas !! ... ;)
23:39
Merci ^^ !
21:05
Bravo pour cette source, ca marche impec ;)
j'ai par contre un petit soucis, comment faire pour executer du code php apres l'encodage sans obliger a garder la page ouverte ?
12:27
Merci ;) ! Il faut que tu utilises PHP en ligne de commande (PHP-CLI) pour pouvoir faire tourner tout ça en arrière plan.
Sous debian, ca s'installe avec apt-get install php4-cli, plus d'infos ici : http://www.php-cli.com
17:58
ok merci ;) en gros il faut que lance ma page php avec exec.
23:27
en gros c'est ca ;) je te laisse mon Skype ID si tu as besoin d'un coup de main : cmichau
15:44
Bonjour
Votre lib. a l'air super sympa mais malheureusement, je n'arrive pas a l'utiliser.
Si j'essaie de l'integrer avec un require_once, elle me sort une partie du code en echo, et si je la copie dans ma propre lib, les fonctions me renvoie un tableau ne contenant que status=1.
Avez vous une idée ?
Merci beaucoup
Cordialement
Axel
18:37
Salut Axel !
Le plus simple, je te laisse mon mail : cmichau [at] gmail [dot] com . Le plus simple serait que tu m'envoie la config du serveur sur lequel tu fais tes tests (OS, version de FFMPEG) ainsi qu'un exemple de ce que te renvoie l'appli.
FFMPEG est il bien installé ? Pour ce qui est du echo, essai de remplacer les < ? par < ?php et les ? > par php? > (j'ai la mauvaise habitude d'utiliser les tags courts ^^).
@+ en mail !
16:10
Merci, je m'en suis sorti :)
J'ai effectivement remplacé les \<\? par \<\?\php et j'avais également un probleme de path vers le repertoire de ffmpeg.
Ca y'est, tout roule!
16:36
Génial ;). Si vous voulez mettre ici les URL des projets qui utilisent la librairie (s'ils ne sont pas top secrets bien sur ^^), elles sont les bienvenues !
Me donnera l'occasion d'y jeter un coup d'oeil et qui sait, de bloguer dessus ?
17:16
Pour ma part, je travaille sur une interface de compression, post-production, chapitrage et sous-titrage multilingue.
L'idée est de faire une plateforme de montage collaboratif accentuez sur le multilinguisme.
J'ai fais quelques stream pou l'ambassade de france a Berlin, voici un exemple :
http://www.botschaft-frankreich.de/article.php3?id_article=3004
J'ai utilisé ta librairie pour une raison bien simple, apres avoir bataillé un bon moment pour faire touner ffmpeg-php en local sous Wamp, j'ai fini par abandonner.
a+ el
17:18
oups! l'adresse n'entre pas entierement, il s'agit de l'article :
article.php3?id_article=3004
17:23
excellent, j'ai moi aussi eu du mal avec ffmpeg-php, d'ou la lib ^^ !
http://www.sitesdusoleil.com/ c'est toi ? Sympa en tt cas, content que la lib te serve ;) !
11:54
Oui c'est mon site, j'ai aussi www.lootil.com :)
Par contre, sur certains fichiers, je rencontre des soucis pour detecter les fps et le debit :(
Tu as une idée ?
12:04
En fait, un décalage dans la reponse se crée lorsque ffmpeg retourne cette ligne supplémenatire :
Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 25.00 (25/1)
15:00
Merci du retour, je vais essayer de te faire un patch ce soir ou demain ;) !
15:51
Cette bibliothèque me parait fort intéressante car très minimaliste donc utilisable a ma sauce.
Merci pour la mise à disposition de cette source.
Une petite question :
Quel est le cout pour le serveur (charge processeur, disponibilité)
faut il faire fonctionner ffmpeg sur le même serveur que apache ou faire différemment car trop gourmand en ressources ?
Merci Jay
16:47
Hello à toi et merci ;)
Perso j'utilise des serveurs DEDIBOX (http://www.dedibox.fr), je te conseille un serveur dédié à la conversion si tu as un peu de trafic.
A 30,00 € / mois, tu as une super offre avec un top serveur !
Mets ici l'URL de ton service quand tu auras terminé, on ira tester avec plaisir !
++
Chris
16:27
Bonjour,
Pour le code retour de l'encodage, il me semble que les codes -1 et 2 sont inversés.
Est-ce que ta librairie est censée fonctionner sous php5 ? J'obtiens un code 2 (en fait -1) alors que si j'execute la ligne de commande correspondante en ssh, pas de problème.
Nicolas.
09:19
Salut,
Je ne sais pas si ce billet est toujours d'actualité, mais je me permet de poser ma question (j'espère que ça dérange pas =P).
En fait, j'ai installé ffmpeg-php sur mon serveur dédié CentOs 5.1.
Quand j'utilise des fonction comme "getduration" ou "getartist", ça fonctionne très bien, mais quand j'essaye de convertir une vidéo (de n'importe quel type) en .flv, je me retrouve toujours avec une vidéo de 0 octet (la vidéo est créée, mais est illisible vu sa taille)... j'ai parcouru beaucoup de forum et de site pour essayer de trouver une solution... j'ai même essayé votre script ez, mais j'arrive toujours au même résultat... personne ne pourrait me donner une solution ou au mois une piste... parceque ça fait des jours que je galère et je commence à désespéré...
stratonesss[at]yahoo.fr
10:29
Hello,
Une seule question : pourquoi Centos ? Si tu peux, je te recommande de fonctionner sur Debian, je n'ai jamais rencontré le moindre problème sur ffmpeg sous cet OS. N'hésites pas à me contacter par mail si tu as d'autres questions cmichau[at]gmail[dot]com.
@+
Chris
Enregistrer un commentaire