Эта команда приводит к файлу с битрейтом 1500k .

ffmpeg -i 480P_600K_128632031.mp4 -t 6 -map 0:a -c:a libopus -b:a 32k -vbr on -compression_level 10 -ac 1 -ar 48000 480P_600K_128632031.opus

-b:a 32k проигнорировано.

Полный вывод на всякий случай:

ffmpeg version 3.3.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.2.0 (Rev1, Built by MSYS2 project)
  configuration: --prefix=/mingw64 --target-os=mingw32 --arch=x86_64 --disable-debug --disable-static --enable-avresample --enable-dxva2 --enable-d3d11va --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libcaca --enable-libcelt --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libxvid --enable-libvpx --enable-libwebp --enable-openal --enable-libwavpack --enable-pic
--enable-postproc --enable-runtime-cpudetect --enable-shared --enable-static --enable-swresample --enable-version3 --enable-zlib --disable-doc
  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
  libavresample   3.  5.  0 /  3.  5.  0
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '480P_600K_128632031.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.71.100
  Duration: 00:27:04.38, start: 0.000000, bitrate: 516 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 854x480 [SAR 1280:1281 DAR 16:9], 379 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
File '480P_600K_128632031.opus' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:1 -> #0:0 (aac (native) -> opus (libopus))
Press [q] to stop, [?] for help
Output #0, opus, to '480P_600K_128632031.opus':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.71.100
    Stream #0:0(und): Audio: opus (libopus), 48000 Hz, mono, flt, 32 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      encoder         : Lavc57.89.100 libopus
      major_brand     : isom
      minor_version   : 512
      compatible_brands: isomiso2avc1mp41
size=      17kB time=00:00:06.01 bitrate=  23.7kbits/s speed=46.5x
video:0kB audio:17kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 4.394640%

Моя ложка слишком большая, не обращайте внимания.

2 ответа2

1

Ваш битрейт на выходе кажется 23,7 кбит / с, а не 1500 кБ / с. Что бы ни сообщало MediaInfo, это неправильно, так как ffmpeg сообщает вам (скользящее среднее) битрейт вашего процесса кодирования.

Оба параметра -b:a 32k и -vbr on являются действительными настройками для libopus . Подробности смотрите в ffmpeg -h encoder=libopus . Указывая только -b:a 32k , вы получаете кодирование с постоянной скоростью передачи битов.

При дополнительном указании -vbr on вы включаете кодирование VBR с помощью вызова OPUS_SET_VBR. Обратите внимание, что:

Сконфигурированный битрейт может не соответствовать точно, потому что длина кадров должна быть целым числом байтов.

-1

Вы используете "-b:32k -vbr on". Вы смешиваете запрос на постоянный битрейт с запросом на переменный битрейт, и слово "on" не распознается.

Вы, вероятно, хотите "-b:32k".

Просьба Mulvya на video.stackexchange.com наверняка будет полезным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .