Програми для захоплення відео з екрану для Linux

  1. Istanbul (http://live.gnome.org/Istanbul)
  2. Wink (http://www.debugmode.com/wink/)
  3. Редагування проекту.

Розповідаючи про інтерфейс або порядку роботи з тією чи іншою програмою, дуже важко обійтися без знімків з екрану. На пальцях не передати переваги і недоліки інтерфейсу, важко вказати на конкретну кнопку, яку необхідно натиснути користувачеві, щоб виконати конкретну операцію. Можливо, тому сьогодні стають все більш популярними відеопосібника розповідають і головне показують процес виконання конкретного завдання. Раннє для того щоб створити таке відеопосібник в Linux, доводилося вдаватися до допомоги віртуальних машин, або запускати додатки написані для Windows через Wine. Тепер ситуація змінилася, так як з'явилися зручні інструменти дозволяють створювати готові презентаційні ролики розповідають про роботу програм. Познайомитися з цими проектами.

При написанні статті використані дистрибутив Kubuntu, але всі програми з успіхом працюють і в інших дистрибутивах.

Для початку подивимося, що пропонує нам репозитарій Kubuntu.

$ Sudo apt-get update

$ Sudo apt-cache search recorder

Зі списку виведених проектів нас цікавить тільки два.

byzanz - Byzanz is a desktop recorder. It records to GIF.

istanbul - Desktop session recorder

Їх і будемо ставити.

$ Sudo apt-get install istanbul byzanz

...

НОВІ пакети, які будуть встановлені:

byzanz gstreamer0.8-misc gstreamer0.8-theora gstreamer0.8-x istanbul libgstreamer-gconf0.8-0

libgstreamer-plugins0.8-0 libgstreamer0.8-0 python-gst

Необхідно завантажити 2467kБ архівів.

Після розпакування об'єм зайнятого дискового простору зросте на 8131kB.

Як бачите, apt в черговий раз врятував нас від пошуку залежностей. Тепер будемо знайомитися з ними докладніше.

Istanbul (http://live.gnome.org/Istanbul)

Дуже зручний і головне простий в роботі інструмент. Використовує GTK бібліотеки. Результат роботи зберігається в відеофайл кодований вільним кодеком Ogg Theora. Як варіант можна передати створений потік сервера Icecast для трансляції по мережі. Для запуску програми викликаємо консоль і даємо команду.

$ Istanbul &

Після чого в панелі завдань з'явиться кнопка. Натискаємо на ній правою кнопкою мишки і в меню вибираємо Preferences. З'явиться вікно настройки Istanbul.

В поле Video вказуємо розміри і частоту кадрів (Frames per seconds) майбутнього відеофайлу.

Для того щоб результат зберігався на жорсткий диск, встановіть прапорець в Save To Disk, а в Filename вкажіть каталог і ім'я файлу з розширенням ogg. Поле Network Stream призначене для направлення потоку на Icecast сервер. Заповнюємо параметри ім'я сервера (hostname), порт, точку монтування (Mountpoint) і пароль для доступу. Коли всі параметри заповнені, натискаємо на Close, і для того щоб почати запис, просто клацаємо мишкою по кнопці на панелі завдань.

В репозитарії знаходиться версія 0.1.1 «Transfer Window» на сайті вже доступна 0.2.1 «Freedom to record speech». При цьому deb пакет доступний на сайті зібрано для Debian. І якщо ви хочете користуватися цією версією в Kubuntu, доведеться зібрати Istanbul з вихідних текстів. Нічого складного в цьому немає: розпаковуємо і далі стандартні ./configure, make і make install. Тільки перед конфигурированием необхідно доустановити наступні пакети.

$ Sudo apt-get install libxml-parser-perl libgstreamer0.10-dev

Byzanz (http://www.freedesktop.org/~company/byzanz/).

На відміну від Istanbul Byzanz зберігає результат в GIF файл, який за розміром на порядок менше. Працює тільки з командного рядка. Найпростішим варіантом використання, є така команда.

$ Byzanz-record -c record.gif

У цьому випадку буде записано все, що відбувається на робочому столі. Опція -з вказує, на те щоб фіксувався і курсор мишки. За допомогою інших опцій byzanz можна вказати на конкретну частину екрану, з якої необхідно записати інформацію.

$ Byzanz-record -c -d 2 -x 10 -y 10 -w 200 -h 300 record.gif

Опції x і y задають початкову точку координат, а w (-width) і h (-height) відповідно відстань від неї в пікселях по ширині і висоті екрану.

За замовчуванням запис починається через секунду після введення команди, і зупиняється через 10 секунд. Використовуючи опції -d (-duration) і -delay можна виставити будь-який час затримки і записи. Наприклад, використовуючи наступну команду можна почати записи через 5 секунд, запис при цьому буде проводитися протягом 100 секунд.

$ Byzanz-record -c -duration = 100 -delay = 5 record.gif

На цьому проекти дозволяють записати те, що відбувається на робочому столі доступні в репозитарії Kubuntu закінчилися, але це не все що сьогодні є для Linux.

Наприклад, утиліта ffmpeg з однойменної колекції FFmpeg (http://ffmpeg.mplayerhq.hu/), не тільки вміє конвертувати практично в / з будь-якого відео або аудіоформату і захоплювати вигляді з декількох сісточніков. При накладенні спеціального патча можна записувати події відбуваються на робочому столі в відео файл. Доступний в репозитарії Kubuntu ffmpeg зібраний без цього патча, тому його необхідно пере зібрати.

Викачуємо вихідні тексти ffmpeg.

$ Wget http://un.sh.nu/screencasts/ffmpeg-0.4.9-p20051216.tar.bz2

І патч до нього.

$ Wget http://un.sh.nu/screencasts/ffmpeg-0.4.9-p20051216.diff

Розпаковуємо архів.

$ Tar xjfv ffmpeg-0.4.9-p20051216.tar.bz2

$ Cd ffmpeg-0.4.9-p20051216

І накладаємо патч.

$ Patch -Np1 -i ffmpeg-0.4.9-p20051216.diff

Перед компіляцією нам буде потрібно ще кілька пакетів.

$ Sudo apt-get install build-essential xlibs-dev

Конфігуріруем, опція -enable-x11grab якраз додає можливість захоплення відео з екрану.

$. / Configure -enable-x11grab -enable-gpl

І далі make; make install. Ось один із прикладів, що дозволяють захопити відео з екрану.

$ Ffmpeg -vcodec mpeg4 -b 800 -r 25 -vd x11: 0,0 -s 1024 × 768 video.avi

Що ми тут набрали. Опція -vd x11: 0,0 говорить, що захоплюємо відео з Х-сервера, початкові координати 0 і 0 тобто лівий верхній кут. Опція -s 1024 × 768 вказує на розмір копії. Опції b, r і g ставляться до кодування відео. Так b відповідає за бітрейт, r кількість кадрів в секунду. Підставивши в параметр висновок команди xwininfo -frame, ви можете захопити відео з вибраного вікна програми.

Wink (http://www.debugmode.com/wink/)

Вельми зручна, потужна і проста у використанні програма, написана з використанням wxWidgets. На відміну від інших програм Wink не поширюється з відкритим вихідним кодом, але є вільною для персонального і бізнес використання. З його допомогою можна робити знімки з екрану, додавати до них коментарі, підписи і кнопки для переходу між кадрами. На виході отримуємо flash файл, який потім можна потім програти в будь-якому програвачі, котра розуміє Flash формат, починаючи з версії 3 або веб-браузері. До речі Winkумеет генерувати і html код необхідний для перегляду файлу браузером. Якщо потрібна готова презентація на персональному комп'ютері, то можна використовувати скомпільований ехе файл, якщо потрібно роздруківка, то підійдуть PDFлібо PostScript. Хоча природно Flash файл більше підходить для схематичного уявлення дій користувача, тоді як відео більш кращий в разі швидких змін і складних зображень. Крім захоплення знімка екрана, в якості вхідної інформації можна використовувати графічні файли різних форматів BMP / JPG / PNG / TIFF / GIF. Для зручності можна створити шаблон, який потім використовувати багаторазово. У момент написання цих рядків на сайті проекту була доступна версія 1.5 Wink для Linux Wink, для Windows 98 / ME / 2000 / XP вже була більш нова версія 2.0.

Установка складнощів не викликає, потрібно розпакувати архів і запустити скрипт installer.sh.

$ Tar xzvf wink15.tar.gz

installdata.tar.gz

installer.sh

$ ./installer.sh

Please specify where you want to install Wink [/ home / grinder / wink]:

Successfully installed Wink

І запускаємо.

$ / Home / grinder / wink / wink

При роботі з Wink дозвіл екрана бажано встановити не менше 800 * 600, краще 1024 * 768. Тоді вам буде доступна велика область для редагування. Для створення нового проекту вибираємо "File - New", після чого запуститься майстер (Wizard). На першому кроці скориставшись списком, що випадає, вибираємо область захоплення.

Це може бути весь екран (Screen), окреме вікно (Window), або частину екрану (rectangle). Останній параметр можна вибрати як, довільно вказавши розміри в вікні Region, або скористатися одним з попередньо встановлених значень. Для вказівки вікна або довільної області екрану скористаємося кнопкою "Choose". Натискаємо її і за допомогою миші окреслюємо потрібну область, або вікно програми, після чого клацаємо лівою кнопкою миші. У вікні Region при цьому повинні з'явитися дані нової області, які можна підкоригувати вручну. Щоб прибрати вікно Wink, яке буде заважати при вказівці області, ставимо галочку в "Hide Wink Window". У вікні "Timed Capture Rate" виставляємо кількість знімків екрана, яке буде виробляти Wink в секунду, хвилину або годину. Після натискання на ОК переходимо до другого вікна майстра.

Після натискання на "Minimaze To Tray" Wink сховається в трей (якщо звичайно він є в використовуваному віконному менеджері) і буде чекати команду на запуск процесу запису. За замовчуванням натискання на клавішу "Pause" призведе до захоплення одиночного зображення, комбінація "Shif + Pause" запустить / зупинить автоматичний захват. Після того як запис виконана, викликаємо подвійним клацанням по значку майстер і натискаємо Finish. З'являється вікно редагування проекту.

Редагування проекту.

Ось тут видно як Wink відрізняється від інших проектів, про які розповідалося раніше. Візуально вікно редагування розбите на три частини. По середині відображається кадр над яким проводиться редагування, внизу показані зменшені зображення всіх кадрів проекту, і справа показано вікно властивостей (Properties).

Команди редагування можна викликати з меню, за допомогою вікна властивостей розташованого праворуч або скориставшись гарячими клавішами. Над кадрами розташованими внизу можна проводити будь-які дії: вирізати, копіювати, видаляти, вставляти кадри з буфера обміну, копії або порожні кадри. Також за допомогою меню "Project" можна обрізати (Crop All Frames) або змінити розмір всіх кадрів проекту (Resize All Frames).

Ще однією особливістю Wink є те, що можна відредагувати не тільки положення курсору, але і змінити його форму.Включаем показ курсора вибравши "Сursor". Для вибору нового курсору натискаємо "Ctrl + R", або піктограму біля галочки. У вікні вибираємо вид курсора і натискаємо ОК. Якщо курсор з'явився не на своєму місці, клацаємо по ньому у вікні поточного кадру і перетягуємо його на місце. Після компіляції проекту час показу кожного кадру однаково для всіх. Поставивши необхідну цифру в поле "Stay in this frame for time" можна затримати показ кадру, щоб користувач зміг докладніше розглянути органи управління, або для більш докладного пояснення ситуації. Кожен кадр може мати підпис. Для цього вибираємо "Frame Titles" і за допомогою миші перетягуємо область, куди буде поміщена підпис на потрібне місце. Тут же вибираємо шрифт і вирівнювання, потім вводимо пояснювальний текст в кожному кадрі. Якщо в будь-якому кадрі підпис не потрібний, то в вікні необхідно ввести пробіл, інакше після компіляції в цих кадрах буде видно напис "This frame's title will come here ... '". Таким же чином можна додати і текстове поле. Активуємо вибором "Textbox", вибираємо загальний вигляд "Choose Callout", шрифт і вирівнювання. При включенні текстового поля автоматично активуються кнопки "Back" і "Next". За допомогою мишки їх можна перетягнути в будь-яке місце екрану. При перегляді презентації в місцях, де розташовані кнопки відтворення буде зупинятися, і чекати дії користувача. В інших кадрах ці кнопки можна активувати, встановивши галочку навпроти потрібного пункту у вікні властивостей. При ознайомленні з потрібним матеріалом для уточнення дуже часто доводиться звертатися до інших кадрів. В Wink можливо виставити перехід на два довільних кадру за допомогою кнопок Go. Для активації такої кнопки вибираємо "Goto Button 1 (2)" і потім клацанням по піктограмі розташованої поруч, де вказуємо на номер кадру до якого повинен бути зроблений перехід. При необхідності замість кнопок можна використовувати зображення. Для цього вибираємо "Project - Choose Goto Button Image 1 (2)" і вказуємо на файл з розширенням bmp, jpeg, png, cur, ani, ico, pcx і pnm. У цьому ж пункті можна вибрати зображення для кнопок "Back" і "Next", а також фонове зображення кадрів проекту. Коли всі кадри підготовлені зберігаємо проект в файл з розширенням wnk. Залишилося скомпілювати результат. Спочатку натискаємо "Project - Setting" (F3), вказуємо ім'я вихідного файлу, формат (swf або exe) і частоту кадрів, натисканням ОК зберігаємо налаштування. Тепер "Project - Render" (F7) і очікуємо, закінчення компілювання, час буде залежати від продуктивності комп'ютера, кількості та розміру кадрів, а також наявності додаткових елементів управління. У разі вибору flash формат, то в результуючому каталозі виявите два файли swf і html. Для експорту в інші формати загляньте в меню "File".

Все, відео посібник готове його можна публікувати на сайті і відсилати користувачам.

Linux forever!