Скринкаст (screencast) — цифровая видео- и аудиозапись, производимая непосредственно с экрана компьютера, так же известная как video screen capture (досл. видеозахват экрана). (Wikipedia)

Общие замечания и рекомендации

Запись с экрана монитора, как и любая другая видеозапись, требует обработки очень большого объёма информации и требует больших ресурсов от всех подсистем компьютера, а именно:

  • Изображение, выводимое на монитор, формируется в связке видеокарта+драйвер: работающее аппаратное ускорение графики 2D и 3D очень сильно поможет в процессе захвата изображения. Должны быть установлены и правильно функционировать драйвера для видео.
  • Данные первоначально копируются в оперативную память для предварительной обработки. Чем больше ваше рабочее разрешение монитора (или записываемая область экрана), чем большее число кадров в единицу времени вы хотите получить - тем больше памяти будет использовано. Закройте все неиспользуемые приложения и остановите ненужные сервисы перед записью скринкаста.
  • Обработка данных производится процессором: изображения, полученные с экрана, анализируются/перекодируются… Хороший, многоядерный процессор будет очень кстати. Запись скринкаста с одноядерным процессором будет очень затруднительна. И да, ещё не говорилось, что надо завершить работу ненужных в процессе записи скринкаста программ? Они тоже используют процессор и будут мешать.
  • Некоторые программы позволяют производить запись без сжатия-кодирования видео (или с неким специальным «быстрым» сжатием). Обычно подобные режимы очень существенно экономят мощность процессора, которая может потребоваться программам, которые вы собираетесь демонстрировать.
  • Но при этом объем выходных данных становится существенно (в разы или десятки раз) больше, чем при кодировании в реальном времени. Обычно это сильно нагружает дисковую подсистему ПК, что может быть также проблематично, если на используемом для записи диске у вас мало места, сам диск работает медленно или это сетевой диск.
  • Кроме того, надо заметить, что режим без кодирования потребует последующей обязательной постобработки видео прежде, чем оно будет готово для дальнейшего использования вами. Компьютеру может быть и всё равно, но время - тоже ресурс.
  • Если вы записываете экран удалённой системы (да, это тоже возможно с использованием протоколов VNC, RDP или NX) - есть вероятность проблем в сетевой подсистеме и надо удостовериться в надёжной работе соединения (в идеале это локальная сеть, т.е. быстрое прямое соединение).
  • Во время записи видео с экрана обычно можно записать также и аудио комментарии. Это полезная функция многих программ, но при нехватке ресурсов эту возможность лучше отключить. Можно заранее написать план/текст и проговаривать во время записи видео, а затем записать голос отдельно, без суеты и запинок. Можно воспользоваться диктофоном или мобильным телефоном для записи или вторым компьютером/ноутбуком/нетбуком. Звуковую дорожку в последствии легко можно наложить на видео, добавив, например, музыку или эффекты.
  • Проверьте, как всё будет работать, проведя короткую тестовую запись в процессе работы именно того приложения, которое вы будете записывать. Многие игры могут не оставить программе записи ни одного байта памяти или цикла процессора…
  • Попробуйте различные режимы работы как записываемых программ, так и программы снятия скринкаста. Сравните результирующие ролики на стабильность и качество видео.
  • Если нет жестких требований, то при недостаточной производительности системы лучше ограничьте записываемую область экрана или уменьшите разрешение экрана.
  • Для большинства случаев вполне приемлема частота записи кадров видео от 10 до 15. Не следует гнаться за числами FPS 24, 25, 30 или 60.
  • Выбирая формат и качество записываемого видео старайтесь придерживаться стороны качества картинки - некоторые кодеки сильно искажают цветопередачу, большие однотонные пространства или резкие переходы цвета (что характерно для изображения интерфейсов компьютерных программ). Сделайте предварительные тесты и оцените заранее.
  • Возможно, в вашем случае поможет отключение 3D-эффектов рабочего стола и установка однотонной картинки рабочего стола?
  • Придумайте, а лучше запишите план скринкаста на листочек. Попробуйте проделать все требуемые операции без записи. Экспромт - хорошо, но готовиться тоже полезно.

Программы записи рабочего стола Ubuntu

Данные программы протестированы на Ubuntu 10.04 Lucid Lynx.

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

sudo apt-get install keymon

Kazam

sudo add-apt-repository ppa:kazam-team/stable-series
sudo apt-get update
sudo apt-get install kazam

Kazam в репозитории Ubuntu 11.10 имеет некоторые баги, которые исправлены в версии из этого ppa: ppa:bigwhale/kazam-oneric

vokoscreen

