FFmpeg: разговорный звук от ogg vorbis к aac VBR: режимы 1-5 имеют нулевой эффект

437
Vitaly Zdanevich

ffprobe о моем вкладе:

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

Размер файла: 834K

Я использую эту команду, чтобы преобразовать этот vorbis в aac:

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

Я не аудио эксперт и не слышу никакой разницы с оригинальным aac, хорошо, качество хорошее.

Размер файла: 1584 КБ

Хм, в два раза больше, чем оригинальный OGG. Просто любопытно - что будет, если я выставлю максимально доступное качество?

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

Размер файла: 1584 КБ

Хм .. Почему размер файла одинаков для максимального и минимального качества? И 1,5 МБ - это правильный размер для трех минут разговорного AAC? Я думаю, что выходной файл может быть легче. ffrobeдля вывода aac показывает:

22050 Hz, mono, fltp, 56 kb/s 

Источник моей информации о командах и настройках - официальная вики .

Я скачал ffmpeg с https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz . Полный вывод на каждую кодировку:

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 

Спасибо за помощь.

0

1 ответ на вопрос

0
Vitaly Zdanevich

Мой позор - я читаю документацию неточно. Правильная команда:

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

Но правильный UX для случая из моего вопроса - показать пользователю уведомление о том, что такие параметры не будут иметь никакого эффекта.

Теперь размер файла составляет 1599 КБ, 76,8 Кбит / с. За 2м 50с. Я думал, что размер будет меньше ...

Этот параметр не задокументирован для `aac`; Я бы посчитал поддержку VBR экспериментальной. Вместо этого используйте `libfdk_aac`, см. Http://slhck.info/video/2017/02/24/vbr-settings.html и https://trac.ffmpeg.org/wiki/Encode/AAC. slhck 6 лет назад 0

Похожие вопросы