Screen capture (Русский)

Состояние перевода: На этой странице представлен перевод статьи Screen capture. Дата последней синхронизации: 10 января 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

В данной статье описаны программы для создания скриншотов и скринкастов.

Программы для создания скриншотов

Самостоятельные программы

  • CoreShot Простая лёгкая утилита захвата экрана для X11. Входит в состав C-Suite.
https://cubocore.gitlab.io/ || coreshotAUR
  • Deepin Screenshot Довольно простой в использовании инструмент для создания скриншотов. Объявлен устаревшим и был объединён с Deepin Screen Recorder. Известная проблема с функциональностью буфера обмена исправлена с помощью патча deepin-screenshot-copy-patchAUR[ссылка недействительна: package not found].
https://www.deepin.org/en/original/deepin-screenshot/ || deepin-screenshot[ссылка недействительна: package not found]
  • Escrotum Программа для захвата экрана, использующая python и gtk3, вдохновлена scrot.
https://github.com/Roger/escrotum || escrotum-gitAUR
  • Flameshot Программа на Qt5 для интерактивного создания скриншотов. Выберите нужную область, рисуйте с помощью различных инструментов и наслаждайтесь возможностями настройки.
https://github.com/lupoDharkael/flameshot || flameshot
  • GNOME Screenshot Инструмент создания скриншотов для рабочего стола GNOME.
https://gitlab.gnome.org/GNOME/gnome-screenshot/ || gnome-screenshot
  • grim Захват изображений из композитора Wayland.
https://github.com/emersion/grim || grim
  • gscreenshot Простая утилита GTK для создания скриншотов с функциями задержки, выбора и копирования в буфер обмена.
https://github.com/thenaterhood/gscreenshot || gscreenshotAUR
  • HotShots Приложение для захвата экранов и сохранения их в различных форматах изображений, а также добавления аннотаций и графических данных (стрелки, линии, тексты, ...).
https://github.com/obiwankennedy/HotShots || hotshots-gitAUR
  • imgur-screenshot Делает скриншоты, загружает их на imgur + больше классных вещей
https://github.com/jomo/imgur-screenshot || imgur-screenshotAUR
  • ksnip Кроссплатформенный инструмент для создания скриншотов на базе Qt, предоставляющий множество функций аннотирования для ваших скриншотов.
https://github.com/ksnip/ksnip || ksnip
  • Lightscreen Простой инструмент для автоматизации утомительного процесса сохранения и каталогизации скриншотов. Он работает как скрытый фоновый процесс, который вызывается одной (или несколькими) горячими клавишами, а затем сохраняет файл скриншота на диск в соответствии с предпочтениями пользователя.
https://lightscreen.com.ar || lightscreenAUR
  • LXQt Screenshot Инструмент создания скриншотов для LXQt. Запускается через lximage-qt --screenshot.
https://github.com/lxde/lximage-qt || lximage-qt
  • maim Простая утилита командной строки для создания скриншотов. Она призвана заменить scrot и по многим параметрам работает лучше, чем scrot.
https://github.com/naelstrof/maim || maim
  • MATE Screenshot Инструмент создания скриншотов для рабочего стола MATE.
https://mate-desktop.org || mate-utils
  • menyoki Инструмент командной строки для создания скриншотов и скринкастов, который также может выполнять некоторые операции над изображениями.
https://github.com/orhun/menyoki || menyoki
  • mss Python-модуль для захвата экрана с простым интерфейсом командной строки, использующий xrandr.
https://pypi.org/project/mss/ || python-mss
  • Pantheon Screenshot Инструмент создания скриншотов для elementary OS.
https://github.com/elementary/screenshot || pantheon-screenshot
  • ScreenCloud Позволяет сделать скриншот всего экрана или выделить область, а затем загрузить скриншот на imgur+auth. Есть плагины и значок в трее.
https://screencloud.net/ || screencloudAUR
  • ScreenGrab Кроссплатформенное приложение для быстрого создания скриншотов (Qt).
