Ликбез по Linux

Делаем скринкасты


Дайте народу скринкастов

Скриншоты - это даже не вчерашний день, это вчерашний век. На дворе HTML 5, YouTube, дающие возможность размещать видеоролики на собственном интернет-ресурсе. И теперь в моде скринкасты. Поэтому для тех, кто ведёт блоги, скринкаст - вещь в скором времени обязательная. Ниже рассмотрим инструменты создания скринкастов в системах GNU/Linux.

Скринкаст (англ. - screencast) - цифровая видеозапись, производимая непосредственно с экрана компьютера. В таких видеозаписях авторы обычно демонстрируют определенные моменты работы с системой или отдельными программами.

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

Для создания скринкастов в Linux имеется несколько программ. Есть среди них и приложения с графическим интерфейсом, есть консольные версии, есть даже экзотические терминальные, записывающие стандартный текстовой поток вывода stdout. Рассмотрим более подробно их возможности.


Графические скринкастеры

Начнём с графических программ для создания скринкастов. Стандартными здесь являются Istanbul, RecordMyDesktop, XvidCap. Обычно именно они включены в стандартные репозитории дистрибутивов GNU/Linux.

Самая простейшая из них - это Istanbul. При её запуске в трее появляется значок в виде красного кружка. Клик на нём правой кнопкой мыши вызывает небольшое меню, где можно выбрать записываемую область экрана или окно приложения, отображение курсора, запись аудиокомментариев и относительные ширину и высоту записываемого скринкаста. Запись начинается после клика левой кнопкой по этому значку.

Сохраняется видеозапись в формате только Ogg Theora. Выбор параметров видеофайла в программе отсутствует. К тому же в версии для Ubuntu 10.10 качество видеокартинки оставляет желать лучшего. Хотя, возможно, это частная проблема этой версии системы.

GTK-RecordMyDesktop - ещё один стандартный скринкастер для систем GNU/Linux. Так же, как и Istanbul, программа при запуске отображается в трее красным кружком.

Однако сразу после запуска появится окно предварительных настроек видеозаписи. В общих настройках можно указать качество видео, включить звук, выбрать отдельное окно для видеозаписи.

Но в окне настроек RecordMyDesktop есть ещё кнопка "Дополнительно", которая вызывает окно с возможностью настройки дополнительных параметров. В этом окне на закладке "Файлы" можно установить рабочую папку для временных файлов. На закладке "Быстродействие" включается или отключается сжатие видеофайла, устанавливается количество кадров в секунду. На вкладке "Звук" есть опция выбора аудиосервера JACK, который обычно используют музыкальные программы. Вкладка "Разное" позволит настроить параметры видимости мыши и обрамления экрана.

RecordMyDesktop сначала записывает видео в несжатом виде, а после остановки записи производит перекодирование этого несжатого видео в формат Ogg Theora. Хотя в опциях можно включить перекодирование на лету.

Проблемой RecordMyDesktop оказалась нестабильная работа программы с аудиосервером JACK в Ubuntu 10.10. Опять-таки, она может быть частной проблемой конкретной версии дистрибутива или JACK.

Следующим скринкастером у нас идёт XvidCap. При запуске этого приложения появится только полоска тулбара программы, внизу которого красной рамкой очерчена прозрачная область экрана, которая и будет записываться в качестве скринкаста. Эту область можно перемещать, а также увеличивать и уменьшать с помощью мышки.

Главное меню настроек вызывается правой кнопкой мыши по названию сохраняемого файла с правой стороны тулбара. Из этого меню можно вызвать окно "Preferens" с многочисленными опциями настроек. Здесь можно установить отображение мыши, количество кадров в секунду, формат и видеокодек, аудиоформат, качество видео.

В меню можно настроить и вспомогательные программы, например, для просмотра видео. В качестве внешнего проигрывателя используется Mplayer.

Программа на английском языке. Это, наверное, можно назвать её недостатком для русскоязычного пользователя.

И в заключение темы скринкастеров с графическим интерфейсом упомянем добрым словом программу Kazam. В официальном репозитории её может не быть. Но, например, для Ubuntu ppa-репозитории этой программы можно узнать по адресу https://launchpad.net/kazam.

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

Записывает видео Kazam в формате H.264, при этом используется видеоконтейнер MKV. Формат аудио FLAC.

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


Консольный способ

Linux - это не только графический интерфейс, но и командная строка. И, конечно же, в этой системе имеются возможности создавать скринкасты при помощи консольных утилит.

Например, очень хорошо подходит для снятия и кодирования скринкастов утилита конвертирования мультимедиа FFmpeg. Единственное, нужно учитывать, чтобы программа была собрана с поддержкой опции "- -enable-x11grab" и рядом популярных кодеков. Для этого FFmpeg лучше устанавливать из таких репозиториев, как Medibuntu и Debian-multimedia.

