FFmpeg: кодирование видео

Для одного из проектов(фильмы онлайн) потребовалось сконвертировать огромное количество видео в mp4 с качеством, оптимальным для онлайн вещания.

ffmpeg

В качестве инструмента для кодирования, естественно, был выбран FFmpeg. Но на подборку оптимальных параметров ушел не один день. Решил поделиться параметрами на которых мы остановились, а также скриптом для массового конвертирования видео.

ffmpeg.exe -i input.avi
-threads 4
-vcodec libx264
-b 450k
-bt 500k
-ab 128k
-ar 44100
-ac 2
-vol 256
-skip_frame none
-metadata title="upyachka.ru - online movie theater"
-metadata copyright="upyachka.ru"
-coder 1
-async 1
-flags +loop+mv4
-me_method tesa
-nr 0
-wpredp 0
-g 250
-qcomp 0.60
-qmin 10
-qmax 50
-bf 16
-sc_threshold 40
-qdiff 4
-keyint_min 25
-deblockalpha 0
-deblockbeta 0
-b_strategy 2
-cmp chroma
-me_range 24
-flags2 +wpred+dct8x8+mixed_refs+mbtree
-trellis 2
-partitions +parti8x8+parti4x4+partp8x8+partb8x8
-i_qfactor 1.41
-psnr
-y output.flv

flvmeta.exe -U output.flv

Скрипт для автоматического конвертирования все файлов в директории

@echo off
FOR %%F IN (*.*)
DO
( move %%F p_%%F & ffmpeg.exe -i p_%%F -threads 2 -vcodec libx264 -b 450k -bt 500k -ab 128k -ar 44100 -ac 2 -vol 256 -skip_frame none -coder 1 -async 1 -flags +loop+mv4 -me_method tesa -nr 0 -wpredp 0 -g 250 -qcomp 0.60 -qmin 10 -qmax 50 -bf 16 -sc_threshold 40 -qdiff 4 -keyint_min 25 -deblockalpha 0 -deblockbeta 0 -b_strategy 2 -cmp chroma -me_range 24 -flags2 +wpred+dct8x8+mixed_refs+mbtree -trellis 2 -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -i_qfactor 1.41 -psnr -y %%~nF.flv & flvmeta.exe -U %%~nF.flv)

Leave a Reply