2009-03-06 18 views
2

Ich habe ein paar Probleme beim Konvertieren von Videodateien von der Befehlszeile mit FFMPEG. Ich benutze einen CentOS-Server, aber leider habe ich keinen Shell-Zugang.FFMPEG - Null Dateigröße bei aktiviertem Sound

Wenn ich Sound mit dem folgenden Befehl unterdrücken, alles perfekt funktioniert (außer natürlich, es ist kein Ton zu hören!)

ffmpeg -i $infile -an test.flv 

aber wenn ich versuche, Sound zu ermöglichen, in jede Art und Weise überhaupt, die Die ausgegebene Datei hat eine Dateigröße von null kb.

FFMPEG ist mit Unterstützung für libmp3lame und libfaac kompiliert, und die erforderlichen Codecs sind installiert. Hier ist die Konfiguration von FFMPEG auf dem Server:

FFmpeg Version SVN-RUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. Konfiguration: --prefix =/usr --libdir =/usr/lib - mandir =/usr/teilen/man --incdir =/usr/include/ffmpeg --enable-libmp3lame --enable-libogg --enable -libvorbis --enable-libogg --enable-libthea --enable-libfaad --enable-libfaac --openable-libgsm --enable-xvid --enable-x264 --enable-liba52 --enable-liba52bin --enable -pp --enable-shared --enable-pthreads --enable-gpl --disable-Streifen

ist hier eine sehr kleine Probe von einigen der Befehle habe ich das Ergebnis in einer 0KB Dateigröße versucht :

Wenn jemand irgendwelche Hinweise geben könnte, was hier vor sich geht, würde ich es wirklich schätzen!

EDIT - hier ist das Ergebnis, wenn ich stderr in eine Datei umleiten

FFmpeg-Version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. Konfiguration: --prefix =/usr --libdir =/usr/lib - mandir =/usr/teilen/man --incdir =/usr/include/ffmpeg --enable-libmp3lame --enable-libogg --enable -libvorbis --enable-libogg --enable-libthea --enable-libfaad --enable-libfaac --openable-libgsm --enable-xvid --enable-x264 --enable-liba52 --enable-liba52bin --enable -pp --enable-shared --able-pthreads --enable-gpl --disable-strip libavutil Version: 49.4.0 libavcodec Version: 51.40.4 libavformat Version: 51.12.1 erstellt am 04.06.2007 11:02:12 , gcc 4.1.1 20.070.105 (Red Hat 4.1.1-52)

Input # 0, mov, mp4, m4a, 3gp, 3g2, mj2, von '/path/to/7b4e37e703ce0a104f027cb9125b1a19.mp4': Dauer: 00: 00: 32,4, Start: 0,000000, Bitrate: 122 kb/s Strom # 0,0 (jpn): Video: h263, yuv420p, 176x144, 29,97 fps (r) Strom # 0,1 (jpn): Audio: samr/0x726D6173, 8000 Hz, Mono

Ausgabe # 0, flv, nach '/pfad/zu/test.flv': Stream # 0.0: Video: flv, yuv420p, 176x144, q = 2-31, 200 kb/s, 29,97 fps (c) Stream # 0.1: Audio: mp3, 8000 Hz, mono, 64 kb/s Stream-Mapping: Stream # 0.0 -> # 0.0 Stream # 0.1 -> # 0.1

Nicht unterstützter Codec (id = 73728) für Eingangsstrom # 0.1

Antwort

4

Welche Art von Zugriff haben Sie auf den Server - Sie müssen einige Befehle ausführen können.

Was ist der Fall, was ist die Fehlerausgabe von ffmpeg?

Möglicherweise würde ein passendes ausführliches Argument Ihnen mehr über das Problem erzählen?

EDIT:

Mal sehen, ob wir stderr-Ausgabe erhalten. Run:

ffmpeg -version 

Und sehen, ob Sie eine Ausgabe für sie bekommen. Sobald Sie eine stderr-Ausgabe extrahiert haben, können wir das ursprüngliche Problem untersuchen.

EDIT:

So sieht es aus wie Sie stderr sind zu verlieren - jetzt müssen Sie herausfinden, wie es abzurufen.

Vielleicht:

ffmpeg -version 2>&1 

funktionieren wird?

EDIT:

Wie bekommen wir irgendwo - der Eingang Audio-Codec wird nicht unterstützt:

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

Ich weiß nicht, was Stream #0.1(jpn): Audio: samr/0x726D6173, 8000 Hz, mono ist.

Aber da ist dein Problem.

Ich schlage vor, dass Sie möglicherweise auf einer lokalen Linux-Box untersuchen möchten - es könnte einfacher sein, Probleme zu sehen.

EDIT:

Von http://www.nabble.com/Convert-3gp-samr-file-td20514476.html es wie ffmpeg aussieht, kann mit Unterstützung --enable-libamr-nb --enable-libamr-wb kompiliert werden.

Ist das Neukompilieren ffmpeg eine Option?

+0

Wahrscheinlich kein Dateizugriff Problem, wenn er in der Lage, die Datei ohne Audio zu konvertieren. Das heißt, +1 für die ausführliche Ausgabe, um die Diagnose zu erleichtern. – lpfavreau

+0

Ich benutze die PHP-Systemfunktion (http://php.net/system), die 0 zurückgibt. Ich habe auch versucht, passthru, die nichts ausgibt. –

+0

Wenn ich für den ultra-einfachen ffmpeg -i $ infile test.flv gehe, gibt es 1 zurück, wenn das hilft. –

-1

Ich löste dieses Problem. Hier ist mein 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 
?>