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

При необходимости записи видеоролика с рабочего стола без привлечения графических программ может быть использована утилита 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.