ffmpeg генерирует изображения более высокого качества для кодирования MJPEG
у меня есть куча файлов mov / H. 264, которые я хотел бы закодировать в mov/MJPEG. Однако я получаю очень низкое качество продукции. Вот что я попробовал:
ffmpeg -i a.mov -an -crf 11 -preset slower -pix_fmt yuv420p -vcodec mjpeg -f mov -y b.mov
для кодирования H. 264 -crf
и -preset
флаги генерируют более высокое качество. Но это, похоже, не работает для MJPEG.
1 ответов
использовать -q:v
по умолчанию для MJPEG ffmpeg
будет, вероятно, использовать значение по умолчанию:-b:v 200k
. Это было хорошо, когда он был установлен по умолчанию более 10 лет назад (я предполагаю возраст), но не больше.
можно использовать -q:v
вместо. для MJPEG эффективный диапазон линейный масштаб 2-31, и более низкое значение приведет к в более высокомарочном выходе.
если вы хотите применить оптимизацию Хаффмана, добавьте -huffman optimal
. Это может привести к несколько меньший размер выходного файла.
пример
ffmpeg -i input.mov -c:v mjpeg -q:v 3 -huffman optimal -an output.mov
частные варианты
кодировщик MJPEG не использует -crf
и -preset
, эти "частные" варианты для некоторых кодеров. Вы можете увидеть частные варианты, как это:ffmpeg -h encoder=mjpeg
.