Gef
2007-04-16 10:14:05 UTC
Bonjour,
Après avoir uploadé un fichier vidéo sur un serveur, je voudrais lancer
l'encodage de cette vidéo via une page web, en faisant appel à la fonction
"passthru". J'ai donc réalisé deux tests :
1) en ligne de commande, la commande suivante fonctionne parfaitement et
créé le fichier test.flv :
#/usr/bin/ffmpeg -i /usr/local/movies/test.mov -acodec mp3 -ab 48 -f flv -s
640x480 -ar 22050 -aspect 4:3 -pass 1 -b 360 -r 25 -y
/usr/local/movies/test.flv
L'encodage dure environ 1 minute, délai au bout duquel le serveur me rend la
main.
2) je crée ensuite un script php dans une page web avec les mêmes élements :
<?php
$cmd_encodage = "/usr/bin/ffmpeg -i /usr/local/movies/test.mov -acodec
mp3 -ab 48 -f flv -s 640x480 -ar 22050 -aspect 4:3 -pass 1 -b 360 -r 25 -y
/usr/local/movies/test.flv &";
echo passthru($cmd_encodage,$error);
echo "val retournée ".$error;
?>
Après exécution de ce script, la valeur retournée $error est 0. Un fichier
destination test.flv est créé dans le répertoire /usr/local/movies, mais il
est vide ( 0 octet ) !
Aucun process concernant ffmpeg ne tourne sur le serveur après avoir lancé
la commande. Pourtant, le délai nécessaire à l'encodage pourrait me laisser
le temps de l'apercevoir dans un ps -ef.
Je précise que les droits sur le répertoire /usr/local/movies ont été fixés
à 777 pour les besoins du test.
Bien évidemment, je préférerais démarrer l'encodage depuis la page web,
plutôt que le faire en ligne de commande :)
Quelqu'un aurait-il une idée ??
Ma config :
Dédibox CentOs 4.2 / php 4.3.9
safe_mode off
Merci d'avance
Gérard
Après avoir uploadé un fichier vidéo sur un serveur, je voudrais lancer
l'encodage de cette vidéo via une page web, en faisant appel à la fonction
"passthru". J'ai donc réalisé deux tests :
1) en ligne de commande, la commande suivante fonctionne parfaitement et
créé le fichier test.flv :
#/usr/bin/ffmpeg -i /usr/local/movies/test.mov -acodec mp3 -ab 48 -f flv -s
640x480 -ar 22050 -aspect 4:3 -pass 1 -b 360 -r 25 -y
/usr/local/movies/test.flv
L'encodage dure environ 1 minute, délai au bout duquel le serveur me rend la
main.
2) je crée ensuite un script php dans une page web avec les mêmes élements :
<?php
$cmd_encodage = "/usr/bin/ffmpeg -i /usr/local/movies/test.mov -acodec
mp3 -ab 48 -f flv -s 640x480 -ar 22050 -aspect 4:3 -pass 1 -b 360 -r 25 -y
/usr/local/movies/test.flv &";
echo passthru($cmd_encodage,$error);
echo "val retournée ".$error;
?>
Après exécution de ce script, la valeur retournée $error est 0. Un fichier
destination test.flv est créé dans le répertoire /usr/local/movies, mais il
est vide ( 0 octet ) !
Aucun process concernant ffmpeg ne tourne sur le serveur après avoir lancé
la commande. Pourtant, le délai nécessaire à l'encodage pourrait me laisser
le temps de l'apercevoir dans un ps -ef.
Je précise que les droits sur le répertoire /usr/local/movies ont été fixés
à 777 pour les besoins du test.
Bien évidemment, je préférerais démarrer l'encodage depuis la page web,
plutôt que le faire en ligne de commande :)
Quelqu'un aurait-il une idée ??
Ma config :
Dédibox CentOs 4.2 / php 4.3.9
safe_mode off
Merci d'avance
Gérard