Mencoder: Резка/Склейка/Кодирование видео

Недавно надо было разбить видео на части и потом преобразовать в более компактный размер. Я очень часть использую утилиту mencoder/mplayer, поэтому решил не прибегая к каким либо редакторам вырезать куски видео, а потом склеить их вместе.

Определять место выреза можно запустив mplayer в командной строке, он будет выводить текущую секунду видео. Разрезать видео будем при помощи опций -ss и -endpos начальная позиция и длина куска. Чтобы автоматизировать процесс нарезки, я написал скриптик на python (кстати использовал Test Driven Development). Скриптик можно взять с репозитория MyTools на github или скачать по прямой ссылке slice_video.py Пример использования скрипта:

python3 slice_video.py bigvideo.avi part-{}.avi 0-1213 1521-2992 3286-4601 4845-6089 -loadidx separate.idx

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

mencoder part-0.avi part-1.avi part-2.avi part-3.avi -oac mp3lame -lameopts vbr=3:mode=2:br=128 -of avi -ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b -o result_video.avi

Еще ссылочка про параметры x264. Да и еще если набрать help в место значений у какого-либо параметра mencoder выведет справочную информацию по этому параметру, иногда более подробную чем в man.

Например:

mencoder -lameopts help | head