LIBFAAC kann Kanäle nicht neu abtasten

LIBFAAC kann Kanäle nicht neu abtasten

Ich verwende es avconv, um Videodateien in MP4 zu konvertieren, aber immer wenn ich versuche, Dateien mit 6 oder 8 Kanälen in 2 Kanäle zu kodieren, libfaacerhalte ich diese Fehlermeldungen:

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

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

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

Und das ist der Befehl, den ich ausführe:

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 libfaacdenenWille8 Kanäle in 2 Kanäle umabtasten?

Ich muss dies von einer Befehlszeile auf meinem Ubuntu 12.04-Server aus tun können.

Antwort1

Wenn Sie dies noch nicht getan haben, lesen Sie zunächstdieser ffmpeg h.264 Kodierungsleitfaden- es 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önnten Sie verwendendieses PPA, oderselbst kompilieren(Diese letzte Option gibt Ihnen Zugriff auffdk_aac, ein viel besserer AAC-Encoder als FAAC).

Sofern Sie nicht genau wissen, was Sie tun und keinen bestimmten Grund dafür haben, sollten Sie wahrscheinlich nicht verwenden -bufsize 20M -maxrate 4000k -threads 12 -same_quant. Tatsächlich sollten Sie, wenn Sie sich an die Eingabe in diesem Pastebin halten, wahrscheinlich einfach verwenden -codec:v copy, wodurch der Videostream nicht berührt wird.

Was Ihr genanntes Problem betrifft ... ich glaube nicht, dass libfaac Ihr Problem ist. Schauen Sie hier (aus Ihrem 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, Ihr Eingangsaudio sei Stereo. 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 jede Menge Fehler aus. Ich vermute, dass Ihre Eingabe beschädigt sein könnte.

Es istmöglichdass 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:Wennder AAC-Stream ist nicht beschädigt. Es ist möglich, dass das Containerformat nur falsche Daten an avconv liefert und dass das Platzieren -ac 8vor der Eingabe die vom MP4-Container bereitgestellte Einstellung überschreibt (und das Platzieren -ac 2vor der Ausgabe weist ffmpeg an, auf 2 Audiokanälen auszugeben).

verwandte Informationen