2009-03-06 7 views
2

Je rencontre quelques problèmes lors de la conversion de fichiers vidéo à partir de la ligne de commande à l'aide de FFMPEG. J'utilise un serveur CentOS, mais malheureusement je n'ai pas d'accès shell.FFMPEG - taille de fichier zéro lorsque le son est activé

Lorsque je supprime son à l'aide de la commande suivante, tout fonctionne parfaitement (sauf bien sûr, il n'y a pas de son!)

ffmpeg -i $infile -an test.flv 

Cependant, lorsque je tente de permettre son dans une façon à tous, la fichier en cours de sortie a une taille de fichier de zéro kb. FFMPEG est compilé avec le support de libmp3lame et de libfaac, et les codecs nécessaires sont installés.

Voici la configuration de FFMPEG sur le serveur:

Version FFmpeg SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. configuration: --prefix =/usr --libdir =/usr/lib --mandir =/usr/share/man --incdir =/usr /include/ffmpeg --enable-libmp3lame --enable-libogg --enable -libvorbis --enable-libogg --enable -librateur --able-libfaad --able-libfaac --able-libgsm --able-xvid --able-x264 --able-liba52 --able-liba52bin --able -pp --enable-shared --enable-pthreads --enable-gpl --disable-bande

Voici un très petit échantillon de quelques-unes des commandes que j'ai essayé ce résultat dans une taille de fichier 0Kb :

ffmpeg -i $infile test.flv 
ffmpeg -i $infile -vcodec copy -acodec ac3 test.flv 
ffmpeg -vcodec copy -acodec copy -i $infile -vcodec copy -acodec mp3 test.flv 
ffmpeg -vcodec copy -acodec copy -i $infile -vcodec copy -acodec copy $outfile 
ffmpeg -vcodec copy -acodec copy -i $infile -vcodec copy -acodec aac $outfile 

Si quelqu'un pouvait donner des conseils sur ce qui se passe ici, je l'apprécierais vraiment!

EDIT - voici le résultat quand je stderr à un réoriente fichier

Version FFmpeg SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. configuration: --prefix =/usr --libdir =/usr/lib --mandir =/usr/share/man --incdir =/usr/include/ffmpeg --enable -libmp3lame --enable-libogg --enable -libvorbis --enable-libogg --enable -librateur --able-libfaad --able-libfaac --able-libgsm --able-xvid --able-x264 --able-liba52 --able-liba52bin --able -pp --enable-shared --enable-pthreads --enable-gpl --disable-strip libavutil version: 49.4.0 version de libavcodec: 51.40.4 version de libavformat: 51.12.1 construit le 4 juin 2007 11:02:12 , gcc: 4.1.1 20.070.105 (Red Hat 4.1.1-52)

entrée # 0, mov, mp4, m4a, 3gp, 3g2, mj2, de '/path/to/7b4e37e703ce0a104f027cb9125b1a19.mp4': Durée: 00: 00: 32.4, début: 0.000000, débit: 122 kb/s Courant # 0.0 (jpn): Vidéo: h263, yuv420p, 176x144, 29.97 fps (r) Courant # 0.1 (jpn): Audio: samr/0x726D6173, 8000 Hz, mono

Sortie # 0, flv, vers '/path/to/test.flv': Flux # 0.0: Vidéo: flv, yuv420p, 176x144, q = 2-31, 200 kb/s, 29,97 fps (c) Stream # 0.1: Audio: mp3, 8000 Hz, mono, 64 kb/s Mappage de flux: Flux # 0.0 -> # 0.0 Flux # 0.1 -> # 0.1

Codec non pris en charge (id = 73728) pour le flux d'entrée # 0.1

Répondre

4

Quel type d'accès avez-vous au serveur? Vous devez avoir la possibilité d'exécuter des commandes dessus.

Cela étant le cas, quelle est la sortie d'erreur de ffmpeg? Peut-être qu'un argument verbeux approprié vous en dirait plus sur le problème?

EDIT:

Voyons voir si nous pouvons obtenir stderr. Run:

ffmpeg -version 

Et voir si vous pouvez obtenir une sortie pour elle. Une fois que vous avez réussi à extraire une sortie stderr, nous pouvons étudier le problème d'origine.

EDIT:

Il semble donc que vous perdre stderr - maintenant, vous devez travailler sur la façon de le récupérer.

Peut-être:

ffmpeg -version 2>&1 

fonctionnera?

EDIT:

Comment nous obtenons quelque part - le codec audio d'entrée ne sont pas pris en charge:

Unsupported codec (id=73728) for input stream #0.1 

Je ne sais pas ce que Stream #0.1(jpn): Audio: samr/0x726D6173, 8000 Hz, mono est.

Mais vous avez un problème.

Je suggère que vous souhaitiez étudier une boîte Linux locale - il pourrait être plus facile de voir les problèmes.

EDIT:

De http://www.nabble.com/Convert-3gp-samr-file-td20514476.html il ressemble ffmpeg peut être compilé avec le support --enable-libamr-nb --enable-libamr-wb.

La recompilation ffmpeg est-elle une option?

+0

Probablement pas un problème d'accès au fichier s'il est capable de convertir le fichier sans audio. Cela étant dit, +1 pour la sortie verbose pour aider le diagnostic. – lpfavreau

+0

J'utilise la fonction système de PHP (http://php.net/system), qui retourne 0. J'ai aussi essayé le passthru, qui ne génère rien. –

+0

Quand je vais pour l'ultra-simple ffmpeg -i $ infile test.flv, il renvoie 1, si cela aide. –

-1

J'ai résolu ce problème. Voici mon code:

<?php 
    define('FFMPEG_LIBRARY', '/usr/local/bin/ffmpeg'); 
    $exec_string = FFMPEG_LIBRARY.' -i robot.avi -an output.flv'; 
    exec($exec_string); //where exec is the command used to execute shell command in php 
?> 
Questions connexes