https://github.com/DOOMer/screengrab || screengrab
  • Scrot Простая утилита для создания скриншотов из командной строки для X.
https://github.com/resurrecting-open-source-projects/scrot || scrot
  • Shotgun Минималистичная утилита для создания скриншотов X, написанная на Rust. По словам автора, она в два раза быстрее, чем maim.
https://github.com/neXromancers/shotgun || shotgun
  • Shutter Многофункциональная программа для создания скриншотов и редактирования. Поддерживает задержку.
https://shutter-project.org/ || shutter
  • Spectacle Приложение создания скриншотов для KDE. Оно может создавать снимки всего рабочего стола, отдельного окна, части окна, выделенной прямоугольной области или области со свободным контуром. Является частью kde-graphics.
https://github.com/KDE/spectacle/ || spectacle
  • Xfce4 Screenshooter Приложение и плагин панели Xfce4 для создания скриншотов всего экрана, активного окна или выбранной области. Является частью xfce4-goodies.
https://goodies.xfce.org/projects/applications/xfce4-screenshooter || xfce4-screenshooter
  • xwd Утилита для создания дампа изображения X Window System
https://www.x.org/ || xorg-xwd

xwd

xwd(1) предоставляется пакетом xorg-xwd.

Скриншот корневого окна:

$ xwd -root -out screenshot.xwd
Совет: Чтобы добавить задержку перед созданием скришота, используйте команду sleep. Например: sleep 5; xwd ....

scrot

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

$ scrot -t 20 -d 5

Эта команда создаст файл .png с датой в имени и с миниатюрой (20% от оригинала) для размещения в Интернете. Также будет 5-секундная задержка перед захватом.

Вы также можете использовать стандартное форматирование даты и времени при сохранении в файл. Например, команда

$ scrot ~/screenshots/%Y-%m-%d-%T-screenshot.png

сохраняет скриншот в файле с именем, содержащим текущий год, месяц, число, часы, минуты и секунды, в подкаталог «screenshots», находящийся в домашнем каталоге.

Смотрите scrot(1) для более подробной информации.

Примечание: В некоторых оконных менеджерах (dwmAUR, xmonad и, возможно, других) scrot -s не работает должным образом при запуске через сочетание клавиш оконного менеджера. Это можно обойти, добавив перед вызовом scrot небольшую паузу: sleep 0.2; scrot -s.

escrotum

escrotum-gitAUR — это инструмент захвата экрана с использованием PyGTK, вдохновлённый scrot.

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

Поскольку интерфейс командной строки почти такой же, как у scrot, escrotum может быть использован в качестве его прозрачной замены.

maim

maim нацелен на то, чтобы стать улучшенным scrot.

Сохранение всего экрана в файл:

$ maim файл

Выбор окна или области для захвата и сохранение в файл:

$ maim --select файл

Захват активного экрана (требуется xdotool):

$ maim --window $(xdotool getactivewindow) файл

Выбор, сохранение без курсора мыши и сохранение в буфер обмена (требуется xclip):

$ maim -s | xclip -selection clipboard -t image/png -i

Программы сред рабочего стола

Spectacle

В среде KDE можно использовать Spectacle.

Он предоставляется пакетом spectacle.

Xfce Screenshooter

В среде Xfce можно установить xfce4-screenshooter и назначить горячие клавиши:

Меню > Настройки > Клавиатура > Комбинации клавиш

Команда xfce4-screenshooter -h выведет список доступных опций.

GNOME

Пользователи GNOME могут нажать PrintScreen или нажать на значок камеры в системном меню. Также можно установить gnome-screenshot и запустить его через меню Приложения > Утилиты > Снимок экрана.

С помощью сочетания клавиш Ctrl+Shift+Alt+r можно запустить встроенную в GNOME запись экрана. Во время записи будет отображаться уведомление в верхней панели рядом с системным меню. После завершения записи в каталоге Видео будет сохранён файл Запись экрана от дата.webm. Для работы этой функции должны быть установлены пакеты gst-plugin-pipewire и gst-plugins-good.

