Изменение (сокращения) качества ogg файла?

У меня есть .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 Кбит/с (не оригинал)

Благодарный за справку!

2
задан 17 February 2019 в 13:52

2 ответа

Здесь существует два отличного выбора:

  1. Скорректируйте свою командную строку FFmpeg для создания меньшего файла Ogg Vorbis
  2. Используйте FFmpeg для создания маленького файла с помощью libopus

Детали обоих ниже:

1. Скорректируйте свою командную строку FFmpeg...

Ключевой вопрос - то, что FFmpeg автоволшебно не изменит аудио частоту дискретизации для соответствующего соответствия выбранной скорости передачи. Но затем FFmpeg обычно не делает большого содержания руки, которое я предполагаю!

Примите во внимание, что Аудиокомпакт-диск будет обычно иметь частоту дискретизации 44 100 Гц, в то время как простая телефония обычно имела бы частоту дискретизации немного больших, чем 8 000 Гц. Таким образом, у Вас есть выбор сделать для лучшей частоты дискретизации для Вашего 32k аудио Ogg Vorbis. Следующее является некоторыми инструкциями:

  • 44 100 Гц: Типичная частота дискретизации Аудиокомпакт-диска. Отклоненный FFmpeg для 32k файла.
  • 32 000 Гц: Достаточный для речи и также достаточный для других звуковых файлов, где меньший размер файла требуется с ожидаемой маленькой потерей качества. Отклоненный FFmpeg для 32k файла.
  • 22 050 Гц: Достаточный для речи и применимый для другого аудио с ожиданием, что будет потеря качества звука. Принятый FFmpeg для 32k файла.
  • 11 025 Гц: Очень плохое качество звука. Принятый FFmpeg для 32k файла.
  • 8 000 Гц: Немного более низкая частота дискретизации, чем современная телефонная система, не рекомендуемая для большинства задач записи. Принятый FFmpeg для 32k файла.

С этим в памяти мое собственное тестирование предполагает, что Вы были бы лучшими для использования частоты дискретизации 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 (в отличие от других настроек).

4
ответ дан 2 December 2019 в 01:52

Эта низкая скорость передачи не поддерживается с частотой дискретизации по умолчанию файла. Необходимо указать более низкую частоту дискретизации, прежде чем можно будет понизить скорость передачи. Добавьте опцию - площадь 8000 для Вашей опции-b:a 32k, чтобы быть принятыми.

1
ответ дан 2 December 2019 в 01:52

Другие вопросы по тегам:

Похожие вопросы: