Как указать уровень сжатия flac при конвертации с avconv?

Я пытаюсь преобразовать некоторые файлы aac в файлы flac, потому что aac не поддерживается другим устройством, которое я использую. После нескольких попыток найти решение, ища в Интернете, я наконец прочитал, что ffmpeg был заменен на avconv, и что avconv - это ответвление от ffmpeg. Поэтому я искал, как конвертировать в flac с помощью avconv и нашел эту строку:

avconv -i (input file) -f flac (output file path)

Это работает хорошо, однако я не вижу никакого уровня сжатия flac в этой команде, и мне нужно иметь уровень сжатия 2 или ниже, из-за ресурсов ЦП на целевом устройстве. Я проверил man-страницу для avconv, но, похоже, она вообще не упоминает уровни сжатия flac.

Итак, мой вопрос: как мне указать уровень сжатия flac при конвертации из любого входного формата во flac с помощью avconv?

2 ответа

Решение

E сть -compression_level приписывать. Страница Man дает свой формат как

-compression_level[:stream_specifier] integer (output,audio,video)

Скорее всего, вам не нужно указывать поток, так как у вас есть только один в файле, поэтому -compression_level 2 твой друг.

В будущем вы можете проверить справочную страницу для инструментов.

  1. Откройте терминал.
  2. Тип man (name of program), Например man avconv,
  3. Для поиска руководства нажмите "/" и введите строку для поиска. В этом случае я сделал '/ сжатие', это было второе, что было найдено.

Опция есть -compression_level и может быть установлен либо avconv или же FFmpeg:

ffmpeg -i input.wav -c:a flac -compression_level 12 output.flac

Интересно, что кодер flac командной строки предлагает уровни сжатия 0-8, а FFmpeg / avconv предлагает 0-12. Документацию можно увидеть в 3 местах:

1. Исходный код:

Варианты сжатия flac можно увидеть в flacenc.c:

/* set compression option defaults based on avctx->compression_level */
if (avctx->compression_level < 0)         <-------------
    s->options.compression_level = 5;     <-------------
else
    s->options.compression_level = avctx->compression_level;

level = s->options.compression_level;
if (level > 12) {                         <-------------
    av_log(avctx, AV_LOG_ERROR, "invalid compression level: %d\n",
           s->options.compression_level);
    return AVERROR(EINVAL);
}

У меня есть "стрелка" в соответствующих разделах!

2. Справочные страницы:

Варианты сжатия также можно увидеть в man ffmpeg-all скорее, чем man ffmpeg:). Эта страница руководства показывает:

compression_level
Sets the compression level, which chooses defaults for many other options
if they are not set explicitly. Valid values are from 0 to 12, 5 is the default.

Немного запутано с несколькими справочными страницами, теперь доступными для FFmpeg!

3. Электронная документация:

Как указал "Miso Soup", в Интернете также есть некоторая документация для более глубоких опций кодирования flac, включая опции сжатия:

compression_level
Sets the compression level, which chooses defaults for many
other options if they are not set explicitly. Valid values
are from 0 to 12, 5 is the default.

То же, что и справочные страницы, но, возможно, некоторым будет легче найти и прочитать!

Рекомендации:

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