Cinnamon

В стандартной установке Cinnamon нет программы для создания скриншотов, но можно установить gnome-screenshot и запустить его через меню или нажатием клавиши PrintScreen.

Другие среды рабочего стола или оконные менеджеры

Для других сред рабочего стола вроде LXDE или оконных менеджеров вроде Openbox или Compiz можно добавить сочетание клавиш для какой-нибудь команды создания скриншота, например:

$ import -window root ~/Изображения/$(date '+%Y%m%d-%H%M%S').png

Команда import входит в состав пакета imagemagick. Назначение этой команды на клавишу PrintScreen в Compiz позволяет сделать снимок экрана в папку Изображения с датой и временем в имени файла. Обратите внимание, что файл rc.xml в Openbox не понимает запятых; поэтому, чтобы привязать эту команду к клавише PrintScreen в Openbox, вам нужно добавить следующее в раздел keyboard файла rc.xml file:

rc.xml
<!-- Screenshot -->
    <keybind key="Print">
      <action name="Execute">
        <command>sh -c "import -window root ~/Pictures/$(date '+%Y%m%d-%H%M%S').png"</command>
      </action>
    </keybind>

Если keybind Print не работает, прочтите статью Keyboard input (Русский) и попробуйте другие коды или символы клавиш.

Пакеты с инструментами для создания скриншотов

ImageMagick/GraphicsMagick

Смотрите ImageMagick#Screenshot taking.

GIMP

Можно создавать скриншоты в GIMP (Файл > Создать > Снимок экрана...).

imlib2

imlib2 предоставляет программу imlib2_grab для создания скриншотов:

$ imlib2_grab screenshot.png

FFmpeg

Смотрите FFmpeg#Screen capture.

Программы для записи скринкастов

Смотрите также FFmpeg#Screen capture и Wikipedia:Comparison of screencasting software.

Эти программы позволяют записать видео происходящего на рабочем столе или в отдельных окнах.

  • Byzanz Простой инструмент, создающий GIF-анимацию.
https://gitlab.gnome.org/Archive/byzanz || byzanz[ссылка недействительна: package not found]
  • Deepin Screen Recorder Приложение для записи экрана для рабочего стола Deepin.
https://www.deepin.org/en/original/deepin-screen-recorder/ || deepin-screen-recorder
  • FFcast Инструмент для скринкастинга на основе FFmpeg, написанный на Bash.
https://github.com/lolilolicon/FFcast || ffcastAUR
  • Gpu Screen Recorder Экранный рекордер, который использует только GPU для захвата, что значительно повышает производительность и делает её сравнимой с Nvidia ShadowPlay. Поддерживает потоковую передачу и буфер воспроизведения. В настоящее время ограничен NVIDIA.
https://git.dec05eba.com/gpu-screen-recorder-gtk/about/ || gpu-screen-recorder-gtk-gitAUR[ссылка недействительна: package not found]
  • Green Recorder Простой, но функциональный инструмент записи экрана.
https://github.com/dvershinin/green-recorder || green-recorderAUR
  • Kazam Программа для скринкастинга с учётом дизайна. Работает с многоэкранными установками.
https://launchpad.net/kazam || kazamAUR
  • Kooha Простая программа записи экрана с минимальным интерфейсом GTK.
https://github.com/SeaDve/Kooha || kooha
  • menyoki Инструмент командной строки для создания скриншотов и скринкастов, который также может выполнять некоторые операции над изображениями.
https://github.com/orhun/menyoki || menyoki
https://obsproject.com/ || obs-studio
  • obs-gnome-screencastAUR – плагин для функции GNOME screencast, поддерживает Wayland
  • Peek Простой инструмент, который создаёт анимацию в форматах GIF, APNG, WebM или MP4.
https://github.com/phw/peek || peek
  • RecApp Дружественный скринкастер, написанный на GTK. Использует свободные модули GStreamer и не зависит от FFmpeg. Больше не разрабатывается.
