it-swarm.com.de

Optionen für ffmpeg: -acodec libfaac -ab 192k 150kbit-Dateien erzeugen?

Wenn ich mit ffmpeg ein Audiofile mit der Option konvertiere

-acodec libfaac -ab 192k 

und verwenden

ffmpeg -i 

auf dieser Datei danach, um die Audio-Datei-Informationen zu erhalten, sagt es mir

bitrate: 152 kb/s

Warum ist das so? Vermisse ich hier etwas? Wenn ich eine Datei mit einer Bitrate von 192 kBit konvertieren möchte, sollte sie mir nach der Konvertierung 192 kBit geben, nicht wahr?

Oder: Wie bekomme ich dann die 192 kbit Rate?

6
piedro

Es gibt jetzt viel bessere AAC-Encoder für Linux wie NeroAacEnc oder fdkaac, aber wenn Sie immer noch Faac verwenden möchten, gibt es einen Patch, der bedeutet, dass Faac mit einer Bitrate von 192k codieren kann, und auch viel höher. Handbrake hat diesen Patch früher verwendet und auf ihrer Site gehostet, aber die Entwickler haben die Unterstützung für faac eingestellt. Ich hosten den Patch jetzt hier:

http://www.andrews-corner.org/patches/A00-bitrates.patch

Patchen Sie Faac und kompilieren Sie FFmpeg mit -- enable-libfaac und Sie können AAC-Dateien mit hoher Bitrate mit Faac erstellen. Hier ist ein Beispiel für die Codierung mit dem gepatchten faac, das direkt mit faac codiert:

[email protected]~/media$ faac -b 192 -o test.m4a test.wav 
Freeware Advanced Audio Coder
FAAC 1.28

Average bitrate: 192 kbps
Quantization quality: 100
Bandwidth: 20872 Hz
Object type: Low Complexity(MPEG-4) + M/S
Container format: MPEG-4 File Format (MP4)
Encoding test.wav to test.m4a
   frame          | bitrate | elapsed/estim | play/CPU | ETA
11720/11720 (100%)|  192.0  |   21.7/21.7   |   12.52x | 0.0  

[email protected]~/media$ 

Und es funktioniert auch mit FFmpeg. Aber es gibt definitiv bessere AAC-Encoder ...

Referenzen:

2
andrew.46

Ich kann keine weiteren Erklärungen geben, aber einige Stellen (z. B. [ 1 ]) erwähnen:

Beachten Sie, dass die maximale durchschnittliche Bitrate (was -ab im Zusammenhang mit libfaac angibt) 152 kbit/s beträgt. Eine höhere Einstellung wird ignoriert und 152 kbit/s werden verwendet.

2
Marcel Stimberg

Für hohe und niedrige Bitraten müssen Sie eine andere Grenzfrequenz angeben. ohne Grenzfrequenz ergibt dieses Beispiel eine maximale Bitrate von 166 kbit/s (+ 2 kbit/s Muxing-Overhead):

ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 210k out.mp4

size=     308kB time=00:00:15.01 bitrate= 168.0kbits/s

Wenn ich die Grenzfrequenz auf die Hälfte der Abtastrate einstelle, kann ich bis zu 210 kbit/s erreichen

ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 210k -cutoff 24k out.mp4

size=     388kB time=00:00:15.01 bitrate= 211.7kbits/s

Ebenso wird der Standardwert 64,5 kbit/s nicht unterschreiten:

ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 20k out.mp4

size=     122kB time=00:00:15.01 bitrate=  66.4kbits/s

Wenn ich die Grenzfrequenz jedoch sehr niedrig einstelle, kann ich 20 kbit/s erreichen:

ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 20k -cutoff 1k out.mp4

size=      40kB time=00:00:15.01 bitrate=  21.9kbits/s

In diesen Beispielen habe ich eine Samplerate von 48kHz verwendet. Bei Verwendung einer niedrigeren Samplerate kann die Bitrate auch niedriger sein.

0
wimh