Запись экрана из консоли

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

FFmpeg устанавливается из стандартного репозитория командой:

sudo dnf install ffmpeg

Для записи видео с экрана в формате QuickTime (MOV) без звука используется следующая команда:

ffmpeg -r 50 -g 500 -s 1366x768 -f x11grab -i :0.0 -vcodec\ qtrle screencast.mov

где параметры:

  • -f x11grab — источник захвата, вывод X-сервера;
  • -s 1366x768 — размер захватываемой области;
  • -r 50 — частота кадров в секунду;
  • -g 500 — интервал между ключевыми кадрами;
  • -i :0.0 — экран X-сервера (дополнительно можно указать смещение: -i :0.0+10,20);
  • -vcodec qtrle — видеокодек QuickTime RLE;
  • screencast.mov — имя выходного файла.

Примечание – Параметры -r и -g подбираются эмпирически, в зависимости от производительности Системы и цели записи.

Для записи видео со звуком необходимо определить устройство захвата аудио, выполнив команду:

arecord -l

Пример использования FFmpeg с записью звука:

ffmpeg -f alsa -ac 1 -i hw:2,0 -acodec pcm_s16le -f x11grab\ -s 1366x768 -r 50 -g 500 -i :0.0 -vcodec qtrle screencast.mov

где параметры:

  • -f alsa — захват звука через ALSA;
  • -ac 1 — количество аудиоканалов (1 — моно, 2 — стерео);
  • -i hw:2,0 — аудиоустройство (card 2, device 0);
  • -acodec pcm_s16le — кодек без сжатия;
  • остальные параметры аналогичны описанным в предыдущем примере команды.

Перекодирование видео

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

  • Простое перекодирование (по умолчанию):
ffmpeg -i screencast.mov screencast2.avi
  • Кодирование с использованием libx264 в формат MKV:
ffmpeg -i screencast.mov -vcodec libx264 -crf 22 -threads 0\ -acodec libmp3lame -ar 44100 -ab 128k screencast2.mkv
  • Кодирование с использованием libxvid в формат AVI:
ffmpeg -i screencast.mov -vcodec libxvid -qscale 8 -acodec\ libmp3lame -ab 128k -ac 2 screencast2.avi

где параметры:

  • -crf — качество видео (чем меньше значение, тем выше качество);
  • -qscale — аналогично crf, значение от 1 до 31 (меньше — лучше качество);
  • -ac 2 — запись стерео;
  • -threads 0 — использование всех доступных потоков CPU.