vignette avec ffmepg

WRInaute impliqué
bonsoir
j'ai réussie avec un dur travail à installer ffmepg, j'ai transpiré mais maintenant je peux aider car j'ai eu toutes les erreurs possibles :)

la derniere étape, est la création d'une vignette


Code:
// Construction de la ligne de commande
					$flv_path = "../medias";
					$ffmpeg_path = "/usr/local/bin/ffmpeg";
					$newmedia = substr($media, 0, -4);
					$newjpg = $newmedia.'.jpg';
					$newmedia = $newmedia.'.flv';
					
					$target_name = preg_replace('/ /','_',$flv_path.'/'.$newmedia);
					$target_jpg = preg_replace('/ /','_',$flv_path.'/'.$newjpg);
			
			                    $ffmpeg_cli = "$ffmpeg_path -i $fullpath -acodec mp3  -b 800k  -er 4  -ar 22050 -f flv -s 640x480 -y $target_name";
					
										$ffmpeg_cli2 = "$ffmpeg_path -i $fullpath -y -ss 16 -s 160x120 -vframes 1 -an -sameq -f rawvideo $target_jpg";

malheureusement ca ne marche pas.
quelqu'un aurait il la solution miracle?
 
WRInaute impliqué
ah la solution miracle c'est celle là :) :
http://sourceforge.net/projects/ffmpeg-php/
c'est une extension exprès fait pour

ensuite après en trois lignes tu fait ce que tu veux :
Code:
                                $mov = new ffmpeg_movie ( $fic.".flv", false );
                                $frame = 1;
                                $mini_frame = $mov->getFrame($frame);
                                if( $mini_frame ) {
                                        $image = $mini_frame ->toGDImage();
                                        if( $image ) {
                                                imagejpeg($image, $fic.".jpg" );
                                                imagedestroy($image);
                                        }
                                        else
                                                echo "toGDImage problem";
                                }
                                else
                                        echo "getFrame problem";

à remarquer qu'il faut gd2
si tu as des soucis pour installer n'hésite pas...
 
WRInaute impliqué
en faite GD2 c'est une bibiotheque?
comment on peut voir si il est installé, si mes souvenir son bon, normalement il est déja installé.
 
WRInaute impliqué
tu créé un fichier sur ton serveur dans lequel tu écrits
Code:
<?php phpinfo(); ?>
et tu regardes les extensions installé ctrl+f GD
 
WRInaute impliqué
oui installé
GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.1.9
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

Pourrais tu m'aiguillé un peu plus car le code c'est pas
mon fort.
que dois-je exactement renplacer dans mon code
merci d'avance.
 
WRInaute impliqué
avant de passer au code, en fonction de ta distribution il faut soit que tu compiles ffmpeg soit que tu install le devel, il faut aussi que tu compiles php, puis l'extension ffmpeg-php, pour dire que c'est pas mal d'install linux avant de coder les quelques lignes php qui vont bien
à toi de voir si cela vaut le coup
 
WRInaute impliqué
ffmpeg fonction bien, depuis le php.
j'arrive bien à encoder et bien lire les vidéos, tous enfaite apart que je voudrais rajouter en plus de l'encodage la capture d'une image et l'enregistrer dans un dossier.

merci d'avance.
 
WRInaute impliqué
salut
essaye d'afficher ta ligne de commande "$ffmpeg_cli2" pour la rejouer en ligne de commande, sans doute que linux t'en diras plus que php pourquoi cela ne marche pas
j+
 
WRInaute impliqué
enfaite c'est pas que ca marche, c'est que je sais quel
code il faut que je met dans le php.

car je pense que cette ligne n'est pas correct, j 'ai mis ca comme ca.

$ffmpeg_cli2 = "$ffmpeg_path -i $fullpath -y -ss 16 -s 160x120 -vframes 1 -an -sameq -f rawvideo $target_jpg";

je pense qu'avec ton code adapté à mon site, ca devrai marcher.

quesque tu en penses?
 
WRInaute impliqué
est-ce que tu as çà dans ton phpinfo() ?
Code:
ffmpeg
ffmpeg support (ffmpeg-php)	enabled
ffmpeg-php version 	0.5.0
libavcodec version 	Lavc51.13.0
libavformat version 	Lavf50.5.0
 
WRInaute impliqué
pour une fois oui.
j'ai exactement ca

Code:
ffmpeg support (ffmpeg-php) enabled 
ffmpeg-php version  0.5.0  
libavcodec version  Lavc51.25.0  
libavformat version  Lavf51.6.0
 
WRInaute impliqué
oki bah alors ceci dvrait fonctionner alors
Code:
$flv_path = "../medias";
$ffmpeg_path = "/usr/local/bin/ffmpeg";
$newmedia = substr($media, 0, -4);
$newjpg = $newmedia.'.jpg';
$newmedia = $newmedia.'.flv'; 
$target_name = preg_replace('/ /','_',$flv_path.'/'.$newmedia);
$target_jpg = preg_replace('/ /','_',$flv_path.'/'.$newjpg);

$mov = new ffmpeg_movie ( $newmedia, false );
$frame = 1;
$mini_frame = $mov->getFrame($frame);
if( $mini_frame ) {
     $image = $mini_frame ->toGDImage();
     if( $image ) {
            imagejpeg($image, $target_jpg );
            imagedestroy($image);
     }
}

preg_replace se prete pas trop mieux vaut utiliser str_replace à moins que j'ai mal compris ce que tu voulais faire avec
 
WRInaute impliqué
merci beaucoup vraiment.
ca marche incroyable.
j'ai juste modifié la vidéo de base sur laquelle était fait le screnshoot (flv) par la vidéo uploadé car le flv n'ést pas encodé.

encore petite question si tu sais, comment redimmensionné l'image?

merci d'avance.
 
Nouveau WRInaute
Hello, j'ai uploadé ffmpeg sur mon serveur, mais pour l'installer . . . .
Je suis chez 1and1.
Quelqu'un peut m'aider ?
 
WRInaute impliqué
je pense que tu as pas bon à la question est-ce un dédié ou dédié virtuel donc ca va pas être possible :)
 
WRInaute passionné
enfin y a pas forcement besoin de faire toutes ces install

moi je l'ai installé sous debian ==> apt-get install ffmpeg

ensuite je l'appelle en ligne de commande

rog
 
Discussions similaires
Haut