FFmpeg: gesprochenes Audio von ogg bisbis zu aac VBR: Die Modi 1-5 haben keine Wirkung

522
Vitaly Zdanevich

ffprobe über meine Eingabe:

 Duration: 00:02:50.54, start: 0.000000, bitrate: 40 kb/s Stream #0:0: Audio: vorbis, 22050 Hz, mono, fltp, 35 kb/s 

Dateigröße: 834K

Ich verwende diesen Befehl, um diesen Vorbis in den aac zu konvertieren:

ffmpeg -i input.ogg -vbr 1 output.aac 

Ich bin kein Audio-Experte und höre keinen Unterschied zu Original-AAC, ok, Qualität ist gut.

Dateigröße: 1584kB

Hm, zweimal größer als der ursprüngliche ogg. Nur neugierig - was wird es, wenn ich die maximal verfügbare Qualität einstelle?

ffmpeg -i input.ogg -vbr 5 output.aac 

Dateigröße: 1584kB

Hmm .. Warum ist die Dateigröße für die maximale und minimale Qualität gleich? Und 1,5 MB ist die richtige Größe für drei Minuten AAC? Ich denke, dass die Ausgabedatei leichter sein kann. ffrobefür die Ausgabe von aac zeigt:

22050 Hz, mono, fltp, 56 kb/s 

Quelle meiner Informationen zu Befehlen und Einstellungen - offizielles Wiki .

Ich habe ffmpeg von https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz heruntergeladen . Vollständige Ausgabe bei jeder Codierung:

fmpeg version 3.3.4-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2017 the FFmpeg developers built with gcc 6.4.0 (Debian 6.4.0-4) 20170820 configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg libavutil 55. 58.100 / 55. 58.100 libavcodec 57. 89.100 / 57. 89.100 libavformat 57. 71.100 / 57. 71.100 libavdevice 57. 6.100 / 57. 6.100 libavfilter 6. 82.100 / 6. 82.100 libswscale 4. 6.100 / 4. 6.100 libswresample 2. 7.100 / 2. 7.100 libpostproc 54. 5.100 / 54. 5.100 Input #0, ogg, from 'merged_by_ffmpeg.ogg': Duration: 00:02:50.54, start: 0.000000, bitrate: 40 kb/s Stream #0:0: Audio: vorbis, 22050 Hz, mono, fltp, 35 kb/s Metadata: ENCODER : Lavf57.71.100 Codec AVOption vbr (Variable bit rate mode) specified for output file #0 (output_ffmpeg.aac) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream. Stream mapping: Stream #0:0 -> #0:0 (vorbis (native) -> aac (native)) Press [q] to stop, [?] for help Output #0, adts, to 'output_ffmpeg.aac': Metadata: encoder : Lavf57.71.100 Stream #0:0: Audio: aac (LC), 22050 Hz, mono, fltp, 69 kb/s Metadata: encoder : Lavc57.89.100 aac size= 1584kB time=00:02:50.58 bitrate= 76.1kbits/s speed=53.5x video:0kB audio:1559kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.611874% [aac @ 0x4321800] Qavg: 2788.377 

Danke für die Hilfe.

0

1 Antwort auf die Frage

0
Vitaly Zdanevich

My shame - I read documentation inaccurately. The correct command is:

ffmpeg -i input.ogg -q:a 1 output.aac 

But correct UX for the case from my question is to show some notification for a user that such parameters will have no effect.

Now filesize is 1599kB, 76.8kbits/s. For 2m 50s. I thought that the size would be smaller...

Diese Einstellung ist für "aac" nicht dokumentiert. Ich würde die VBR-Unterstützung als experimentell betrachten. Verwenden Sie stattdessen `libfdk_aac`, siehe: http://slhck.info/video/2017/02/24/vbr-settings.html und https://trac.ffmpeg.org/wiki/Encode/AAC slhck vor 6 Jahren 0