FFmpeg: кодирование видео
Для одного из проектов(фильмы онлайн) потребовалось сконвертировать огромное количество видео в mp4 с качеством, оптимальным для онлайн вещания.
В качестве инструмента для кодирования, естественно, был выбран 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.flvflvmeta.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)