bonjour,
voila j'ai installer ffmpeg et ffmpeg-php sur mon serveur.
j'essaye de faire un test pour encoder une video, mais je me retrouve avec cette erreur :
Nom du média : video-mov.mov (medias/video-mov.mov)
# Le fichier est un fichier vidéo
# Codec Video : svq3
# Codec Audio : mp2
# Duree : 65.724082
# Taille : 240x320
# BitRate : 460066
# commande : ffmpeg -i medias/video-mov.mov -acodec mp3 -b 256 -er 4 -ar 22050 -f flv -y flv/1165441979-video-mov.mov.flv
# Erreur lors de l'encodage flv/1165441979-video-mov.mov.flv
voila le script que j'utilise :
<?php
/**
* Fichier demo FFMPEG/PHP
* montre le principe d'utilisation de FFMPEG/PHP pour :
* - créer un objet ffmpeg-php,
* - accèder à une vidéo,
* - faire la différence entre un fichier audio et un fichier vidéo
* - extraire des informations des médias.
* - encoder en flv si le fichier est une video
*
* @author Nicolas Cerisier <[email protected]>
*/
/**
* Init:
* - définition d'un emplacement pour les médias
* - présence de ffmpeg
*/
// définition de la collection de medias
$media_path = 'medias';
// 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
*/
if(is_dir($media_path) && $dir = opendir($media_path)) {
while (($media = readdir($dir)) !== false) {
if($media != '.' && $media != '..'){
$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 = "flv";
$target_name = preg_replace('/ /','_',$flv_path.'/'.time().'-'.$media.'.flv');
$ffmpeg_cli = "ffmpeg -i $fullpath -acodec mp3 -b 256 -er 4 -ar 22050 -f flv -y $target_name";
//print `$ffmpeg_cli`;
$HTML .= "<li> commande : $ffmpeg_cli \n";
passthru($ffmpeg_cli,$res);
if(!$res){
$HTML .= "<li> fichier flv disponible <a href=\"$target_name\"> ici </a>\n";
} else {
$HTML .= "<li> Erreur lors de l'encodage \n";
}
// -------------------------------------------------------------------------------------------------
} elseif($audioCodec = $mediaObj->getAudioCodec()) {
$HTML .= "<li> Le fichier semble etre un fichier audio: pas de frames, mais une piste audio\n";
$HTML .= "<li> Codec Audio : ".$audioCodec;
$HTML .= "<li> Artist (iD3) : ".$mediaObj->getArtist();
$HTML .= "<li> Album (iD3) : ".$mediaObj->getAlbum();
$HTML .= "<li> Artist (iD3) : ".$mediaObj->getArtist();
$HTML .= "<li> Genre (iD3) : ".$mediaObj->getGenre();
$HTML .= "<li> BitRate : ".$mediaObj->getBitRate();
} 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";
}
}
}
}
print nl2br($HTML);
?>
si quelqu'un a deja installer ou utiliser ffmpeg et qu'il peut m'aider ca serai cool
merci d'avance
bonjour,
voila j'ai installer ffmpeg et ffmpeg-php sur mon serveur.
j'essaye de faire un test pour encoder une video, mais je me retrouve avec cette erreur :
Nom du média : video-mov.mov (medias/video-mov.mov)
# Le fichier est un fichier vidéo
# Codec Video : svq3
# Codec Audio : mp2
# Duree : 65.724082
# Taille : 240x320
# BitRate : 460066
# commande : ffmpeg -i medias/video-mov.mov -acodec mp3 -b 256 -er 4 -ar 22050 -f flv -y flv/1165441979-video-mov.mov.flv
# Erreur lors de l'encodage flv/1165441979-video-mov.mov.flv
voila le script que j'utilise :
[php]<?php
/**
* Fichier demo FFMPEG/PHP
* montre le principe d'utilisation de FFMPEG/PHP pour :
* - créer un objet ffmpeg-php,
* - accèder à une vidéo,
* - faire la différence entre un fichier audio et un fichier vidéo
* - extraire des informations des médias.
* - encoder en flv si le fichier est une video
*
* @author Nicolas Cerisier <
[email protected]>
*/
/**
* Init:
* - définition d'un emplacement pour les médias
* - présence de ffmpeg
*/
// définition de la collection de medias
$media_path = 'medias';
// 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
*/
if(is_dir($media_path) && $dir = opendir($media_path)) {
while (($media = readdir($dir)) !== false) {
if($media != '.' && $media != '..'){
$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 = "flv";
$target_name = preg_replace('/ /','_',$flv_path.'/'.time().'-'.$media.'.flv');
$ffmpeg_cli = "ffmpeg -i $fullpath -acodec mp3 -b 256 -er 4 -ar 22050 -f flv -y $target_name";
//print `$ffmpeg_cli`;
$HTML .= "<li> commande : $ffmpeg_cli \n";
passthru($ffmpeg_cli,$res);
if(!$res){
$HTML .= "<li> fichier flv disponible <a href=\"$target_name\"> ici </a>\n";
} else {
$HTML .= "<li> Erreur lors de l'encodage \n";
}
// -------------------------------------------------------------------------------------------------
} elseif($audioCodec = $mediaObj->getAudioCodec()) {
$HTML .= "<li> Le fichier semble etre un fichier audio: pas de frames, mais une piste audio\n";
$HTML .= "<li> Codec Audio : ".$audioCodec;
$HTML .= "<li> Artist (iD3) : ".$mediaObj->getArtist();
$HTML .= "<li> Album (iD3) : ".$mediaObj->getAlbum();
$HTML .= "<li> Artist (iD3) : ".$mediaObj->getArtist();
$HTML .= "<li> Genre (iD3) : ".$mediaObj->getGenre();
$HTML .= "<li> BitRate : ".$mediaObj->getBitRate();
} 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";
}
}
}
}
print nl2br($HTML);
?>[/php]
si quelqu'un a deja installer ou utiliser ffmpeg et qu'il peut m'aider ca serai cool ;-)
merci d'avance