Есть на сайте http://www.kohaupt-online.de/hp/

Записывает без лагов. Подходит для LetsPlay'ев

Gui Нет постобработки. Трей. 3D

Istanbul

Есть в репозитории. Честно пытается работать, но у неё почти не получается. При записи небольшого фрагмента экрана запись вполне приличного качества. Файл остаётся во временной папке /tmp со случайным именем, так как программа аварийно завершает работу после процесса записи/кодирования. Или зависает и значок записи остаётся в системном трее до снятия процесса вручную.

GUI. ?Постобработка? Трей. 3D.

XVidCap

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

GUI. Командная строка. Нет постобработки. Авто 3D. Следование за мышью.

Установка:

sudo apt-get install imagemagick libavcodec-extra-53 mplayer
sudo apt-get -f install
wget -O xvidcap_1.1.7_i386.deb http://goo.gl/5yFJQ
sudo dpkg -i xvidcap_1.1.7_i386.deb

[Gtk-]RecordMyDesktop

Есть в репозитории. Тоже одна из самых популярных программ для скринкастинга. Если вкратце - просто работает. Настройки по умолчанию вполне позволяют записывать полный экран и получать хорошее качество, так как применяется постобработка и использование процессора при записи меньше. К сожалению формат вывода - не изменяемый OGG Theora, что с одной стороны хорошо - не требуется устанавливать дополнительных кодеков ни для записи, ни для воспроизведения, но с другой стороны это не самый оптимальный формат.

Кроме того в 10.04 в настоящее время, в связи с переходом на новую версию кодека Theora, различные мультимедийные программы имеют проблемы с видеофайлами OGG. Стандартный Totem вполне хорошо проигрывает получаемое видео, Vlc - с трудом, а утилита Ffmpeg из репозиториев практически непригодна для конвертации видео из этого формата. И самое печальное, что Kdenlive, имеющий функцию записи скринкастов и использующий для этого консольную версию RecordMyDesktop, также не в состоянии правильно декодировать полученное видео. И даже встроенный редактор видео PiTiVi имеет проблемы при работе и кодировании файлов с видеокодеком Theora.

Тем не менее, Gtk-RecordMyDesktop можно считать лучшим выбором, чтобы начать самостоятельно записывать скринкасты.

GUI. Командная строка. Трей. Постобработка. Авто 3D. Следование за мышью.

VLC

Командная строка

VLC гибкий мультимедийный пакет, среди возможностей которого запись на диск и трансляция в сеть видео и аудио.

VLC не поддерживает передачу видео по сети в формате MP4, лучше использовать OGG
За наиболее полной информацией следует обратится к документации

man vlc

vlc -h | less

Команда запуска

Если графический интерфейс не нужен, то следует вместо команды vlc использовать cvlc.

Запись звука с выхода системы требует использования «PulseAudio». Вход аудио, с которого будет вестись запись, можно изменить «на ходу» с помощью «Pulse Audio Volume Control», что требует установки пакета «pavucontrol»

sudo apt-get install pavucontrol

Но, желательно явно указать откуда будет производится захват звука в параметрах запуска «VLC». Сперва необходимо узнать список доступных аудио-входов для записи. Команда

pacmd list-sources | grep "name:"

выведет похожий список

name: <alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor>
name: <alsa_input.usb.analog-mono>
name: <alsa_output.pci-0000_00_14.2.analog-stereo.monitor>

Строчка заключённая в скобки есть название входа для записи. Слово «.monitor» в конце означает, что это интерпретация аудио-выхода как входа, то, что обычно и нужно для скринкаста. Таким образом, если «alsa_output.pci-0000_00_14.2.analog-stereo» это аудио-выход на который системой выводится звуковой сигнал (на него можно вывести сигнал, но не записать с него), то «alsa_output.pci-0000_00_14.2.analog-stereo.monitor» это он же, только доступный для считывания (записи).

С учётом вышесказанного, команда запуска «VLC» может иметь вид

cvlc \
    screen:// --screen-fps=25.000000 \
    --input-slave=pulse://alsa_output.pci-0000_00_14.2.analog-stereo.monitor \
    --live-caching=100 \
    --sout "#transcode{vcodec=h264,vb=8000,scale=0.5,acodec=mpga,ab=128,channels=2,samplerate=44100}:file{dst=/tmp/MyScreenCast.mp4}"

Здесь, screen:// – запись видео с экрана; screen-fps – частота кадров; pulse://alsa_output.pci-0000_00_14.2.analog-stereo.monitor – запись аудио с системного выхода; vcodec – видео кодек; vb – битрейт видео; scale – масштабирование изображения; acodec – аудио кодек; ab – битрейт аудио. Более подробную информацию смотрите в документации к «VLC» (ссылки выше).

Завершить запись можно однократным нажатием Ctrl+с в консоли.

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

Пример как можно делать скринкасты с помощью VLC в графическом интерфейсе.

  1. Запускаем VLC.
  2. Медиа/Открыть устройство захвата (Ctrl+C)
  3. Выбираем режим захвата: Desktop
  4. Желаемая частота кадров (например 16)
  5. Выбираем пункт: Показать дополнительные параметры
    (Параллельно можно проигрывать другой медиафайл (Вашу музыку)
  6. Конвертировать (Alt+C)
  7. Адрес: Конечный файл
    Жмем: Обзор - Выбираем путь и имя нашего файла в который будет сохранятся видеопоток (Сохранить). В настройках перекодирования можно выбрать желаемый профиль.
  8. Начать.
  9. По окончании записи жмем «Останов».

FFmpeg

  • Устанавливаем FFmpeg:
sudo apt-get install ffmpeg
  • Запускаем запись:
ffmpeg -f x11grab -s 1280x800 -r 25 -i :0.0 -vcodec qtrle screencast.mov
  • Запускаем запись со звуком:
ffmpeg -f alsa -ac 2 -i hw:0,0 -acodec pcm_s16le -f x11grab -s 1280x800 -r 25 -i :0.0 -vcodec qtrle screencast.mov

* файл сохранится в домашнюю директорию

  • Смотрим так же главу: Видеозахват средствами ffmpeg из русскоязычного мануала по ffmpeg http://help.ubuntu.ru/wiki/ffmpeg
Контейнер .mov выбран не случайно, он поддерживает сохранение кадров без перекодирования, что снизит нагрузку на ЦП при записи скринкаста.
Так как мы сохраняем без сжатия, конечный файл будет довольно большой. Следите за тем, чтобы на разделе куда будет сохранятся файл было достаточно места.
Ключ Описание
-f x11grab источник сигнала
-i :0.0 экран X-сервера / номер монитора
-s 1280×800 захватываемое разрешение экрана1)
-r 25 количество кадров в секунду
screencast.mov имя выходного файла
  • Теперь можно сжать в нужный формат, к примеру flv, так как качество все равно будет невысокое:
ffmpeg -i screencast.mov screencast.flv

Источник

Запись терминала

Для записи текстовых консольных скринкастов вы можете воспользоваться утилитой shelr.

Shelr можно взять в PPA для Precise:

sudo add-apt-repository ppa:antono/shelr
sudo apt-get update
sudo apt-get install shelr

Или установить самую новую версию через rubygems:

sudo apt-get install rubygems
sudo gem install shelr  

Начало записи: shelr record Завершение записи: exit или Ctrl+d Сохранение последней записи: shelr dump last Публикация последней записи: shelr push last

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

shelr play http://shelr.tv/records/4f427daf96a5690001000003003.json

Для просмотра в браузере посетите адрес который вернет вам команда shelr push Например вот такой: http://shelr.tv/records/4f427daf96a5690001000003

Запись окна виртуальной машины

Пробный скринкаст: Youtube (ориг. 800х600). Сделан на базе Windows.

Используется:

  • VMWare Workstation 7 (виртуальная машина)
  • Camtasia Studio 7 (запись скринкаста)
  • Adobe Premiere CS5 (монтаж видео)
  • Adobe Soundbooth CS5 (монтаж звукового сопровождения)
  • Abobe Photoshop CS5 (вводный «слайд»)
  • Adobe Media Encoder CS5 (кодирование видео)

Запись окна удалённого компьютера

… VNC, RDP, NX …

Запись рабочего стола Windows

Запись скринкастов в Windows посредством FFmpeg при помощи DirectShow фильтра.
Может пригодиться для создания обучающих роликов - например: как скачать дистрибутив, записать на диск или USB и т.п.

Ссылки

Обсуждение

  • На самом деле непонятно, как снимать полноэкранные скринкасты т.к. существует разрешение 1280×800 (см. Display_resolution), например, а надо 1280×720. Масштабировать? Обрезать? ~Agafonov~
  • Есть такое разрешение, ничего обрезать или ужимать не надо: скриншот ~BasicXP~
  • Ну надо признаться, что у меня ни на 4:3 стандартном мониторе, ни на широкоформатнике в ноутбуке такого разрешения нет. Ибо и правда нестандарт. Так что таки думать надо на эту тему. — Malamut 08.06.2010 22:53
1)
Желательно, чтобы совпадало с разрешением раб.стола