Как я могу достичь наилучшего общего качества FLV с FFMPEG? - PullRequest
12 голосов
/ 07 июля 2010

Я стремлюсь достичь наилучшего качества FLV с самым низким размером файла. В конце концов, разве это не цель каждого? Эти видео будут транслироваться, если это что-то изменит.

На данный момент мои видео не шире, чем 320px, а некоторые широкоэкранные, поэтому их высота чуть меньше 240px. В настоящее время качество преобразованных FLV довольно низкое.

Текущая команда:

> ffmpeg -i video.mov -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 video.flv

Ответы [ 3 ]

10 голосов
/ 07 июля 2010

По умолчанию flv по умолчанию равен 200Kb, а при qmax, превышающем 30 (поскольку вы не переопределяете его), он, скорее всего, будет выдавать результат около этого. Вы можете исправить это одним из следующих способов:

  • Установка qmax на более низкое значение, заставляющее контроль качества увеличивать скорость, чтобы соответствовать требованию.
  • Увеличение битрейта с помощью -vb 400k

На тестовом видео, которое я только что попробовал, -qmax 10 дал приемлемый результат. Использование qmax и qmin для установки нижнего и верхнего приемлемого качества является предпочтительным способом.

7 голосов
/ 23 января 2012

Мне не повезло с представленными до сих пор опциями - большинство из них не влияло на мой входной файл, который неизменно давал некачественные результаты - но на самом деле очень хорошо работали следующие:

ffmpeg -qscale 4 -i infile.avi outfile.flv

Уменьшите значение qscale для лучшего качества, увеличьте его для меньшего размера файла.Начиная с документы :

-qscale n, где n - это число от 1 до 31, где 1 - самое высокое качество / самый большой размер файла, а 31 - самое низкое качество / самый маленькийразмер файла.

Протестировано на Mac OS X 10.6.8.

3 голосов
/ 19 июля 2010

Я думаю, что лучшее решение для максимизации соотношения качество / размер - полностью отказаться от кодировки "flv" ffmpeg и использовать вместо нее H.264.

Обычно я использую ручной тормоз для преобразования файлов вMP4 / AAC, а затем использовать только FFMPEG для повторного смешивания файла в FLV-контейнере.

ffmpeg -i input_file.mp4 -vcodec copy -acodec copy -y output_file.flv

Есть также много параметров для ручного тормоза, некоторые интересные предустановки можно найти здесь: http://trac.handbrake.fr/wiki/BuiltInPresets

...