swf vers flv avec ffmpeg php
22 messages • Page 1 sur 2 • 1, 2
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
swf vers flv avec ffmpeg php
bonjour,
je cherche un tuto ou quelqu'un qui pourrait me renseigner pour encoder du swf et mov vers flv avec ffmpeg php sur mon site www.
je precise ffmpeg est deja installer, il marche trés bien avec d'autres formats.
en faite voila ma ligne de commande :
donc je pense que c'est la meme chose que ma ligne en un peu plus compliqué...
et le resultat ca donne ca :
Merci d'avance
je cherche un tuto ou quelqu'un qui pourrait me renseigner pour encoder du swf et mov vers flv avec ffmpeg php sur mon site www.
je precise ffmpeg est deja installer, il marche trés bien avec d'autres formats.
en faite voila ma ligne de commande :
PHP:
$ffmpeg_cli = "$ffmpeg_path -i $fullpath -acodec mp3 -b 800k -er 4 -ar 22050 -f flv -s 640x480 -y $target_name";
donc je pense que c'est la meme chose que ma ligne en un peu plus compliqué...
et le resultat ca donne ca :
PHP:
Warning: Can't open movie file ../videos/test.swf in /var/www/vhosts/monsite.fr/httpdocs/admin/valid_video.php on line 55
Nom du média : test.swf (../videos/test.swf)
ERREUR : impossible d'instancier FFMPEG / Media invalide
Merci d'avance
je serais assez curieux de lire le résultat de :
et ensuite de le rejouer en ligne de commande avec le user de ton apache...
- Code: Tout sélectionner
echo $ffmpeg_cli;
exit;
et ensuite de le rejouer en ligne de commande avec le user de ton apache...
merci de ta réponse
je n'arrive pas à lire la ligne de commande
je pense que c un if qui bloc
edit : if(is_object($mediaObj = new ffmpeg_movie($fullpath) ))
le else qui correspond à ce if est:
ERREUR : impossible d'instancier FFMPEG / Media invalide
qu'en penses tu?
je n'arrive pas à lire la ligne de commande
je pense que c un if qui bloc
edit : if(is_object($mediaObj = new ffmpeg_movie($fullpath) ))
le else qui correspond à ce if est:
ERREUR : impossible d'instancier FFMPEG / Media invalide
qu'en penses tu?
Dernière édition par datch le Mer Mai 02, 2007 11:01, édité 1 fois.
en faite je ne comprend pas un truc, si tu veux convertir du swf en flv c'est un appel system à ffmpeg qu'il faut que tu fasses :
l'extension ffmpeg-php me semble t-il n'est pas là pour ca, et ne semble pas prévu pour fonctionner avec un format d'entrée swf
- Code: Tout sélectionner
system( $ffmpeg_cli );
l'extension ffmpeg-php me semble t-il n'est pas là pour ca, et ne semble pas prévu pour fonctionner avec un format d'entrée swf
en faite ma ligne de commande de ffmpeg est dans un if, et c'est ce if qui bloque c'est pour ca que je ne peux pas afficher le echo"ffmpeg_cli";
ce if c'est : if(is_object($mediaObj = new ffmpeg_movie($fullpath) ))
(je m'etais trompé sur le post d"en haut)
je ne comprends pas a quoi correespond ce if mais c'est lui qui me fait apparaitre la phrase : ERREUR : impossible d'instancier FFMPEG / Media invalide
et qui m'empeche d'arriver a ma ligne de commande...
ce if c'est : if(is_object($mediaObj = new ffmpeg_movie($fullpath) ))
(je m'etais trompé sur le post d"en haut)
je ne comprends pas a quoi correespond ce if mais c'est lui qui me fait apparaitre la phrase : ERREUR : impossible d'instancier FFMPEG / Media invalide
et qui m'empeche d'arriver a ma ligne de commande...
bah déplace le après ta ligne de commande et remplace par
- Code: Tout sélectionner
if(is_object($mediaObj = new ffmpeg_movie($target_name) ))
c'est un peu chaud de le deplacer comme ca non?
regarde le pavé de code...
- Code: Tout sélectionner
// RecupÈration d'info
$id=$_GET["id"];
$requete = mysql_query("SELECT * FROM liste_video WHERE id='$id'");
$row = mysql_fetch_assoc($requete);
//rÈcupÈre nom video et image
$media=$row['video'];
// dÈfinition de la collection de medias
$media_path = "../videos";
// Confirme que l'extension est presente
$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");
}
/**
* Traitements
* - on parcourt le repertoire,
* - on ouvre le mÈdia,
* - on test le mÈdia (type)
* - on extrait des informations
*/
$HTML ='';
if(is_dir($media_path) && $dir = opendir($media_path))
{
//$media = readdir($dir);
$fullpath = $media_path.'/'.$media;
$HTML .= "<b> Nom du mÈdia : $media ($fullpath) </b>\n";
// Instanciation de ffmpeg_movie
if(is_object($mediaObj = new ffmpeg_movie($fullpath) ))
{
//**
//* FFMPEG-PHP est normalement destinÈ ‡ trater des vidÈos.
//* Mais les mÈthodes fournies permettent d'Èlargir aux fichiers audios si on considere qu'un fichier audio
// * est une vidÈo sans codec video mais avec codec audio ;)
// */
if($videoCodec = $mediaObj->getVideoCodec())
{
$HTML .= "<li> Le fichier est un fichier vidÈo \n";
$HTML .= "<li> Codec Video : ".$videoCodec;
$HTML .= "<li> Codec Audio : ".$mediaObj->getAudioCodec();
$HTML .= "<li> Duree : ".$mediaObj->getDuration();
$HTML .= "<li> Taille : ".$mediaObj->getFrameHeight()."x".$mediaObj->getFrameWidth();
$HTML .= "<li> BitRate : ".$mediaObj->getBitRate();
/**
* -------------------------------------------------------------------------------------------------
* ENCODAGE
* Si le fichier est une vidÈo valide,
* - nous allons lancer l'encodage via ffmpeg (en ligne de commande)
* - l'encodage se fera en FLV,
* -------------------------------------------------------------------------------------------------
*/
// Construction de la ligne de commande
$flv_path = "../medias";
$ffmpeg_path = "/usr/local/bin/ffmpeg";
$newmedia = substr($media, 0, -4);
$newjpg = $id.'.jpg';
$newmedia = $id.'.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_cli = "$ffmpeg_path -i $fullpath -acodec mp3 -ab 32 -f flv -s 640x480 -ar 22050 -b 800k -r 15 -y $target_name";
$mov = new ffmpeg_movie ( $fullpath, false );
$frame = 10;
$mini_frame = $mov->getFrame($frame);
if( $mini_frame ) {
$image = $mini_frame ->toGDImage();
if( $image ) {
imagejpeg($image, $target_jpg );
imagedestroy($image);
}
}
//print `$ffmpeg_cli`;
$HTML .= "<li> commande : $ffmpeg_cli \n";
//$HTML .= "<li> commande : $ffmpeg_cli2 \n";
passthru($ffmpeg_cli,$res);
if(!$res){
$HTML .= " **********************************************************\n";
$HTML .= " **************** cliquez sur suivant ********************\n";
$HTML .= " **********************************************************\n";
$HTML .= " **********************************************************\n";
$HTML .= " <a href=\"http://www.video-formation.fr/medias/redimension2.php?img=$newjpg\">Suivant</a>\n";
$HTML .= " **********************************************************\n";
$HTML .= " **********************************************************\n";
$validation=mysql_query("UPDATE liste_video SET valid=1,video='$newmedia',image='$newjpg' WHERE id=$id");
if(!$validation) die('RequÍte invalide dans la base de donnÈe : ' . mysql_error());
mysql_close();
$source_file="/var/www/vhosts/video-formation.fr/httpdocs/videos/";
unlink($source_file.$media);//effacement du fichier
}
else
{
$HTML .= "<li> Erreur lors de l'encodage $target_name\n";
}
// -------------------------------------------------------------------------------------------------
}
else
{
$HTML .= "<b> PROBLEME </b> : le fichier n'a ni audio ni frames valides";
}
$HTML .= "\n\n";
} else {
$HTML .= "<b> ERREUR </b> : impossible d'instancier FFMPEG / Media invalide \n";
}
}
else echo "trouve pas le rep";
print nl2br($HTML);
regarde le pavé de code...
oui parfois découpé le code en fonction ca aide en lisibilité
sinon je le verrais comme ceci :
- Code: Tout sélectionner
<?php
// RecupÈration d'info
$id=$_GET["id"];
$requete = mysql_query("SELECT * FROM liste_video WHERE id='$id'");
$row = mysql_fetch_assoc($requete);
//rÈcupÈre nom video et image
$media=$row['video'];
// dÈfinition de la collection de medias
$media_path = "../videos";
// Confirme que l'extension est presente
$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");
}
/**
* Traitements
* - on parcourt le repertoire,
* - on ouvre le mÈdia,
* - on test le mÈdia (type)
* - on extrait des informations
*/
$HTML ='';
if(is_dir($media_path) && $dir = opendir($media_path))
{
//$media = readdir($dir);
$fullpath = $media_path.'/'.$media;
$HTML .= "<b> Nom du mÈdia : $media ($fullpath) </b>\n";
/**
* -------------------------------------------------------------------------------------------------
* ENCODAGE
* Si le fichier est une vidÈo valide,
* - nous allons lancer l'encodage via ffmpeg (en ligne de commande)
* - l'encodage se fera en FLV,
* -------------------------------------------------------------------------------------------------
*/
// Construction de la ligne de commande
$flv_path = "../medias";
$ffmpeg_path = "/usr/local/bin/ffmpeg";
$newmedia = substr($media, 0, -4);
$newjpg = $id.'.jpg';
$newmedia = $id.'.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_cli = "$ffmpeg_path -i $fullpath -acodec mp3 -ab 32 -f flv -s 640x480 -ar 22050 -b 800k -r 15 -y $target_name";
//print `$ffmpeg_cli`;
$HTML .= "<li> commande : $ffmpeg_cli \n";
//$HTML .= "<li> commande : $ffmpeg_cli2 \n";
passthru($ffmpeg_cli,$res);
if(!$res){
$HTML .= " **********************************************************\n";
$HTML .= " **************** cliquez sur suivant ********************\n";
$HTML .= " **********************************************************\n";
$HTML .= " **********************************************************\n";
$HTML .= " <a href=\"http://www.video-formation.fr/medias/redimension2.php?img=$newjpg\">Suivant</a>\n";
$HTML .= " **********************************************************\n";
$HTML .= " **********************************************************\n";
$validation=mysql_query("UPDATE liste_video SET valid=1,video='$newmedia',image='$newjpg' WHERE id=$id");
if(!$validation) die('RequÍte invalide dans la base de donnÈe : ' . mysql_error());
mysql_close();
$source_file="/var/www/vhosts/video-formation.fr/httpdocs/videos/";
unlink($source_file.$media);//effacement du fichier
}
else
{
$HTML .= "<li> Erreur lors de l'encodage $target_name\n";
}
// Instanciation de ffmpeg_movie
if(is_object($mediaObj = new ffmpeg_movie($target_name) ))
{
//**
//* FFMPEG-PHP est normalement destinÈ ‡ trater des vidÈos.
//* Mais les mÈthodes fournies permettent d'Èlargir aux fichiers audios si on considere qu'un fichier audio
// * est une vidÈo sans codec video mais avec codec audio ;)
// */
if($videoCodec = $mediaObj->getVideoCodec())
{
$HTML .= "<li> Le fichier est un fichier vidÈo \n";
$HTML .= "<li> Codec Video : ".$videoCodec;
$HTML .= "<li> Codec Audio : ".$mediaObj->getAudioCodec();
$HTML .= "<li> Duree : ".$mediaObj->getDuration();
$HTML .= "<li> Taille : ".$mediaObj->getFrameHeight()."x".$mediaObj->getFrameWidth();
$HTML .= "<li> BitRate : ".$mediaObj->getBitRate();
// -------------------------------------------------------------------------------------------------
$mov = new ffmpeg_movie ( $target_name, false );
$frame = 10;
$mini_frame = $mov->getFrame($frame);
if( $mini_frame ) {
$image = $mini_frame ->toGDImage();
if( $image ) {
imagejpeg($image, $target_jpg );
imagedestroy($image);
}
}
}
else
{
$HTML .= "<b> PROBLEME </b> : le fichier n'a ni audio ni frames valides";
}
$HTML .= "\n\n";
} else {
$HTML .= "<b> ERREUR </b> : impossible d'instancier FFMPEG / Media invalide \n";
}
}
else echo "trouve pas le rep";
print nl2br($HTML);
?>
bon alors avec ton code je me retrouve avec :
Warning: Can't open movie file ../medias/519.flv in /var/www/vhosts/video-formation.fr/httpdocs/admin/valid_video.php on line 101
Nom du média : test.swf (../videos/test.swf)
# commande : /usr/local/bin/ffmpeg -i ../videos/test.swf -acodec mp3 -b 800k -er 4 -ar 22050 -f flv -s 640x480 -y ../medias/519.flv
# Erreur lors de l'encodage ../medias/519.flv
ERREUR : impossible d'instancier FFMPEG / Media invalide
Warning: Can't open movie file ../medias/519.flv in /var/www/vhosts/video-formation.fr/httpdocs/admin/valid_video.php on line 101
Nom du média : test.swf (../videos/test.swf)
# commande : /usr/local/bin/ffmpeg -i ../videos/test.swf -acodec mp3 -b 800k -er 4 -ar 22050 -f flv -s 640x480 -y ../medias/519.flv
# Erreur lors de l'encodage ../medias/519.flv
ERREUR : impossible d'instancier FFMPEG / Media invalide
chez moi avec une install via yum et avec ta ligne de commande j'obtiens :
et ceci avec plein de swf trouvé sur le web, après je sais pas trop ce que cela veut dire
sinon pour l'erreur change le
par
donne les droits nécessaires aussi au rép pour le user apache
et enfin que donne
?
[swf @ 0x56651a8]Compressed SWF format not supported
et ceci avec plein de swf trouvé sur le web, après je sais pas trop ce que cela veut dire
sinon pour l'erreur change le
- Code: Tout sélectionner
$media_path = "../videos";
par
- Code: Tout sélectionner
$media_path = "/var/www/vhosts/video-formation.fr/httpdocs/videos";
donne les droits nécessaires aussi au rép pour le user apache
et enfin que donne
- Code: Tout sélectionner
/usr/local/bin/ffmpeg --formats | grep swf
?
pour ca
c'est a faire en ssh sur le serveur ?
- Code: Tout sélectionner
/usr/local/bin/ffmpeg --formats | grep swf
c'est a faire en ssh sur le serveur ?
pour $media_path j'ai remplcé :
Warning: Can't open movie file ../medias/519.flv in /var/www/vhosts/video-formation.fr/httpdocs/admin/valid_video.php on line 101
Nom du média : test.swf (/var/www/vhosts/video-formation.fr/httpdocs/videos/test.swf)
# commande : /usr/local/bin/ffmpeg -i /var/www/vhosts/video-formation.fr/httpdocs/videos/test.swf -acodec mp3 -b 800k -er 4 -ar 22050 -f flv -s 640x480 -y ../medias/519.flv
# Erreur lors de l'encodage ../medias/519.flv
ERREUR : impossible d'instancier FFMPEG / Media invalide
par contre je me demande si dans le code que tu m'as donné tu n'essaye pas d'ouvrir le .flv alors qu'il n'existe pas ??
peut etre que je me trompe... tu en pense quoi?
Warning: Can't open movie file ../medias/519.flv in /var/www/vhosts/video-formation.fr/httpdocs/admin/valid_video.php on line 101
Nom du média : test.swf (/var/www/vhosts/video-formation.fr/httpdocs/videos/test.swf)
# commande : /usr/local/bin/ffmpeg -i /var/www/vhosts/video-formation.fr/httpdocs/videos/test.swf -acodec mp3 -b 800k -er 4 -ar 22050 -f flv -s 640x480 -y ../medias/519.flv
# Erreur lors de l'encodage ../medias/519.flv
ERREUR : impossible d'instancier FFMPEG / Media invalide
par contre je me demande si dans le code que tu m'as donné tu n'essaye pas d'ouvrir le .flv alors qu'il n'existe pas ??
peut etre que je me trompe... tu en pense quoi?
non normalement le code fait générer à ffmpeg un flv que tu ouvres ensuite via l'objet ffmpeg_movie
remplace alors
et sinon il te faudra te connecter en ssh sur le serveur pour essayer les commandes à la main...
rectif la commande est plus précisément :
remplace alors
- Code: Tout sélectionner
$flv_path = "/var/www/vhosts/video-formation.fr/httpdocs/medias";
et sinon il te faudra te connecter en ssh sur le serveur pour essayer les commandes à la main...
rectif la commande est plus précisément :
- Code: Tout sélectionner
/usr/local/bin/ffmpeg -formats | grep swf
22 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Google indexe le Flash
- Baromètre moteurs de recherche Décembre 2004
- Baromètre des outils de recherche
- Google sait désormais indexer le texte des animations Flash
- Baromètre moteurs de recherche Janvier 2005
- Référencer un site en Flash : guide pratique des bonnes méthodes
- Baromètre moteurs de recherche Février 2005
- Référencement Flash : guide pratique des méthodes
- La commande site: dans Google
- Flash : nouveau patch IE + le point sur le référencement Flash
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum