Как указать уровень сжатия 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
твой друг.
В будущем вы можете проверить справочную страницу для инструментов.
- Откройте терминал.
- Тип
man (name of program)
, Напримерman avconv
, - Для поиска руководства нажмите "/" и введите строку для поиска. В этом случае я сделал '/ сжатие', это было второе, что было найдено.
Опция есть -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.
То же, что и справочные страницы, но, возможно, некоторым будет легче найти и прочитать!
Рекомендации: