2

Я использую FFmpeg версии 3.2.2 и LAME 3.99.5 в macOS Sierra (10.12.2), и у меня есть эта команда, которая перенаправляет вывод FFmpeg (из файла FLAC) в LAME для кодирования в MP3:

ffmpeg -y -v quiet -nostdin -i test.flac -b:a 320k -ac 2 -ar 44100 -f s16le -acodec pcm_s16le - | \
  lame --quiet -r -m s --lowpass 19.7 -V 3 --vbr-new -q 0 -b 96 --scale 0.99 --athaa-sensitivity 1 - test.mp3;

Он работает нормально, и я доволен результатами, но когда я удаляю параметр -v quiet из части канала FFmpeg, чтобы я мог видеть, что происходит, я замечаю следующее в выводе:

Stream mapping:
  Stream #0:0 -> #0:0 (flac (native) -> pcm_s16le (native))
size=   81858kB time=00:07:55.18 bitrate=1411.2kbits/s speed=41.2x  

Обратите внимание, что в процессе преобразования битрейт отображается как 1411.2kbits а не как установленный битрейт 320 кбит / с при установке опции -b:a 320k .

Это ожидаемое поведение? Является ли весь этот набор аудиопараметров (-b:a 320k -ac 2 -ar 44100) излишним, когда конвейер выводится через выход RAW с использованием -f s16le -acodec pcm_s16le поскольку эта настройка битрейта игнорируется?

1 ответ1

5

Это ожидаемое поведение?

Да, битрейт (-b:a) игнорируется при выводе несжатого формата. Результирующий битрейт:

sample rate * bits per sample * number of channels = bitrate

Так что в случае с вами:

44100 * 16 * 2 = 1411200 bits/s or 1411.2 kilobits/s

Является ли весь этот набор аудиопараметров (-b:a 320k -ac 2 -ar 44100) излишним при передаче данных через RAW

Битрейт лишний. Если вы хотите изменить количество каналов или частоту дискретизации по какой-либо причине, вы можете оставить -ac и -ar (но вам, вероятно, никогда не понадобится).

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