Конвертирование PHP FFMPEG MP3 в OGG с заданным битрейтом

Приветствую!

Возникла задача конвертировать с помощью FFMPEG MP3 в OGG с заданным битрейтом.

/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .bash.geshi_code {font-family:monospace;} .bash.geshi_code .imp {font-weight: bold; color: red;} .bash.geshi_code .kw1 {color: #000000; font-weight: bold;} .bash.geshi_code .kw2 {color: #c20cb9; font-weight: bold;} .bash.geshi_code .kw3 {color: #7a0874; font-weight: bold;} .bash.geshi_code .co0 {color: #666666; font-style: italic;} .bash.geshi_code .co1 {color: #800000;} .bash.geshi_code .co2 {color: #cc0000; font-style: italic;} .bash.geshi_code .co3 {color: #000000; font-weight: bold;} .bash.geshi_code .es1 {color: #000099; font-weight: bold;} .bash.geshi_code .es2 {color: #007800;} .bash.geshi_code .es3 {color: #007800;} .bash.geshi_code .es4 {color: #007800;} .bash.geshi_code .es5 {color: #780078;} .bash.geshi_code .es_h {color: #000099; font-weight: bold;} .bash.geshi_code .br0 {color: #7a0874; font-weight: bold;} .bash.geshi_code .sy0 {color: #000000; font-weight: bold;} .bash.geshi_code .st0 {color: #ff0000;} .bash.geshi_code .st_h {color: #ff0000;} .bash.geshi_code .nu0 {color: #000000;} .bash.geshi_code .re0 {color: #007800;} .bash.geshi_code .re1 {color: #007800;} .bash.geshi_code .re2 {color: #007800;} .bash.geshi_code .re4 {color: #007800;} .bash.geshi_code .re5 {color: #660033;} .bash.geshi_code span.xtra { display:block; }
ffmpeg -i input.mp3 -ab 64k output.ogg


Однако:

/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .bash.geshi_code {font-family:monospace;} .bash.geshi_code .imp {font-weight: bold; color: red;} .bash.geshi_code .kw1 {color: #000000; font-weight: bold;} .bash.geshi_code .kw2 {color: #c20cb9; font-weight: bold;} .bash.geshi_code .kw3 {color: #7a0874; font-weight: bold;} .bash.geshi_code .co0 {color: #666666; font-style: italic;} .bash.geshi_code .co1 {color: #800000;} .bash.geshi_code .co2 {color: #cc0000; font-style: italic;} .bash.geshi_code .co3 {color: #000000; font-weight: bold;} .bash.geshi_code .es1 {color: #000099; font-weight: bold;} .bash.geshi_code .es2 {color: #007800;} .bash.geshi_code .es3 {color: #007800;} .bash.geshi_code .es4 {color: #007800;} .bash.geshi_code .es5 {color: #780078;} .bash.geshi_code .es_h {color: #000099; font-weight: bold;} .bash.geshi_code .br0 {color: #7a0874; font-weight: bold;} .bash.geshi_code .sy0 {color: #000000; font-weight: bold;} .bash.geshi_code .st0 {color: #ff0000;} .bash.geshi_code .st_h {color: #ff0000;} .bash.geshi_code .nu0 {color: #000000;} .bash.geshi_code .re0 {color: #007800;} .bash.geshi_code .re1 {color: #007800;} .bash.geshi_code .re2 {color: #007800;} .bash.geshi_code .re4 {color: #007800;} .bash.geshi_code .re5 {color: #660033;} .bash.geshi_code span.xtra { display:block; }
ffmpeg -i output.ogg

Input #0, ogg, from 'output.ogg':
Duration: 00:03:26.83, start: 0.000000, bitrate: 998 kb/s
Stream #0.0: Audio: flac, 44100 Hz, 2 channels, s16


Как видим битрейте 998 KB/s вместо заданного 64Kb/s что влияет на размер файла.

Где ошибся?

1 ответов


Синтаксис правильный, а проблема в том, что Вы не указали кодек, который необходимо использовать для конвертации и ffmpeg использовал кодек максимальный по качеству - flac. Чтобы получить подходящий результат необходимо указывать используемый кодек. У меня например заработало с libvorbis на винде и последней сборке ffmpeg. fmpeg.exe -i input.mp3 -acodec libvorbis -ab 64k output.ogg