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