Screen capture (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
Screen capture
. Дата последней синхронизации: 10 января 2023. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
Горячие клавиши#Настройка
В данной статье описаны программы для создания
скриншотов
и
скринкастов
.
Программы для создания скриншотов
Самостоятельные программы
CoreShot
— Простая лёгкая утилита захвата экрана для X11. Входит в состав C-Suite.
https://cubocore.gitlab.io/
||
coreshot
AUR
Deepin Screenshot
— Довольно простой в использовании инструмент для создания скриншотов. Объявлен устаревшим и был объединён с Deepin Screen Recorder. Известная проблема с функциональностью буфера обмена исправлена с помощью патча
deepin-screenshot-copy-patch
AUR
[
ссылка недействительна
: 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-git
AUR
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
||
gscreenshot
AUR
HotShots
— Приложение для захвата экранов и сохранения их в различных форматах изображений, а также добавления аннотаций и графических данных (стрелки, линии, тексты, ...).
https://github.com/obiwankennedy/HotShots
||
hotshots-git
AUR
imgur-screenshot
— Делает скриншоты, загружает их на
imgur
+ больше классных вещей
https://github.com/jomo/imgur-screenshot
||
imgur-screenshot
AUR
ksnip
— Кроссплатформенный инструмент для создания скриншотов на базе Qt, предоставляющий множество функций аннотирования для ваших скриншотов.
https://github.com/ksnip/ksnip
||
ksnip
Lightscreen
— Простой инструмент для автоматизации утомительного процесса сохранения и каталогизации скриншотов. Он работает как скрытый фоновый процесс, который вызывается одной (или несколькими) горячими клавишами, а затем сохраняет файл скриншота на диск в соответствии с предпочтениями пользователя.
https://lightscreen.com.ar
||
lightscreen
AUR
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/
||
screencloud
AUR
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)
для более подробной информации.
Примечание
В некоторых оконных менеджерах (
dwm
AUR
,
xmonad
и, возможно, других)
scrot -s
не работает должным образом при запуске через сочетание клавиш оконного менеджера. Это можно обойти, добавив перед вызовом scrot небольшую паузу:
sleep 0.2; scrot -s
.
escrotum
escrotum-git
AUR
— это инструмент захвата экрана с использованием 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
||
ffcast
AUR
GPU Screen Recorder
— Экранный рекордер, который делает захват экрана только на GPU, что значительно повышает производительность и делает её сравнимой с NVIDIA ShadowPlay; Рекордер поддерживает X11 и Wayland. Также поддерживаются веб-камеры, прямые трансляции и мгновенный повтор.
https://git.dec05eba.com/gpu-screen-recorder-ui/about/
||
gpu-screen-recorder-ui
Green Recorder
— Простой, но функциональный инструмент записи экрана.
https://github.com/dvershinin/green-recorder
||
green-recorder
AUR
Kazam
— Программа для скринкастинга с учётом дизайна. Работает с многоэкранными установками.
https://launchpad.net/kazam
||
kazam
AUR
Kooha
— Простая программа записи экрана с минимальным интерфейсом GTK.
https://github.com/SeaDve/Kooha
||
kooha
menyoki
— Инструмент командной строки для создания скриншотов и скринкастов, который также может выполнять некоторые операции над изображениями.
https://github.com/orhun/menyoki
||
menyoki
Open Broadcaster Software
— Приложение для записи видео и стриминга.
https://obsproject.com/
||
obs-studio
obs-gnome-screencast
AUR
– плагин для функции GNOME screencast, поддерживает Wayland
Peek
— Простой инструмент, который создаёт анимацию в форматах GIF, APNG, WebM или MP4.
https://github.com/phw/peek
||
peek
RecApp
— Дружественный скринкастер, написанный на GTK. Использует свободные модули GStreamer и не зависит от FFmpeg. Больше не разрабатывается.
https://github.com/amikha1lov/RecApp
||
recapp-git
AUR
RecordItNow
— Рекордер рабочего стола на основе плагинов для KDE 4.
https://recorditnow.sourceforge.net/
||
recorditnow
AUR
[
ссылка недействительна
: package not found]
RecordMyDesktop
— Простая в использовании утилита для записи рабочего стола в формат ogg с интерфейсом CLI, GTK или Qt. (разработка неактивна)
https://recordmydesktop.sourceforge.net/
|| CLI:
recordmydesktop
, GTK:
gtk-recordmydesktop
AUR
[
ссылка недействительна
: package not found]
, Qt:
qt-recordmydesktop
AUR
[
ссылка недействительна
: package not found]
screencast
— Интерфейс командной строки для записи рабочего стола X11 с помощью FFmpeg, с поддержкой автономной записи и стриминга.
https://github.com/dbermond/screencast/
||
screencast
AUR
Screencast
— Простой рекордер скринкастов, разработанный для elementary OS.
https://github.com/artemanufrij/screencast
||
pantheon-screencast
AUR
SimpleScreenRecorder
— Многофункциональный экранный рекордер, написанный на C++/Qt5, поддерживающий X11 и OpenGL.
https://www.maartenbaert.be/simplescreenrecorder/
||
simplescreenrecorder
AUR
VokoScreen
— Простой графический инструмент для записи скринкастов с использованием GStreamer.
https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html
||
vokoscreen
XVidCap
— Приложение для записи скринкаста или цифровой записи экранного вывода X Window System со звуковым сопровождением.
https://xvidcap.sourceforge.net/
||
xvidcap
AUR
[
ссылка недействительна
: package not found]
Wayland
Если вы используете композитор, основанный на Wlroots, то сделать скриншот можно с помощью
grim
или
grimshot
AUR
[
ссылка недействительна
: package not found]
(пакет
sway
также предоставляет
grimshot
в каталоге
/usr/share/sway/scripts/
); записать скринкаст можно с помощью
wf-recorder
(или
wf-recorder-git
AUR
);
wlrobs-hg
AUR
— плагин
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-recorder
AUR
). Для корректной работы
spectacle
из KDE, возможно, понадобится удалить
~/.local/share/applications/org.kde.spectacle.desktop
; в любом случае, Spectacle должен работать с режимом съёмки
Окно под курсором мыши (Meta+Ctrl+Print)
.
Запись скринкастов
С помощью GNOME screencast
green-recorder
AUR
,
obs-gnome-screencast
AUR
и
obs-studio
поддерживают запись Wayland-экрана через GNOME screencast.
С помощью виртуальной камеры
Совет
Этот метод был протестирован с
zoom
AUR
(desktop-клиент работает через
xorg-xwayland
) и
BigBlueButton
под
chromium
(под
firefox
разрешение очень низкое);
skypeforlinux-bin
AUR
[
ссылка недействительна
: package not found]
обнаруживает виртуальную камеру, но выводит пустоту.
В примере используется
wf-recorder
, но вы можете использовать любую программу, просто подайте вывод на виртуальное устройство.
Установите
wf-recorder
(или
wf-recorder-git
AUR
) и
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
[1]
.
Совет
Если у вас возникает ошибка
Unknown V4L2 pixel format equivalent for rgb0
, запустите
wf-recorder
с опцией
--force-yuv
/
-t
для принудительного преобразования данных в yuv.
[2]
Теперь в нужном вам приложении вы сможете выбрать эту виртуальную камеру, и она будет отображать ваш экран. Для проверки работоспособности можно использовать
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
Примечание
Этот метод позволяет захватить только экран целиком, а не отдельные приложения.
[3]
.
Смотрите
PipeWire (Русский)#Демонстрация экрана WebRTC
.
После установки нужных пакетов захват экрана в Chromium и Firefox должен заработать. Это можно проверить на
тестовой странице getUserMedia / getDisplayMedia от Mozilla
.
Терминал
Захват с кодами ANSI
Можно использовать команду
script(1)
из пакета
util-linux
.
Просто выполните команду
script
, и она запустит новую командную оболочку, внутри которой весь вывод вместе с управляющими последовательностями ANSI будет записан в файл с именем
typescript
.
Для завершения записи выйдите из этой командной оболочки. Получившийся файл можно сконвертировать в HTML с помощью
ansi2html
AUR
(не путайте с другим пакетом
python-ansi2html
).
Например, чтобы преобразовать
typescript
в
typescript.html
, выполните следующую команду:
$ ansi2html --bg=dark < typescript > typescript.html
Вывод
некоторых
команд можно перенаправить сразу в ansi2html:
$ ls --color|ansi2html --bg=dark >output.html
Но это сработает не всегда и может понадобиться всё равно использовать
script
.
Кадровый буфер
Установите кадровый буфер (
framebuffer
) и используйте
fbgrab
или
fbdump
AUR
, чтобы из его содержимого сделать скриншот.
Виртуальная консоль
Если вам нужен текст из консоли, а не изображение, можно использовать
setterm
из пакета
util-linux
. Следующая команда запишет текстовое содержимое виртуальной консоли 1 в файл
screen.dump
в текущем каталоге:
# setterm -dump 1 -file screen.dump
Требуются root-права для чтения
/dev/vcs1
.