Гид по технологиям

Запись экрана в Linux с FFmpeg

• 4 min read • Руководство • Обновлено 21 Nov 2025
Запись экрана в Linux с FFmpeg
Запись экрана в Linux с FFmpeg

Зачем использовать FFmpeg

FFmpeg — это универсальный набор библиотек и утилит для работы с аудио и видео. Он даёт максимальный контроль и минимальные накладные расходы по сравнению с графическими программами. Определение: x11grab — модуль FFmpeg для захвата X11-дисплея.

Важно: терминальные записи обычно быстрее и потребляют меньше ресурсов, чем GUI-инструменты, особенно при захвате игр.

Установка FFmpeg

Обновите кеш пакетов и установите ffmpeg через менеджер пакетов вашей дистрибуции. В Ubuntu-подобных системах это делается так:

sudo apt-get update
sudo apt-get install ffmpeg

Для других дистрибутивов используйте соответствующий менеджер пакетов (dnf, pacman и т.п.).

Запись первой сессии — базовый синтаксис

Основные параметры, которые нужно задать: размер видео, частота кадров, вход x11grab, имя выходного файла и (опционально) звук.

Общий шаблон:

ffmpeg -video_size 1280x720 -framerate 30 -f x11grab -i :0.0+X,Y output.mp4

Пояснения:

  • -video_size 1280x720 — область захвата ширина×высота.
  • -framerate 30 — частота кадров.
  • -f x11grab — используем x11grab как источник видео.
  • -i :0.0+X,Y — дисплей :0.0, смещение от верхнего левого угла X и Y.
  • output.mp4 — имя выходного файла и формат.

Пример: захват квадрата 500×500, смещённого на X=300, Y=300, в AVI:

ffmpeg -video_size 500x500 -framerate 25 -f x11grab -i :0.0+300,300 output.avi

Остановка записи: в терминале нажмите клавишу q — FFmpeg корректно завершит и сохранит файл.

Терминал FFmpeg во время записи экрана; напоминание: нажмите 'q' чтобы остановить

Примечание: изображение показывает пример вывода FFmpeg в терминале во время записи.

Запись звука

Чтобы захватить звук вместе с видео, добавьте аудиовход. В Linux чаще используются PulseAudio или ALSA. Примеры:

PulseAudio (обычный вариант):

ffmpeg -video_size 1280x720 -framerate 30 -f x11grab -i :0.0 -f pulse -ac 2 -i default output.mp4

ALSA (если вы используете ALSA напрямую):

ffmpeg -video_size 1280x720 -framerate 30 -f x11grab -i :0.0 -f alsa -ac 2 -i default output.mp4

Полезные аудио-параметры:

  • -ac — число каналов (1 моно, 2 стерео).
  • -ar — частота дискретизации (например, 44100 или 48000).
  • -ab — битрейт аудио (например, 128k).

Кодеки и производительность

Если вы записываете и кодируете одновременно, это увеличит нагрузку. Для минимизации влияния:

  • Записывайте в лёгкий кодек или контейнер, затем кодируйте отдельно.
  • При онлайн-кодировании используйте быстрые пресеты, например -preset ultrafast для libx264.

Пример быстрой кодировки H.264:

ffmpeg -video_size 1920x1080 -framerate 60 -f x11grab -i :0.0 -f pulse -i default -vcodec libx264 -preset ultrafast -crf 23 output.mp4

Если цель — минимальное влияние на игру, запись в сырой формат или копирование потока для дальнейшей обработки предпочтительнее.

Опции x11grab: follow_mouse и show_region

x11grab умеет следовать за курсором и показывать рамку захвата.

  • -follow_mouse centered — центрирует зону захвата по курсору.
  • -follow_mouse 500 — курсор может двигаться внутри 500 пикселей до сдвига рамки.
  • -show_region 1 — показывает рамку области захвата (полезно для отладки).

Пример: следовать за мышью и показывать регион:

ffmpeg -video_size 800x600 -framerate 30 -f x11grab -follow_mouse centered -show_region 1 -i :0.0 output.mp4

Рекомендации при записи игр

  • Лучше сначала захватить видео в минимальной обработке, затем производить постобработку и кодирование.
  • Используйте -preset ultrafast, если кодирование идёт одновременно с записью.
  • Закройте лишние фоновые задачи, отключите тяжёлые эффекты рабочего стола.
  • Разрешение и частота кадров сильно влияют на загрузку CPU/GPU — уменьшайте по необходимости.

Шпаргалка команд (cheat sheet)

Записать весь экран 1920×1080, 30 fps без звука:

ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 output.mp4

Записать экран + звук (PulseAudio):

ffmpeg -video_size 1280x720 -framerate 30 -f x11grab -i :0.0 -f pulse -ac 2 -i default -c:v libx264 -preset ultrafast -crf 23 output.mp4

Записать область 500×500, смещение 300,300:

ffmpeg -video_size 500x500 -framerate 25 -f x11grab -i :0.0+300,300 output.avi

Запись в сырой контейнер для последующей обработки:

ffmpeg -video_size 1280x720 -framerate 30 -f x11grab -i :0.0 -c:v rawvideo -pix_fmt yuv420p raw_output.mkv

Типичные ошибки и их устранение

  • Ничего не записывается: проверьте правильность индекса дисплея в -i :0.0; в некоторых системах дисплей может быть :0 или :1.
  • Нет звука: убедитесь, что вы указали правильный драйвер (-f pulse или -f alsa) и правильный источник (-i default, -i alsa_output.pci-… и т.д.).
  • Высокая загрузка CPU: снизьте разрешение или фреймрейт, используйте -preset ultrafast или сначала записывайте без кодирования.

Критерии приёмки

  • Видеофайл воспроизводится без ошибок.
  • Персональная область или весь экран захвачены в нужном размере и месте.
  • Аудио синхронизировано с видео (если требовалось).
  • Ресурсы системы остаются в допустимых пределах во время записи.

Глоссарий: 1 строка

  • x11grab — вход FFmpeg для захвата X11-дисплея.
  • PulseAudio — сервер звука в Linux.
  • ALSA — низкоуровневый звуковой слой в Linux.
  • crf — параметр качества при кодировании H.264 (меньше = лучше качество).

Короткое резюме

FFmpeg даёт гибкий и эффективный способ записи экрана в Linux: установите ffmpeg, выберите область через -video_size и -i :0.0+X,Y, добавьте звук через -f pulse или -f alsa, и используйте -preset ultrafast для минимизации нагрузки при кодировании. Проверяйте результат и корректируйте настройки по нагрузке и качеству.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро