Как использовать ffmpeg для кодирования аудио файлов OGG?

8416
xpt

Я хочу преобразовать следующую простую oggencкоманду для использования ffmpegвместо:

oggenc -b 8 input.wav -o out.ogg 

Из документа обертки ffmpeg libvorbis говорится:

Следующие параметры поддерживаются оболочкой libvorbis. Oggenc-эквивалент параметров указан в скобках.

 b (-b) 

Установите битрейт, выраженный в битах / с для ABR. oggenc -b выражается в килобитах / с.

Но я просто не знаю, как это применить ffmpeg, я пытался,

ffmpeg -i input.aac -c:a libvorbis -b 8 out.ogg ffmpeg -i input.aac -c:a libvorbis b 8 out.ogg ffmpeg -i input.aac -c:a libvorbis=b:8 out.ogg 

но никто не работает, как ожидалось.

ОБНОВЛЕНИЕ: я хочу знать, как «перевести» опции, перечисленные в документе ffmpeg (libvorbis wrapper), в команду ffmpeg. Я могу -abпереключиться с помощью switch для выполнения транскодирования, но я не думаю, что это специфические параметры оболочки libvorbis . Поэтому, если вы предоставите ответ, пожалуйста, предоставьте демо, указав также все следующие параметры.

b (-b)  q (-q)  minrate (-m)  maxrate (-M)  iblock 
0
Если вы хотите такой низкий битрейт, почему бы не использовать более подходящий формат, такой как Opus? LordNeckbeard 7 лет назад 0
@LordNeckbeard, широко ли поддерживается Opus даже на старых версиях Windows? xpt 7 лет назад 0
Я не часто пользуюсь Windows, и я не знаю, на какую версию Windows вы ссылаетесь, но я думаю, что ответ «нет» для встроенной поддержки Opus ** и ** Vorbis, если вы используйте VLC или другой вменяемый плеер. LordNeckbeard 7 лет назад 0

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

3
LordNeckbeard

Ответ на ваш вопрос:

oggenc option corresponding ffmpeg option -b -b:a -q -q:a -m -minrate -M -maxrate 

Пример команды

ffmpeg -i input.aac -c:a libvorbis -b:a 8k output.oga 

Если требуемое значение 8kтерпит неудачу, то использует более высокий битрейт или понижать частоту дискретизации звука с -ar, например -ar 8000.

Информация о кодировщике и мультиплексоре

Вы можете увидеть дополнительную информацию и единственную частную опцию, специфичную для этого кодировщика:

ffmpeg -h encoder=libvorbis 

Вы также можете получить информацию о формате контейнера muxer / output:

ffmpeg -h muxer=ogg 
Благодарю. Было бы замечательно, если бы приведен полный пример командной строки. И кстати, ответ не в моем вопросе, так как я не знаю, как вы знаете, `minrate (-m)` просто `-minrate`, а не` -minrate: a`, тогда как `b (-b)` каким-то образом волшебным образом превращается в `-b: a`. Ни `ffmpeg -h encoder = libvorbis`, ни` ffmpeg -h muxer = ogg`, ни онлайн-документ не предоставляют такую ​​информацию. xpt 7 лет назад 0
Документация, вероятно, была написана до того, как некоторые опции получили возможность использовать спецификаторы потока. Если вы просто используете `-b`, тогда` ffmpeg` скажет вам использовать `-b: a`. LordNeckbeard 7 лет назад 0
1
bot1131357

Это работает для меня:

ffmpeg -i test.aac -c:a libvorbis -b:a 64k test.ogg

Я не думаю, что 8kb / s является допустимым значением, но я могу ошибаться. :-)

8kb / s является допустимым значением для vorbis / oggenc. вот почему я использую его, а ваш ответ - нет. Добро пожаловать за границу, кстати. xpt 7 лет назад 0
Попробуйте добавить в свой пример `-c: a libvorbis`, иначе кодировщик flac может быть выбран по умолчанию (если вы выбрали` .oga`, который обычно предназначен только для аудио). LordNeckbeard 7 лет назад 0
Извините, я не понял, что хочу знать. ОП обновлен. xpt 7 лет назад 0