LIBFAAC kann keine Kanäle neu berechnen

1723
Jimmery

Im verwende ich avconv, um Videodateien in MP4 zu konvertieren, aber wenn ich versuche, Dateien mit 6 oder 8 Kanälen in 2 Kanäle zu codieren, libfaacerhalte ich die folgenden Fehlermeldungen:

Can not resample 8 channels @ 44100 Hz to 2 channels @ 44100 Hz 

( BEARBEITEN : Die vollständige Ausgabe von Nachrichten finden Sie hier: http://pastebin.com/UXGrBy1D )

Dies sind die Codecs, für die wir installiert haben avconv: http://pastebin.com/hyQrqXqW

Und das ist der Befehl, den ich ausführen möchte:

avconv -y -i input.mp4 -vcodec libx264 -bufsize 20M -maxrate 4000k -threads 12 -same_quant -acodec libfaac -ac 2 -ar 44100 -ab 128k output.mp4 

Mache ich etwas falsch?

Oder gibt es Alternativen zu, libfaacdie werden 8 Kanäle in 2 Kanäle resamplen?

Ich muss dazu in der Lage sein, dies über eine Befehlszeile auf meinem Ubuntu 12.04-Server zu tun.

2
Nun, was sagt der Fehler: Die Kanäle können nicht automatisch heruntergemischt werden. Möglicherweise müssen Sie dies tun, indem Sie das Original-Audio extrahieren, mit `sox` oder ähnlichem abmischen und dieses dann mit dem codierten Video multiplexen. Können wir Ihre vollständige, ungeschnittene Befehlszeilenausgabe von "avconv" sehen? slhck vor 11 Jahren 0
Klar, schau dir meine Bearbeitung an. Die ungekürzte Ausgabe ist jedoch ziemlich groß! Jimmery vor 11 Jahren 0
Vielen Dank! Könnten Sie erklären, was Sie erreichen müssen? Dateigröße verkleinern? Kompatibilität mit einem Gerät? Warum `-same_quant` nicht verwendet werden sollte, siehe: [sameq bedeutet nicht" gleiche Qualität "(http://superuser.com/questions/478549/what-is-the-sameq-option-in-ffmpeg) -t-it-mean-same-quality). slhck vor 11 Jahren 0

1 Antwort auf die Frage

4
evilsoup

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 ffmpegin 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 copyden 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 

-acLegt 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 8Vor dem Eingang wird die Einstellung überschrieben, die vom MP4-Container bereitgestellt wird (und -ac 2vor dem Ausgabe-Signal) ffmpeg zur Ausgabe an 2 Audiokanäle).

Vielen Dank für deine Hilfe! Jimmery vor 11 Jahren 0