Ffmpeg-php [Résolu]

Messages postés
14227
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
16 novembre 2018
- 12 oct. 2005 à 15:52 - Dernière réponse :  sabiha93
- 5 août 2010 à 18:17
Bonjour,

Je suis actuellement en train de développer un site de gestion de fichiers vidéo. Sur ce site, j'ai besoin d'extraire des informations utiles (genre 1ère image, durée du clip,...). On m'a parlé de FFMPEG (puissant transcodeur vidéo) qui aurait une extension PHP.

Sur le site officiel, il y a des informations pour compiler PHP avec FFMPEG sous Linux. Voici enfin mon problème:

Je suis sous Windows2000, j'ai installé PHP5 et je ne trouve nulle part l'extension ffmpeg-php.dll.

Quelqu'un peut-il m'aider?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Afficher la suite 

Votre réponse

48 réponses

Meilleure réponse
Messages postés
5
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
11 juin 2009
- 10 déc. 2006 à 21:34
3
Merci
j ai trouve ca sur le net
J'ai téléchargé l'archive rar trouvée sur cette page.
après décompression, j'ai pris les fichiers
avcodec.dll
et
avformat.dll
et je les ai mis sous
system32
. Ca c'est pour la librairie ffmpeg en elle même.
Ensuite j'ai pris
php_ffmpeg_20050618_nogif.dll
pour la version php installée, je l'ai renommé en php_ffmpeg.dll et je l'ai mis dans le dossier extension de l'installation de PHP.
Je suis sous EasyPHP, donc chez moi c'est sous
C:\Program Files\EasyPHP1-8\php\extensions
ça c'est pour la librairie ffmpeg-php.

après il faut faire en sorte que PHP soit au courant qu'on a une extension. c'est là qu'il y a une subtilité car le 8968## fichier php.ini qui est dans le répertoire du dessus n'a pas l'air de servir à grand chose.
C'est donc seulement quand j'ai fait la modif dans le php.ini de apache, que ça a fonctionné, soit chez moi sous :
C:\Program Files\EasyPHP1-8\apache\php.ini




La modif à faire c'est d'ajouter la ligne :

extension =php_ffmpeg.dll




Si possible au même endroit que les autres lignes d'extensions ( le ';' servant à marquer les lignes commentaires. )

voilà. Il faut maintenant redemarrer apache, sous EasyPHP un click droit sur l'icone et redemarrer devrait suffire.Pour vérifier si l'extension est bien chargée, tu peux visualiser le phpinfo, il devrait y avoir un petit tableau concernant ffmpeg-php.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>




