У меня есть .ogg файл (содержащий речь) с качеством на 192 Кбит/с, которое я хотел бы уменьшить до 32 Кбит/с (для оставления свободного места)
Как я могу сделать это?
До сих пор я попробовал это:
ffmpeg -i filename.ogg -ab 32k -f ogg new-filename.ogg
Но я получаю эту ошибку:
[libvorbis @ 0x56157365ab60] encoder setup failed
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
Я использую неправильную команду? Существует ли лучший подход, который я могу проявить для оставления свободного места? Обратите внимание на то, что у меня только есть доступ к файлу на 192 Кбит/с (не оригинал)
Благодарный за справку!
Здесь существует два отличного выбора:
Детали обоих ниже:
1. Скорректируйте свою командную строку FFmpeg...
Ключевой вопрос - то, что FFmpeg автоволшебно не изменит аудио частоту дискретизации для соответствующего соответствия выбранной скорости передачи. Но затем FFmpeg обычно не делает большого содержания руки, которое я предполагаю!
Примите во внимание, что Аудиокомпакт-диск будет обычно иметь частоту дискретизации 44 100 Гц, в то время как простая телефония обычно имела бы частоту дискретизации немного больших, чем 8 000 Гц. Таким образом, у Вас есть выбор сделать для лучшей частоты дискретизации для Вашего 32k аудио Ogg Vorbis. Следующее является некоторыми инструкциями:
С этим в памяти мое собственное тестирование предполагает, что Вы были бы лучшими для использования частоты дискретизации 22 050 Гц, обратите внимание, что это должно отлично быть достаточно для речи, и таким образом командная строка должна быть:
ffmpeg -i filename.ogg -c:a libvorbis -ab 32k -ar 22050 new-filename.ogg
И это произвело довольно разумный результат на моей собственной установке...
2. Используйте FFmpeg для создания маленького файла с помощью libopus...
Если Вы - возможно, не весь, который устанавливает при использовании Ogg Vorbis, превосходная альтернатива должна использовать Опус, который в моих тестах брился, разумное число килобайтов от каждого файла по сравнению с Ogg Vorbis 32k кодируют. Попробуйте что-то как следующее, которое было адаптировано для Ваших речевых файлов:
ffmpeg -i filename.ogg \
-c:a libopus -b:a 16k -ar 16000 -ac 1 -application voip \
new-filename.ogg
Вы будете приятно удивлены и получающимся размером выходного файла и качеством звука. Я включал ссылку на большой ресурс HydrogenAudio в 'Ссылках', которые должны вести к еще лучшей командной строке для Опуса...
Ссылки:
Речь, кодирующая качество: категорическая страница HydrogenAudio для руководства настроек Opus для речи.
15.8 libopus: опции FFmpeg для использования с кодированием libopus. Отметьте -application voip
установка этого, которое я использовал выше и которое не имеет эквивалента с opusenc (в отличие от других настроек).
Эта низкая скорость передачи не поддерживается с частотой дискретизации по умолчанию файла. Необходимо указать более низкую частоту дискретизации, прежде чем можно будет понизить скорость передачи. Добавьте опцию - площадь 8000 для Вашей опции-b:a 32k, чтобы быть принятыми.