Wenn Sie dies noch nicht getan haben, lesen Sie zunächst diese ffmpeg h.264-Codierungsanleitung. Sie gilt auch für avconv. Ändern Sie einfach jede Instanz von ffmpeg
in avconv
. Erwägen Sie auch ein Upgrade auf eine neuere Version von avconv oder ffmpeg. Da Sie Ubuntu verwenden, können Sie diese PPA verwenden oder selbst kompilieren (diese letzte Option gibt Ihnen Zugriff auf fdk_aac, einen viel besseren AAC-Encoder als FAAC).
Wenn Sie nicht genau wissen, was Sie tun und einen bestimmten Grund haben, sollten Sie dies wahrscheinlich nicht verwenden -bufsize 20M -maxrate 4000k -threads 12 -same_quant
. In der Tat sollten Sie die Eingabe in diesem Pastebin verwenden, und Sie sollten -codec:v copy
den Video-Stream nicht berühren.
Was Ihr angegebenes Problem angeht ... Ich glaube nicht, dass Libfaac Ihr Problem ist. Schau hier (von deinem Pastebin):
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from \'/var/www/up/up50eefce404e4f.mp4\': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isomavc1mp42 creation_time : 2007-12-08 19:28:08 Duration: 00:46:47.64, start: 0.000000, bitrate: 308 kb/s Stream #0.0(und): Audio: aac, 44100 Hz, stereo, s16, 111 kb/s Metadata: creation_time : 2007-12-08 19:28:08 Stream #0.1(und): Video: h264 (Baseline), yuv420p, 320x240 [PAR 1:1 DAR 4:3], 195 kb/s, 11.99 fps, 11.99 tbr, 11988 tbn, 23976 tbc Metadata: creation_time : 2007-12-08 19:28:11
FFmpeg denkt, dass Ihr Eingangsaudio Stereo ist. Viel später:
Input stream #0:0 frame changed from rate:44100 fmt:s16 ch:2 to rate:44100 fmt:s16 ch:8 Resampling output channel count must be 1 or 2 for mono input; 1, 2 or 6 for stereo input; or N for N channel input. Can not resample 8 channels @ 44100 Hz to 2 channels @ 44100 Hz
Der Videostream wirft auch eine Menge Fehler auf. Ich vermute, dass Ihre Eingabe möglicherweise beschädigt ist.
Es ist möglich, dass der folgende Befehl funktioniert:
avconv -ac 8 -i input.mp4 -c:v copy -c:a libfaac -b:a 128k -ac 2 output.mp4
-ac
Legt die Anzahl der Audiokanäle fest: Wenn der AAC-Stream nicht beschädigt ist, kann es sein, dass das Containerformat nur falsche Daten an avconv überträgt. -ac 8
Vor dem Eingang wird die Einstellung überschrieben, die vom MP4-Container bereitgestellt wird (und -ac 2
vor dem Ausgabe-Signal) ffmpeg zur Ausgabe an 2 Audiokanäle).