<?php
$movie = new ffmpeg_movie( "
http://127.0.0.1/christian/ adrien2.avi", false);
//Sélection de la vidéo


$frame = $movie->getFrame(30);
//Selection de la frame voulue, la 30ème de la vidéo, ici => Il doit y avoir moyen de recuperer le nobre de frame de cette vidéo, et d'extraire aléatoirement une de ces frame, mais pas encore trouvé <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /??><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 11.25pt; HEIGHT: 11.25pt" alt="" type="#_x0000_t75"><v:imagedata o:href="http://forum.pcastuces.com/images/smile_crazy.gif" src="file:///C:\DOCUME~1\COMPAQ~1\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"></v:imagedata></v:shape>!!


$gd_image = $frame->toGDImage();
//génération de l image


imagejpeg($gd_image, "http://127.0.0.1/christian/adrien1.jpeg", 90);
//enregistrement où tu veux
bernard ramey

Merci ramey1 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de ramey1
Meilleure réponse
Messages postés
14
Date d'inscription
mardi 20 mai 2003
Dernière intervention
19 janvier 2009
- 30 mai 2007 à 17:09
3
Merci
voila un petit avant gout de ce que lon peut faire avec ffmpeg http://www.supinfo-projects.com/fr/2006/pres%5Fffmpeg%5Fphp/3/

Merci cs_parweb 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cs_parweb
Messages postés
1
Date d'inscription
mercredi 29 mars 2006
Dernière intervention
13 août 2006
- 13 août 2006 à 09:42
0
Merci
Je suis dans le même cas que vous mais sur serveur Superplan chez OVH sous RedHat... j'ai installé ffmpeg impeccable... mais impossible d'installer ffmpeg-php de la manière expliquée sur le site officiel...
Donc : HEEEELP !

i.MajiBOX.com -  pour les développeurs i-modeTM

Thierry LONDAR
Commenter la réponse de majibox
Messages postés
1
Date d'inscription
vendredi 22 octobre 2004
Dernière intervention
16 août 2007
- 16 août 2007 à 17:17
0
Merci
bonjour,

bon moi j'ai pas de pb pour l'installation, l'encodage marche et l'image aussi mais par contre je ne sais pas comment recupérer la durée de la vidéo...
vous pouvez m'aider?
Commenter la réponse de estampille
Messages postés
14227
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
16 novembre 2018
- 16 août 2007 à 17:28
0
Merci
Salut!
Il existe la fonction getDuration() permettant de récupérer, comme son nom l'indique, la durée de la vidéo.

(Whaou! ça faisait un bout de temps que je n'avais pas posté sur phpcs....)

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
2
Date d'inscription
lundi 12 mars 2007
Dernière intervention
13 janvier 2008
- 2 déc. 2007 à 14:02
0
Merci
Salut tout le monde!
Alors, moi g réussi à installer ffmpeg et l'extension dans le php.ini mais, g un méga problème !
Quand j'essaie d'utiliser une des méthodes de l'extension, j'obtiens ce message suivant :

Warning: Persistent movies have been disabled in php.ini in ***
Warning: Can't open movie file *** in ***
Fatal error: Call to a member function on a non-object in ***

Y'aurait pas quelqu'un qui saurait pourquoi je n'y arrive pas ??!
Commenter la réponse de crocmi972
Messages postés
8
Date d'inscription
vendredi 11 février 2005
Dernière intervention
9 janvier 2008
- 8 janv. 2008 à 16:08
0
Merci
Idem, j'ai le même probleme  :

Warning: Persistent movies have been disabled in php.ini in ***
Warning: Can't open movie file *** in ***
Fatal error: Call to a member function on a non-object in ***

Dans easyphp l'extension est chargée (on la voit dans le phpinfo), par contre dans la liste des fonctions des extensions, bizzarement la ligne "ffmpeg" ne contient aucune fonction, quelqu'un sait si cela a un rapport ?
Ca fait deux jours que je m'arrache les cheveux avec l'install de cette extension. D'après ce que je vois elle est installé mais ne fonctionne pas correctement. J'ai pourtant suivi toutes les indications trouvé sur moulte forum ..... sans résultat. C'est d'autant plus rageant que pas mal de monde semble s'en sortir avec la meme config : winXp, easyphp 1.8 avec php 4.3.10.
Quelqu'un a du nouveau sur ce sujet ? hheeeeeelppppp !
Commenter la réponse de mazzala
Messages postés
14227
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
16 novembre 2018
- 8 janv. 2008 à 16:31
0
Merci
Salut,
Il faut peut-être aussi rajouter l'extension et le nouveau mime type à gérer dans les fichiers httpd.conf et mime_type.conf.
Je dis "peut-être" car ça fait longtemps que je n'ai pas mis les mains dedans...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
8
Date d'inscription
vendredi 11 février 2005
Dernière intervention
9 janvier 2008
- 8 janv. 2008 à 16:49
0
Merci
Salut et merci pour ta réponse si rapide ! Par contre je ne suis pas expert de ce genre de manip, est-ce que tu peux être un chouille plus précis pour que j'essaye ?

Rapport à mes reflexions sur le sujet : si je comprend bien, le fait d'ajouter avcodec.dll et avformat.dll à system32 suffit à ajouter ffmpeg, il faut ensuite expliquer a easyphp comment l'utiliser c'est bien ça ? Je me suis longtemps demander si il ne fallait pas ajouter plus que ça, j'entend une application entière ffmpeg par exemple, tout cela est un peu flou pour moi. C'est très bloquant car je n'ai aucun serveur dédié sous la main, et je fais mes tests en local pour ce nouveau projet video que j'ai en tête et là ....... je suis carrement stopper !
Commenter la réponse de mazzala
Messages postés
14227
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
16 novembre 2018
- 8 janv. 2008 à 17:19
0
Merci
Oulà...c'est vieux tout ça...
Essayons d'être clair et précis.

Pour installer ffmpeg:
- mettre avcodec.dll et avformat.dll dans system32
- ajouter php_ffmpeg.dll dans le répertoire d'extension de php: C:\Program Files\EasyPHP\php\extension

Pour dire à PHP qu'une nouvelle extension est présente:
- modifier le php.ini dans C:\Program Files\EasyPHP\apache\php.ini: il faut ajouter la ligne suivante (au niveau du bloc extension)
extension=php_ffmpeg.dll

Voilà. Je m'inspire de la réponse de Ramay1 (voir plus haut).

J'espère que cela peut t'aider...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
8
Date d'inscription
vendredi 11 février 2005
Dernière intervention
9 janvier 2008
- 8 janv. 2008 à 18:02
0
Merci
Yep, c'est bien ce que j'ai fait ... mais ça marche po ooouuuhiiiiinnnnn !
Merci pour ton aide en tout cas, je vais continuer a chercher et tester ça sur d'autres config parce que chez moi y'a vraiment pas moyen impossible de le faire marcher, je me retrouve éternellement avec la meme erreur :

Warning: Persistent movies have been disabled in php.ini in ***
Warning: Can't open movie file *** in ***
Fatal error: Call to a member function on a non-object in ***

pour info mon script est simplement le suivant :
<?
$extension = "ffmpeg";
$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;
$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname;
if (!extension_loaded('ffmpeg')) {
   dl($extension_soname) or die("Impossible de trouver l'extension: $extension_fullname\n");
}

$movie = new ffmpeg_movie('test.avi', false);
$movie = $movie->getFrame(30);
?>
avec test.avi dans le même dossier que ce script ... a savoir à la racine du site. Je déprime ...
Commenter la réponse de mazzala
Messages postés
2
Date d'inscription
lundi 12 mars 2007
Dernière intervention
13 janvier 2008
- 13 janv. 2008 à 17:47
0
Merci
Ben moi non plu, g toujours pa trouver mon problème en lisant toutes vos réponses....  Je désespère !!  Je continue de chercher et si jamais g du nouveau je vous transmettrè...
Commenter la réponse de crocmi972
Messages postés
10
Date d'inscription
jeudi 12 avril 2007
Dernière intervention
26 mars 2009
- 18 avril 2008 à 12:24
0
Merci
Salut,

Au moment de créer votre objet movie, indiquez le chemin comme ceci:

$movie = new ffmpeg_movie(dirname(__FILE__) . '/test.avi');

ffmpeg n'attend pas une url mais un chemin direct vers le fichier.

Tout est expliqué dans le fichier test_ffmpeg.php joint avec le build officiel.
Commenter la réponse de Benarkhan
Messages postés
31
Date d'inscription
mercredi 29 octobre 2008
Dernière intervention
30 décembre 2008
- 2 déc. 2008 à 13:23
0
Merci
bonjour,
moi , j'ai respecté les etapes que vous avez cité mais j'ai un problème au moment du démarrage de php . un message d'erreur s'affiche :
LE POINT D'ENTREE DE PROCEDURE_SAFE_EMALLOC EST INTROUVABLE DANS LA BIBLIOTHEQUE DE LIENS DYNAMIQUES php4ts.dll . 
puis ce message :
UNABLE TO LOAD DYNAMIC LIBRARY 'C:\ProgramFiles\Easyphp\extensions\php_ffmpeg.dll' - La procedure spécifiée est introuvable .
merci de votre aide c'est urgent .
Commenter la réponse de cs_meryyy
Messages postés
31
Date d'inscription
mercredi 29 octobre 2008
Dernière intervention
30 décembre 2008
- 2 déc. 2008 à 15:30
0
Merci
bon ça marche
Commenter la réponse de cs_meryyy
Messages postés
31
Date d'inscription
mercredi 29 octobre 2008
Dernière intervention
30 décembre 2008
- 3 déc. 2008 à 15:49
0
Merci
bonjour ,
voila mon problème et j'espére que vous m'aidez :
 je travaille sur windows et easyphp 1.8, dans ma page web j'affiche le video directement en streaming de ma camera IP mais le problème c'est que je veux enregistrer ce flux vidéo dans un  fichier (programmer un bouton REC). Donc j'ai installé le ffmpeg .
si vous pouvez me proposer un code PHP à utiliser .
Commenter la réponse de cs_meryyy
Messages postés
7
Date d'inscription
lundi 28 mai 2007
Dernière intervention
5 décembre 2008
- 3 déc. 2008 à 17:09
0
Merci
Ca marche mais tu as fait comment?
Parceque je galère aussi à installer ffmpeg-php.
J'ai suivi toutes les indications à la lettre et pourtant il veut pas... Et j'ai les mêmes erreurs que tu avais.

Merci ^^
Commenter la réponse de laipreu
Messages postés
31
Date d'inscription
mercredi 29 octobre 2008
Dernière intervention
30 décembre 2008
- 3 déc. 2008 à 17:52
0
Merci
bon tout simplement j'ai mis a jour ma version de easyphp car j'ai utilisé une ancienne version donc j'ai installé la version 1.8 . Et ça a marché .
Commenter la réponse de cs_meryyy
Messages postés
7
Date d'inscription
lundi 28 mai 2007
Dernière intervention
5 décembre 2008
- 3 déc. 2008 à 18:16
0
Merci
Je viens de mettre la version 1.8 aussi, et... Forcement ça marche pas ^^
Ca me fait planter Apache, quelqu'un aurai une idée?
Commenter la réponse de laipreu
Messages postés
7
Date d'inscription
lundi 28 mai 2007
Dernière intervention
5 décembre 2008
- 3 déc. 2008 à 18:40
0
Merci
Tu pourrais me donner le lien de ta version?
J'ai recommencer 300 fois, avec toutes les versions de php possible et impossible de faire marcher ce foutu ffmpeg!!!!!!!
A chaque fois il y a une erreur différente. Et la je lance easyphp et pour apache a rencontré un problème et doit fermer...
Commenter la réponse de laipreu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.