https://github.com/amikha1lov/RecApp || recapp-gitAUR
  • RecordItNow Рекордер рабочего стола на основе плагинов для KDE 4.
https://recorditnow.sourceforge.net/ || recorditnowAUR[ссылка недействительна: package not found]
  • RecordMyDesktop Простая в использовании утилита для записи рабочего стола в формат ogg с интерфейсом CLI, GTK или Qt. (разработка неактивна)
https://recordmydesktop.sourceforge.net/ || CLI: recordmydesktop, GTK: gtk-recordmydesktopAUR[ссылка недействительна: package not found], Qt: qt-recordmydesktopAUR[ссылка недействительна: package not found]
  • screencast Интерфейс командной строки для записи рабочего стола X11 с помощью FFmpeg, с поддержкой автономной записи и стриминга.
https://github.com/dbermond/screencast/ || screencastAUR
  • Screencast Простой рекордер скринкастов, разработанный для elementary OS.
https://github.com/artemanufrij/screencast || pantheon-screencastAUR
  • SimpleScreenRecorder Многофункциональный экранный рекордер, написанный на C++/Qt5, поддерживающий X11 и OpenGL.
https://www.maartenbaert.be/simplescreenrecorder/ || simplescreenrecorderAUR
  • VokoScreen Простой графический инструмент для записи скринкастов с использованием GStreamer.
https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html || vokoscreen
  • XVidCap Приложение для записи скринкаста или цифровой записи экранного вывода X Window System со звуковым сопровождением.
https://xvidcap.sourceforge.net/ || xvidcapAUR[ссылка недействительна: package not found]

Wayland

Если вы используете композитор, основанный на Wlroots, то сделать скриншот можно с помощью grim или grimshotAUR[ссылка недействительна: package not found] (пакет sway также предоставляет grimshot в каталоге /usr/share/sway/scripts/); записать скринкаст можно с помощью wf-recorder (или wf-recorder-gitAUR); wlrobs-hgAUR — плагин obs-studio, который позволяет делать захват экрана в композиторах на базе wlroots. Опционально можно использовать slurp для выделения части экрана, которую нужно захватить.

Сделать снимок всего экрана:

$ grim screenshot.png

Сделать скриншот текущего окна:

$ grim -g "$(swaymsg -t get_tree | jq -r '.. | select(.focused?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"')" screenshot.png

Сделать скриншот выделенной части экрана:

$ grim -g "$(slurp)" screenshot.png

Сделать скриншот выделенной части экрана и поместить его в буфер обмена с помощью wl-clipboard:

$ grim -g "$(slurp)" - | wl-copy

Записать видео с экрана:

$ wf-recorder -f recording.mp4

Записать видео выделенной части экрана:

$ wf-recorder -g "$(slurp)"
Совет:
  • slurpshot — интерактивный инструмент для создания скриншотов, использующий bemenu.
  • Можно совместить создание скриншота с каким-нибудь инструментом для постобработки, например swappy: grim -g "$(slurp)" - | swappy -f -

Кроме того, некоторые программы из перечисленных выше могут работать в Wayland (например, ksnip, green-recorderAUR). Для корректной работы spectacle из KDE, возможно, понадобится удалить ~/.local/share/applications/org.kde.spectacle.desktop; в любом случае, Spectacle должен работать с режимом съёмки Окно под курсором мыши (Meta+Ctrl+Print).

Запись скринкастов

С помощью GNOME screencast

green-recorderAUR, obs-gnome-screencastAUR и obs-studio поддерживают запись Wayland-экрана через GNOME screencast.

С помощью виртуальной камеры

Совет:
  • Этот метод был протестирован с zoomAUR (desktop-клиент работает через xorg-xwayland) и BigBlueButton под chromium (под firefox разрешение очень низкое); skypeforlinux-binAUR обнаруживает виртуальную камеру, но выводит пустоту.
  • В примере используется wf-recorder, но вы можете использовать любую программу, просто подайте вывод на виртуальное устройство.

