29 Ноя

Записываем видео с дисплея в Linux

Не знаю каким образом, но очень много людей попадают на мои страницы с поисковых запросов о способе записать видео с экрана в linux.
Исправляю страшное упущение и рассказываю о простейшем варианте.

Для записи нам понадобится программа recordmydesktop, которая сегодня есть в любом репозитории linux-дистрибутива. Но поскольку эта программа записывает поток в формат *.ogv, который тот же ютьюб не понимает, его необходимо сконвертировать во что-то более популярное. Для этого я люблю использовать mencoder, который тоже есть везде.

И так. Если необходимо записатьсодержимое всей области экрана, то достаточно просто набрать в консоли recordmydesktop и все. По завершении можно просто нажать Ctrl+C, все остальное сделает сама программа.
Но чаще надо записать содержимое не всей области экрана, а лишь конкретное окно. Разработчики recordmydesktop рекомендуют это окно помещать в самый верхний левый угол экрана и в параметрах передавать ширину и длину записываемой области. Для меня это крайне неудобно и вообще звучит бредово. Поэтому я предлагаю поступать иначе.

Открываем окно, содержимое которого необходимо будет записывать. И смотрим его идентификатор в системе. Смотреть можно таким образом:

xwininfo | grep «Window id:»|sed -e «s/xwininfo\:\ Window id:\ // ;s/\ .*//»

после этого ваш курсор примет вид крестика, которым надо клацнуть по нужному окну. После этого вы полчите его идентификатор, который необходимо указать в параметрах, например:

recordmydesktop -windowid=0x360001e

Или сразу

recordmydesktop -windowid $(xwininfo |grep «Window id:»|sed -e «s/xwininfo\:\ Window id:\ // ;s/\ .*//» )

Для конвертации можно использовать

mencoder out.ogv -ovc xvid -xvidencopts pass=1 -o output.avi

14 Мар

Изменение разрешения видео в Linux

В этом поможет любимый mencoder:

$ mencoder input.avi -o out.avi -of lavf -oac copy -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=420:-2

Здесь указан размер только горизонтальной (стороны -vf scale=420:-2), вертикальная изменится автоматом пропорционально

09 Фев

Режем видео в Linux

Была у меня видяха одна, которую надо было разрезать на 2 части (просто вторая часть была не нужна).
Покажу на примере, как я mencoder’ом проделал сабж.

Видеофайл — video.wmv.
Нам надо знать время длительности первого куска, до которого мы будем резать.

$ mencoder vode.wmv -endpos 33.920 -o video_part1.avi -oac copy -ovc copy

Можно резать и исходя из требуемых размеров конечного файла. Тогда необходимо узнать временную позицию, соответствующую требуемому объему. Допустим, нам необходима первая часть файла, которая будет весить 20Мб. Сделать это можно так:

$ mencoder -ovc copy -oac copy -endpos 20mb -o /dev/null video.wmv

В итоге смотрим последнюю запись вывода, к примеру:

Video stream: 1880.602 kbit/s (235075 B/s) size: 8678976 bytes 36.920 secs 923 frames

Вот в конце мы и видим точное время — 36.920 secs