Для создания при помощи FFmpeg скринкаста можно набрать в консоли следующее магическое заклинание:

ffmpeg -f x11grab -s 1280x720 -r 25 -i :0.0 -vcodec qtrle screencast.mov

Что в переводе на человеческий язык означает:

  • -f x11grab - брать поток с экрана
  • -r 25 - 25 кадров
  • -s 1280x720 - разрешение экрана монитора
  • -i :0.0 - в качестве источника экран монитора
  • -v codec qtrle - кодек Apple Quicktime Animation (RLE)
  • screencast.mov - выходной файл

В данном случае опция -s должна соответствовать вашему разрешению монитора. Для остановки создания скринкаста нужно в консоли нажать клавишу "q".

В качестве выходного видеоформата здесь используется кодек без потерь Apple Quicktime Animation (RLE). Этот формат обеспечивает хорошее качество видео, хотя и при не очень маленьких размерах конечного видеофайла. Однако, FFmpeg - это ведь мощный конвертор видео, и мы можем сохранять видео в любом поддерживаемом им формате. Например, во многих случаях хороший результат может показать формат lossless H.264. Часто именно смена выходного формата помогает решить проблемы с качеством скринкаста в той или иной программе. Для этого опция видеокодека должна выглядеть, например, так:

-vcodec libx264 -vpre lossless_ultrafast screencast.mkv

Из дополнительных опций для Ffmpeg можно назвать следующие:

-f alsa -i pulse - захват аудио через pulseaudio с микрофона;

-acodec pcm_s16le - для примера используем аудиоформат WAV PCM;

-ss 00:00:10 - подождать 10 секунд перед началом записи скринкаста.

Но все возможные дополнительные опции Ffmpeg - это совершенно другая тема, которая требует отдельного разговора.


Настоящий терминальный скринкаст

В Unix-системах иногда возникает ситуация, когда нужно записать последовательность производимых в консоли действий, а потом их воспроизвести. Можно, конечно, использовать видеоскринкаст. Однако в Linux имеется более оригинальный способ записи и воспроизведения консольных команд.

Делается это при помощи консольных программ script и scriptreplay. В Ubuntu и Debian GNU/Linux эти команды входят в состав пакета bsdutils.

Чтобы начать запись последовательности операций, нужно ввести следующую команду:

script -t 2>timefile typescript

Данная команда выдаст сообщение "Скрипт запущен, файл - typescript". Затем последовательность команд, а также их вывод в консоль будут записаны в файл typescript. А в файл timefile будут записаны отметки времени, в которые происходили ввод и вывод. Остановить запись нужно комбинацией клавиш Ctrl+D.

Чтобы проиграть полученную запись, следует запустить скрипт scriptreplay:

scriptreplay timefile typescript

В результате в консоли будет воспроизведён весь записанный ранее в консоль символьный вывод. Поэтому script может быть хорошим и оригинальным средством записи, например, ASCII-анимации.


Постпроцессинг

Как видим, при помощи имеющихся программ создания скринкастов в Linux можно сделать только видеозапись экрана, отдельного окна программы или же части экрана. Можно ещё захватить аудио с микрофона.

Но этого всё-таки недостаточно для полноценного качественного скринкаста. Полученные видеозаписи требуют дальнейшей обработки, то есть постпроцессинга.

Например, захочется добавить красочную заставку или субтитры. Да и просто обрезать видео с начала или с конца. Всё это придётся делать во внешних программах - видеоредакторах.

Видеоредакторы - отдельная тема. Но для дальнейшей обработки видео при создании скринкастов, чтобы избежать проблем, нужно не забывать несколько простых правил.

Компьютер для скринкастинга должен быть достаточно мощным как по процессорной мощности, так и по дисковому пространству. Например, запись скринкаста 1024х768 на двухъядерном Core Duo 2,5 GHz загружает оба ядра на 70-80%.

Также аппаратное ускорение поможет процессу создания скринкастов.

Желательно использовать сохранение видео в формате с минимальным сжатием. Так как при сжатии видео теряется качество, а дальнейшее редактирование ещё больше это качество снижает. Но минимальное сжатие видео потребует много места на жёстком диске.

Программы могут одновременно записывать звуковой комментарий с микрофона, но рекомендуется всё-таки делать аудиозапись отдельно. Тем более, можно ещё и музыку наложить на видеоряд.

В случае проблем с качеством видео, вероятно, поможет отключение 3D-эффектов рабочего стола. Как мы упоминали выше, часто при проблемах с качеством видео помогает сохранение скринкаста в другом видеоформате.

Михаил АСТАПЧИК

Версия для печатиВерсия для печати

Номер: 

09 за 2011 год

Рубрика: 

На заметку
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!