Установите wf-recorder (или wf-recorder-gitAUR) и v4l2loopback-dkms. Загрузите модуль ядра v4l2loopback со следующими параметрами:

# modprobe v4l2loopback exclusive_caps=1 card_label=VirtualVideoDevice

После этого должна появиться виртуальная камера VirtualVideoDevice:

$ v4l2-ctl --list-devices
...
VirtualVideoDevice (platform:v4l2loopback-000):
  /dev/video2
...

Теперь запустите захват экрана с помощью wf-recorder и направьте его вывод в эту виртуальную камеру:

$ wf-recorder --muxer=v4l2 --codec=rawvideo --file=/dev/video2 -x yuv420p

Использование yuv420p необходимо для совместимости с Zoom .

Совет: Если у вас возникает ошибка Unknown V4L2 pixel format equivalent for rgb0, запустите wf-recorder с опцией --force-yuv/-t для принудительного преобразования данных в yuv.

Теперь в нужном вам приложении вы сможете выбрать эту виртуальную камеру, и она будет отображать ваш экран. Для проверки работоспособности можно использовать ffplay (из пакета ffmpeg), mpv или gst-launch (из пакета gstreamer):

$ ffplay /dev/video2
$ mpv av://v4l2:/dev/video2
$ gst-launch-1.0 -v v4l2src device=/dev/video2 ! glimagesink

Если Firefox не может захватить видео и пишет ошибку вроде «AbortError: Starting video failed», попробуйте подгрузить библиотеку v4l2compat.so:

$ LD_PRELOAD=/usr/lib/v4l1compat.so firefox
Захват отдельных приложений
Важно: Имейте в виду, что при использовании этого метода захватываемая область не будет автоматически обновляться при перемещении и изменении размера захватываемого окна.

Как описывалось ранее, wf-recorder также позволяет записать часть экрана, которую можно выделить с помощью slurp. Поэтому можно использовать такую команду, чтобы в виртуальной камере отображалось только одно окно:

$ wf-recorder -g "$(slurp)" --muxer=v4l2 --codec=rawvideo --file=/dev/video2 -x yuv420p

После выделения нужной части экрана виртуальная камера /dev/video2 станет отображать её.

WebRTC

Примечание: Этот метод позволяет захватить только экран целиком, а не отдельные приложения. .

Смотрите PipeWire (Русский)#Демонстрация экрана WebRTC.

После установки нужных пакетов захват экрана в Chromium и Firefox должен заработать. Это можно проверить на тестовой странице getUserMedia / getDisplayMedia от Mozilla.

Терминал

Захват с кодами ANSI

Можно использовать команду script(1) из пакета util-linux. Просто выполните команду script, и она запустит новую командную оболочку, внутри которой весь вывод вместе с управляющими последовательностями ANSI будет записан в файл с именем typescript.

Для завершения записи выйдите из этой командной оболочки. Получившийся файл можно сконвертировать в HTML с помощью ansi2htmlAUR (не путайте с другим пакетом python-ansi2html).

Например, чтобы преобразовать typescript в typescript.html, выполните следующую команду:

$ ansi2html --bg=dark < typescript > typescript.html

Вывод некоторых команд можно перенаправить сразу в ansi2html:

$ ls --color|ansi2html --bg=dark >output.html

Но это сработает не всегда и может понадобиться всё равно использовать script.

Кадровый буфер

Установите кадровый буфер (framebuffer) и используйте fbgrab или fbdumpAUR, чтобы из его содержимого сделать скриншот.

Виртуальная консоль

Если вам нужен текст из консоли, а не изображение, можно использовать setterm из пакета util-linux. Следующая команда запишет текстовое содержимое виртуальной консоли 1 в файл screen.dump в текущем каталоге:

# setterm -dump 1 -file screen.dump

Требуются root-права для чтения /dev/vcs1.

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.