「スクリーンキャプチャ」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(同期)
 
(7人の利用者による、間の66版が非表示)
1行目: 1行目:
[[Category:グラィックとデスクップパブリッシング]]
+
[[Category:フトウェア一覧]]
  +
[[Category:マルチメディア]]
[[cs:Taking a screenshot]]
 
  +
[[Category:システム管理]]
[[en:Taking a screenshot]]
 
[[es:Taking a screenshot]]
+
[[en:Screen capture]]
[[fr:Capture d'écran]]
+
[[es:Screen capture]]
[[ru:Taking a screenshot]]
+
[[pt:Screen capture]]
  +
[[ru:Screen capture]]
[[zh-hans:Taking a screenshot]]
 
  +
[[zh-hans:Screen capture]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related|特別なキーボードキー}}
+
{{Related|デスクトップ環境}}
  +
{{Related|キーバインド}}
  +
{{Related|アプリケーション一覧}}
 
{{Related articles end}}
 
{{Related articles end}}
この記事ではシステムの[[Wikipedia:ja:スクリーンショット|スクリーンショット]]を取得する様々な方法を説明しています。
 
   
  +
この記事では、[[Wikipedia:ja:スクリーンショット|スクリーンショット]]と[[Wikipedia:ja:スクリーンキャスト|スクリーンキャスト]]のソフトウェアを一覧にして解説しています。
== 専用のソフトウェア ==
 
   
  +
== スクリーンショットソフトウェア ==
* {{App|Deepin Screenshot|とても使いやすいスクリーンショットツール。機能: スクリーンショットツールを発動するホットキー、選択した領域のスクリーンショットの取得、スクリーンショットに文章や線画を簡単に追加。Python/Qt5 ベース。|https://www.deepin.org/|{{Pkg|deepin-screenshot}}}}
 
* {{App|Escrotum|pygtk を使用して画面をキャプチャ。scrot の影響を受けています。|https://github.com/Roger/escrotum|{{AUR|escrotum-git}}}}
 
* {{App|Flameshot|インタラクティブにスクリーンショットを取得できる Qt5 ベースのソフトウェア。取得したいエリアを選択して様々なツールで落書きしたりカスタマイズする機能があります。|https://github.com/lupoDharkael/flameshot|{{Pkg|flameshot}}}}
 
* {{App|gnome-screenshot|dconf, gtk3, libcanberra にしか依存しないため GNOME 以外でも使えます。|http://gnome.org|{{Pkg|gnome-screenshot}}}}
 
* {{App|gscreenshot|シンプルな GTK スクリーンショットユーティリティ。遅延時間を設定したり範囲選択・クリップボードにコピーする機能があります。|https://github.com/thenaterhood/gscreenshot|{{AUR|gscreenshot}}}}
 
* {{App|imgur-screenshot|スクリーンショットを取得して [http://imgur.com imgur] にアップロードするツール。|https://github.com/jomo/imgur-screenshot|{{AUR|imgur-screenshot-git}}}}
 
* {{App|KShare|ShareX の影響を受けているクロスプラットフォームのユーティリティ。Qt で書かれています。|https://kshare.arsenarsen.com|{{AUR|kshare}}}}
 
* {{App|Lightscreen|退屈なスクリーンショットの保存とカタログ化を自動化するシンプルなツール。表には現れないバックグラウンドプロセスとして動作し、(複数の) ホットキーで呼び出してスクリーンショットファイルをユーザーの設定にあわせてディスクに保存する。|http://lightscreen.com.ar|{{AUR|lightscreen}}}}
 
* {{App|maim|スクリーンショットを取得するシンプルなコマンドラインユーティリティ。scrot を置き換えるものとして様々な点で scrot よりも優れています。|https://github.com/naelstrof/maim|{{Pkg|maim}}}}
 
* {{App|screencloud|画面全体のスクリーンショットや領域を選択して撮影し、[http://imgur.com imgur]+auth にスクリーンショットをアップロードできるツール。プラグインとシステムトレイが付属。|http://screencloud.net/|{{AUR|screencloud}}}}
 
* {{App|screengrab|スクリーンショットを手軽に取得するためのクロスプラットフォームのアプリケーション (Qt)。|http://screengrab.doomer.org/|{{AUR|screengrab}}}}
 
* {{App|[[Wikipedia:Scrot|Scrot]]|X 向けのシンプルなコマンドラインスクリーンショットユーティリティ。|http://freecode.com/projects/scrot|{{Pkg|scrot}}}}
 
* {{App|Shutter|リッチなスクリーンショット・編集プログラム。|http://shutter-project.org/|{{AUR|shutter}}}}
 
* {{App|Spectacle|スクリーンショットを撮るための [[KDE]] のアプリケーション。デスクトップ全体、単一のウィンドウ、ウィンドウの一部、四角形またはフリーハンドで指定した領域の画面をキャプチャすることができます。{{Grp|kdegraphics}} に含まれています。|https://github.com/KDE/spectacle/|{{Pkg|spectacle}}}}
 
* {{App|Xfce4 Screenshooter|画面全体、アクティブウィンドウ、または選択領域のキャプチャを行えます。スクリーンショットを撮るまでの待機時間とスクリーンショットを撮った後の動作を設定できます: PNG ファイルに保存、クリップボードにコピー、別のアプリケーションで開く、無料の画像ホスティングサービスである Imgur や ZimageZ にアップロード。{{Grp|xfce4-goodies}} に含まれています。|https://goodies.xfce.org/projects/applications/xfce4-screenshooter|{{Pkg|xfce4-screenshooter}}}}
 
* {{App|xwd|X Window System イメージダンプユーティリティ。|http://xorg.freedesktop.org/|{{Pkg|xorg-xwd}}}}
 
   
  +
=== 専用のソフトウェア ===
== スクリーンショットユーティリティが含まれているパッケージ ==
 
   
  +
==== アプリケーションの一覧 ====
* {{App|[[GIMP]]|[[Wikipedia:ja:Adobe Photoshop|Adobe Photoshop]] などのプロプライエタリなエディタに匹敵する画像編集スイート。GIMP ([[GNU プロジェクト|GNU]] Image Manipulation Program) の開発は1990年代中頃から開始され、大量の[[GIMP/CMYK サポート|プラグイン]]や補助ツールが存在します。|http://www.gimp.org/|{{Pkg|gimp}}}}
 
* {{App|[[Wikipedia:GraphicsMagick|GraphicsMagick]]|API やコマンドラインの安定性を確保するために作られた ImageMagick のフォーク。パフォーマンスを向上させるためのマルチコア CPU をサポートしており、パフォーマンスを目当てに様々な巨大な商用サイト (Flickr, etsy) で採用されています。|http://www.graphicsmagick.org/|{{Pkg|graphicsmagick}}}}
 
* {{App|[[Wikipedia:ja:ImageMagick|ImageMagick]]|コマンドラインの画像処理プログラム。100以上のフォーマットをサポートしており正確なフォーマット変換ができることで知られています。ImageMagick の API はスクリプト化することができ大抵はバックエンドの処理に使われています。|http://www.imagemagick.org/script/index.php|{{Pkg|imagemagick}}}}
 
* {{App|Imlib2|画像ファイルのロードと保存、さらにレンダリング、操作、任意多角形をサポートしているライブラリ。|https://sourceforge.net/projects/enlightenment/|{{Pkg|imlib2}}}}
 
* {{App|MATE Utils|ディスク使用量・ログ・フォントを表示したり、スクリーンショットを取得したり、辞書の管理、ファイル検索などを行うための汎用 MATE ユーティリティ。|http://mate-desktop.org|{{Pkg|mate-utils}}}}
 
   
  +
* {{App|CoreShot|[[Xorg]] 用のスクリーンキャプチャユーティリティ。[https://cubocore.gitlab.io/coreapps.html C-Suite] の一部。|https://cubocore.gitlab.io/|{{AUR|coreshot}}}}
== 一般的な方法 ==
 
  +
* {{App|Escrotum|[[Wikipedia:Scrot|scrot]] からインスパイアされた、[[Wikipedia:ja:PyGTK|PyGTK]] 製のスクリーンキャプチャツール。Scrot の代替として使えます。|https://github.com/Roger/escrotum|{{AUR|escrotum-git}}}}
  +
* {{App|[[Flameshot]]|インタラクティブにスクリーンショットを撮ることができる [[Qt]] ベースのソフトウェア。|https://github.com/lupoDharkael/flameshot|{{Pkg|flameshot}}}}
  +
* {{App|[[Wikipedia:ja:GNOME スクリーンショット|GNOME Screenshot]]|GNOME デスクトップ環境用のスクリーンショットツール。|https://gitlab.gnome.org/GNOME/gnome-screenshot/|{{Pkg|gnome-screenshot}}}}
  +
* {{App|grim|[[Wayland#コンポジタ|Wayland コンポジタ]]でスクリーンショットを撮ります。|https://sr.ht/~emersion/grim/|{{Pkg|grim}}}}
  +
* {{App|gscreenshot|''scrot''、[[ImageMagick]]、[[Wikipedia:ja:Python Imaging Library|PIL]]、[[#imlib2|imlib2]]、''grim'' といった様々なスクリーンショットバックエンドのための [[GTK]] フロントエンド。遅延、領域選択、クリップボードへのコピーの機能があります。|https://github.com/thenaterhood/gscreenshot|{{AUR|gscreenshot}}}}
  +
* {{App|HotShots|画面をキャプチャし、様々な画像フォーマットに保存するだけでなく、注釈やグラフィカルなデータ (矢印、線、テキストなど) を加えることのできるアプリケーション。|https://github.com/obiwankennedy/HotShots|{{AUR|hotshots-git}}}}
  +
* {{App|imgur-screenshot|選択した領域のスクリーンショットを撮り、[https://imgur.com imgur] にアップロードしたりできるツール。|https://github.com/jomo/imgur-screenshot|{{AUR|imgur-screenshot}}}}
  +
* {{App|ksnip|Qt ベースのクロスプラットホームなスクリーンショットツールで、多くの注釈機能、基本的な画像編集、リモート (ftp、imgur、スクリプト) へのアップロード機能を提供します。|https://github.com/ksnip/ksnip|{{Pkg|ksnip}}}}
  +
* {{App|Lightscreen|スクリーンショットの保存や整理などの面倒な処理を自動化するシンプルなツール。このツールはバックグラウンドプロセスとして動作し、ユーザーの設定に応じて1つ (または複数) のホットキーでスクリーンショットを撮り、ディスクに保存することができます。|https://lightscreen.com.ar|{{AUR|lightscreen}}}}
  +
* {{App|LXImage-Qt|''LXImage'' イメージビューアとスクリーンショットツールの Qt 移植版。({{ic|lximage-qt --screenshot}} で実行します。)|https://github.com/lxde/lximage-qt|{{Pkg|lximage-qt}}}}
  +
* {{App|maim|スクリーンショットを撮るシンプルなコマンドラインユーティリティ。''Scrot'' を置き換えることを目的としており、多くの点で ''scrot'' より優れています。|https://github.com/naelstrof/maim|{{Pkg|maim}}}}
  +
* {{App|MATE Screenshot|[[MATE]] デスクトップ用のスクリーンショットツール。|https://mate-desktop.org|{{Pkg|mate-utils}}}}
  +
* {{App|menyoki|画像編集機能のある、コマンドラインのスクリーンショット及びスクリーンキャストツール。|https://github.com/orhun/menyoki|{{Pkg|menyoki}}}}
  +
* {{App|mss|最小限の CLI を備えた、[[xrandr]] 互換のスクリーンショット Python モジュール。|https://pypi.org/project/mss/|{{Pkg|python-mss}}}}
  +
* {{App|Pantheon Screenshot|[[Wikipedia:ja:Elementary OS|Elementary OS]] のために設計されたスクリーンショットツール。|https://github.com/elementary/screenshot|{{Pkg|pantheon-screenshot}}}}
  +
* {{App|ScreenCloud|画面全体または選択したエリアのスクリーンショットを撮り、[https://imgur.com imgur]+auth にアップロードできます。プラグインやシステムトレイの機能があります。|https://screencloud.net/|{{AUR|screencloud}}}}
  +
* {{App|ScreenGrab|素早くスクリーンショットを撮るための Qt アプリケーション (開発は不活発)。|https://github.com/DOOMer/screengrab|{{Pkg|screengrab}}}}
  +
* {{App|[[Wikipedia:Scrot|scrot]]|X 用のシンプルなスクリーンショットコマンドラインユーティリティ。|https://github.com/resurrecting-open-source-projects/scrot|{{Pkg|scrot}}}}
  +
* {{App|Shotgun|[[Rust]] で書かれた最小限の X スクリーンショットユーティリティ (作者によると、''maim'' より2倍高速だそうです)。|https://github.com/neXromancers/shotgun|{{Pkg|shotgun}}}}
  +
* {{App|Shutter|リッチなスクリーンショット及び編集プログラム ([https://hyp.is/AVQUNTRUH9ZO4OKSlue9/askubuntu.com/questions/252281/how-do-i-take-screenshots-with-a-delay/260178 撮影を遅らせる機能]があります)。|https://shutter-project.org/|{{Pkg|shutter}}}}
  +
* {{App|Spectacle|スクリーンキャプチャのための [[KDE]] アプリケーション。デスクトップ全体、単一のウィンドウ、ウィンドウの一セクション、選択した矩形領域、及びフリーハンドで選択した領域を撮影することができます。{{Grp|kde-graphics}} グループの一部です。|https://apps.kde.org/spectacle/|{{Pkg|spectacle}}}}
  +
* {{App|Xfce4-screenshooter|画面全体、アクティブなウィンドウ、選択した領域を撮影できるアプリケーション及び [[Xfce]] パネルプラグイン。{{Grp|xfce4-goodies}} に含まれています。|https://docs.xfce.org/apps/screenshooter/start|{{Pkg|xfce4-screenshooter}}}}
  +
* {{App|[[Wikipedia:Xwd|xwd]]|[[Xorg|X Window]] のキャプチャユーティリティ。|https://www.x.org/|{{Pkg|xorg-xwd}}}}
   
=== ImageMagick/GraphicsMagick ===
+
==== 使用法 ====
   
  +
===== maim =====
{{ic|import}} コマンドを使うことで現在のシステムのスクリーンショットを簡単に取得できます:
 
$ import -window root screenshot.jpg
 
   
{{ic|import}} は {{Pkg|imagemagick}} パッケージに入っています。
+
{{Pkg|maim}} は scrot の改良版となることを目指しています。
   
  +
全画面をキャプチャしてファイルに保存するには:
{{ic|-window}} オプションを付けずに {{ic|import}} を実行するとウィンドウや任意の領域をインタラクティブに選択することが可能です。
 
   
  +
$ maim ''filename''
{{Note|'''graphicsmagick''' を使いたい場合は、"gm" を前に付けて下さい、例: {{ic|$ gm import -window root screenshot.jpg}}。}}
 
   
  +
領域選択の UI を表示して、ファイルに保存するには:
==== 複数の X 画面のスクリーンショット ====
 
   
  +
$ maim --select ''filename''
twinview または dualhead で使っている場合、2回スクリーンショットを取得して {{Ic|imagemagick}} を使って貼り付けます:
 
{{bc|
 
import -window root -display :0.0 -screen /tmp/0.png
 
import -window root -display :0.1 -screen /tmp/1.png
 
convert +append /tmp/0.png /tmp/1.png screenshot.png
 
rm /tmp/{0,1}.png
 
}}
 
   
  +
アクティブなウィンドウをファイルに保存するには ({{Pkg|xdotool}} がインストールされていると仮定します):
==== Xinerama ヘッドのスクリーンショット ====
 
   
  +
$ maim --window $(xdotool getactivewindow) ''filename''
Xinerama による multi-head セットアップでは仮想スクリーンが一つしかありません。物理的なスクリーンの高さに違いがあると、スクリーンショットにデッドスペースが出来てしまいます。こういう場合、それぞれの物理的なスクリーンごとにスクリーンショットを取得すると良いでしょう。Xinerama の情報が X サーバーから取り出せていれば、以下のスクリプトが動作します:
 
{{bc|<nowiki>
 
#!/bin/sh
 
xdpyinfo -ext XINERAMA | sed '/^ head #/!d;s///' |
 
while IFS=' :x@,' read i w h x y; do
 
import -window root -crop ${w}x$h+$x+$y head_$i.png
 
done
 
</nowiki>}}
 
   
  +
領域選択の UI を表示し、カーソルを除いて撮影し、クリップボードに保存するには ({{Pkg|xclip}} がインストールされていると仮定します):
==== アクティブなウィンドウ/フォーカスしたウィンドウのスクリーンショット ====
 
   
  +
$ maim -s | xclip -selection clipboard -t image/png -i
以下のスクリプトは現在フォーカスされているウィンドウのスクリーンショットを取得します。EWMH/NetWM 準拠の X ウィンドウマネージャで動作します。スクリーンショットを上書きしないように、ファイル名に取得時刻を使っています。
 
{{bc|<nowiki>
 
#!/bin/sh
 
activeWinLine=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)")
 
activeWinId=${activeWinLine:40}
 
import -window "$activeWinId" /tmp/$(date +%F_%H%M%S_%N).png
 
</nowiki>}}
 
   
  +
===== scrot =====
もしくは、次のコマンドは EWMH をサポートしているかどうかに関わらず動作します:
 
$ import -window "$(xdotool getwindowfocus -f)" /tmp/$(date +%F_%H%M%S_%N).png
 
   
  +
{{Pkg|scrot}} は、CLI からスクリーンショットを撮ることができ、撮影の遅延などの機能があります。デフォルトでは、カレントディレクトリにスクリーンショットを保存します。
{{Note|(dwb や zathura) プログラムのスクリーンショットが空になる場合は、{{ic|xdotool}} コマンドに {{ic|-frame}} を付けたり {{ic|-f}} を削除してみてください。}}
 
   
  +
$ scrot -t 20 -d 5
=== GIMP ===
 
   
  +
上記のコマンドは、ウェブ投稿用にサムネイル付き (元画像の20%) の日付のつけられた ''.png'' ファイルに保存します。この例では、5秒経ってから撮影します。
GIMP を使ってスクリーンショットを取得することもできます (''File > Create > Screenshot''...)。
 
   
  +
ファイルへの保存時に標準的な日付と時間の形式を使うこともできます。例:
=== xwd ===
 
   
  +
$ scrot ~/screenshots/%Y-%m-%d-%T-screenshot.png
ルートウィンドウのスクリーンショットを取得:
 
$ xwd -root -out screenshot.xwd
 
   
  +
このコマンドは、ファイル名に現在の年、月、日、時、分、そして秒を付け、ホームディレクトリ内の "screenshots" という名前のフォルダ内にスクリーンショットを保存します。
{{Note|{{ic|import}} でアクティブウィンドウのスクリーンショットを取得する方法でも {{ic|xwd}} を使うことができます。}}
 
   
  +
詳細は {{man|1|scrot}} を参照してください。
=== scrot ===
 
   
  +
{{Note|一部のウィンドウマネージャ ({{AUR|dwm}}、{{Pkg|xmonad}}、その他も該当する可能性あり) では、ウィンドウマネージャのキーボードショートカットから {{ic|scrot -s}} を実行しても正しく機能しません。この問題は、scrot の実行を少し遅らせることで回避できます: {{ic|sleep 0.2; scrot -s}}。}}
{{Pkg|scrot}} を使えば CLI からスクリーンショットを撮ることができ、シャッターを押すまでの待機時間をユーザーが定義できるなどの機能があります。特に指定がなければ、カレントディレクトリにファイルが保存されます。
 
$ scrot -t 20 -d 5
 
   
  +
=== デスクトップ環境固有 ===
上記のコマンドは日付が入った {{ic|.png}} ファイルが作成され、ウェブ投稿用にサムネイルも作られます (元の画像の 20%)。上の例ではキャプチャするまで5秒間待ちます。
 
   
  +
==== Budgie ====
ファイルに保存するときに標準的な日付のフォーマットを使うこともできます、例えば:
 
$ scrot ~/screenshots/%Y-%m-%d-%T-screenshot.png
 
   
このコマンドでホームディレクトリの "screenshots" という名前のフォルダに、現在の年・月・日・時間・分・秒がファイル名のスクリーンショットが保存されます。
+
[[Budgie]] にBudgieScreenshot という独自のスクリーンショットユーティリティあります。
   
  +
このユーティリティは {{ic|PrintScreen}} で画面全体、アクティブなウィンドウ、選択した領域をキャプチャできます。特定のアクションのショートカットは [https://docs.buddiesofbudgie.org/user/keyboard-shortcuts/#budgie Keyboard Shortcuts] を見てください。
詳しくは {{man|1|scrot}} を見て下さい。[https://github.com/kaihendry/Kai-s--HOME/tree/master/bin] のようにファイルのアップロードを自動化することもできます。
 
   
  +
==== Cinnamon ====
{{Note|一部のウィンドウマネージャでは ([[dwm]] や [[xmonad]] など)、{{ic|scrot -s}} がウィンドウマネージャのキーボードショートカットで正しく動作しないことがあります。scrot を実行する前に短いポーズを挟むことで問題を解決できます: {{ic|sleep 0.2; scrot -s}}。}}
 
   
  +
デフォルトの [[Cinnamon]] 環境では、スクリーンショットユーティリティが提供されていません。{{Pkg|gnome-screenshot}} をインストールすることで、''Menu > Accessories > Screenshot'' から、または {{ic|PrintScreen}} を押してスクリーンショットを撮ることができるようになります。
=== escrotum ===
 
   
  +
==== GNOME ====
{{AUR|escrotum-git}} は pygtk を使って画面をキャプチャします。scrot にインスパイアされています。
 
   
  +
[[GNOME]] ユーザーは {{ic|PrintScreen}} を押すか、システムメニューのカメラアイコンをクリックすることで、スクリーンショットを撮ることができます。任意で、{{Pkg|gnome-screenshot}} をインストールすれば、''Apps > Accessories > Take Screenshot'' からスクリーンショットツールを開くことができます。
選択モードを使った時に scrot ではウィンドウのリフレッシュでバグが発生するので開発されました。
 
   
  +
GNOME には、{{ic|Ctrl+Shift+Alt+r}} を押すことで使用できる内臓のスクリーン録画ツールがあります。録画中は、画面右下の角に赤い丸が表示されます。録画が終わると、{{ic|Screencast from %d%u-%c.webm}} という名前のファイルが {{ic|Videos}} ディレクトリ内に作成されます。スクリーンキャスト機能を使用するには、{{Pkg|gst-plugin-pipewire}} パッケージと {{Pkg|gst-plugins-good}} パッケージをインストールする必要があります。
コマンドラインインターフェースは scrot とほぼ同じなので、そのまま同じように使うことができます。
 
   
=== imlib2 ===
+
==== KDE ====
  +
  +
[[KDE]] を使っている場合、''Spectacle'' を使用すると良いかもしれません。
  +
  +
Spectacle は {{Pkg|spectacle}} パッケージで提供されています。
  +
  +
==== Xfce ====
  +
  +
[[Xfce]] を使っている場合 {{Pkg|xfce4-screenshooter}} をインストールしてキーボードバインディングを追加することができます:
  +
  +
''Xfce Menu > Settings > Keyboard > Application Shortcuts''
  +
  +
Screenshot プロンプトをスキップしたい場合は、オプションのターミナルに {{ic|$ xfce4-screenshooter -h}} と入力してください。
  +
  +
==== 他のデスクトップ環境やウィンドウマネージャ ====
  +
  +
[[LXDE]] などの他のデスクトップ環境や、[[Openbox]] や [[Compiz]] といったウィンドウマネージャでは、先に挙げたコマンドをスクリーンショットを撮るホットキーに追加することができます。例えば:
  +
  +
$ import -window root ~/Pictures/$(date '+%Y%m%d-%H%M%S').png
  +
  +
{{ic|import}} は {{Pkg|imagemagick}} パッケージに含まれています。Compiz で上記のコマンドを {{ic|PrintScreen}} キーにに割り当てれば、日付と時間を含むファイル名でスクリーンショットを Pictures フォルダに保存することができます。
  +
  +
Openbox の {{ic|rc.xml}} ファイルではコンマは認識されないことに注意してください。なので、Openbox で {{ic|PrintScreen}} キーに先のコマンドをバインドするには、以下の記述を {{ic|rc.xml}} ファイルの keyboard セクションに追加する必要があります:
  +
  +
{{hc|rc.xml|<nowiki>
  +
<!-- 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>
  +
</nowiki>}}
  +
  +
{{ic|PrintScreen}} でバインドできない場合は、[[キーボード入力]] の記事を参照し、他の ''keysym'' または ''keycode'' を使ってください。
  +
  +
=== スクリーンショットユーティリティが含まれているパッケージ ===
  +
  +
==== ImageMagick/GraphicsMagick ====
  +
  +
[[ImageMagick#スクリーンショットの取得]] を参照。
  +
  +
==== GIMP ====
  +
  +
[[GIMP]] を使ってスクリーンショットを取得することもできます (''File > Create > Screenshot''...)。
  +
  +
==== imlib2 ====
  +
  +
{{Pkg|imlib2}} にはスクリーンショットを取得するためのバイナリ {{ic|imlib2_grab}} が含まれています。フルスクリーンのスクリーンショットを撮るには:
   
{{Pkg|imlib2}} にはスクリーンショットを取得するためのバイナリ {{ic|imlib2_grab}} が含まれています。フルスクリーンのスクリーンショットを取得するには、次を入力:
 
 
$ imlib2_grab screenshot.png
 
$ imlib2_grab screenshot.png
   
  +
==== FFmpeg ====
実は {{Pkg|scrot}} は {{ic|imlib2}} を使っています。
 
   
  +
[[FFmpeg#スクリーンキャプチャ]] を参照。
=== maim ===
 
   
  +
== スクリーンキャストソフトウェア ==
{{Pkg|maim}} は scrot の向上版を目指しています。
 
   
  +
[[FFmpeg#スクリーンキャプチャ]] と [[Wikipedia:Comparison of screencasting software]] も参照してください。
scrot の欠点を補っており [https://github.com/naelstrof/slop slop] で領域のスクリーンショットを取得します。
 
   
  +
スクリーンキャストユーティリティは、デスクトップや個々のウィンドウのビデオを作成することができます。
=== FFmpeg ===
 
   
  +
* {{App|Deepin Screen Recorder|Deepin デスクトップ用の画面録画アプリケーション。|https://www.deepin.org/en/original/deepin-screen-recorder/|{{Pkg|deepin-screen-recorder}}}}
[[FFmpeg]] は X11 のスクリーンをキャプチャできる x11grab デバイスを提供しています。
 
  +
* {{App|FFcast|Bash で書かれた FFmpeg ベースのスクリーンキャストツール。|https://github.com/lolilolicon/FFcast|{{AUR|ffcast}}}}
  +
* {{App|GPU Screen Recorder|パフォーマンスを大幅に向上させるために GPU で画面を録画するスクリーンレコーダー。そのパフォーマンスは NVIDIA ShadowPlay に匹敵します。ライブストリーミングや再生バッファもサポートしています。|https://git.dec05eba.com/gpu-screen-recorder-gtk/about/|{{AUR|gpu-screen-recorder-gtk-git}}}}
  +
* {{App|Green Recorder|Linux システム用のシンプルかつ機能的なデスクトップレコーダー。|https://github.com/dvershinin/green-recorder|{{AUR|green-recorder}}}}
  +
* {{App|Kazam|デザイン性を念頭に置いたスクリーンキャストプログラム。マルチスクリーンの環境でも使えます。|https://launchpad.net/kazam|{{AUR|kazam}}}}
  +
* {{App|Kooha|最小限の GTK インターフェイスを備えたシンプルなスクリーンレコーダー。|https://github.com/SeaDve/Kooha|{{Pkg|kooha}}}}
  +
* {{App|menyoki|コマンドライン上でスクリーンキャプチャを撮り、ImageOps を実行します。X11 のみですが、Wayland のサポートも計画されています。|https://github.com/orhun/menyoki|{{Pkg|menyoki}}}}
  +
* {{App|[[Open Broadcaster Software]]|録画及びライブストリーミングのためのアプリケーション。|https://obsproject.com/|{{Pkg|obs-studio}}}}
  +
:* {{AUR|obs-gnome-screencast}} – GNOME screencast 機能のためのプラグイン。Wayland をサポートしています。
  +
* {{App|[[Wikipedia:Peek_(software)|Peek]]|GIF、APNG、WebM、MP4 のアニメーションを作成できるシンプルなスクリーンキャストツール。(2023年1月の時点で、開発は行われていません)。|https://github.com/phw/peek|{{Pkg|peek}}}}
  +
* {{App|RecApp|GTK で書かれたユーザーフレンドリーなスクリーンキャストツール。フリーな GStreamer モジュールを使用しており、FFmpeg には依存していません (もはや開発されていません)。|https://github.com/amikha1lov/RecApp|{{AUR|recapp}}}}
  +
* {{App|[[RecordMyDesktop]]|デスクトップを録画して ogg 形式に落とす、簡単に使えるユーティリティ。CLI、GTK、Qt のインターフェイスを利用可能。(開発は活発ではありません)|https://recordmydesktop.sourceforge.net/|CLI: {{Pkg|recordmydesktop}}、GTK2: {{AUR|gtk-recordmydesktop}}}}
  +
* {{App|screencast|FFmpeg で X11 デスクトップを録画するコマンドラインインターフェイス。オフライン録画とライブストリーミングの両方をサポートしています。|https://github.com/dbermond/screencast/|{{AUR|screencast}}}}
  +
* {{App|Screencast|''Elementary OS'' 用に設計されたシンプルなスクリーンキャストレコーダー。|https://github.com/artemanufrij/screencast|{{AUR|pantheon-screencast}}}}
  +
* {{App|[[Wikipedia:SimpleScreenRecorder|SimpleScreenRecorder]]|C++/Qt5 で書かれた、機能が豊富な画面録画ツール。X11 と OpenGL をサポートしています。|https://www.maartenbaert.be/simplescreenrecorder/|{{AUR|simplescreenrecorder}}}}
  +
* {{App|Spectacle|スクリーンキャプチャのための [[KDE]] アプリケーション。Wayland でのデスクトップ全体や単一画面、単一ウィンドウの (無音声) 録画をサポートしています。{{Grp|kde-graphics}} グループの一部です (Kwin が有効化されている状態でのみ動作するため、他のウィンドウマネージャでは使用できません)。|https://apps.kde.org/spectacle/|{{Pkg|spectacle}}}}
  +
* {{App|VokoScreen|GStreamer を使用する強力な GUI スクリーンキャストツール。数々のコーデックをサポートし、内外 (マイクロカメラとウェブカメラ) 及び画面/ウィンドウ/ビューソースの音声付きの録画、ズーム、マウス領域とボタンのハイライトが可能です。ただし、Wayland サポートは限られています。|https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html|{{Pkg|vokoscreen}}}}
  +
* {{App|Wayfarer|Xorg 及び Pipewire が動作している Wayland 用の GTK4 スクリーンレコーダー。|https://github.com/stronnag/wayfarer|{{AUR|wayfarer}}}}
   
  +
== Wayland ==
ディスプレイの''横幅''x''高さ''を指定してスクリーンショットを取得:
 
   
  +
Wlroots ベースのコンポジタでは {{Pkg|grim}} や ''grimshot'' ({{Pkg|sway-contrib}} パッケージ) でスクリーンショットを撮ることができます。動画は、{{Pkg|wf-recorder}} (または {{AUR|wf-recorder-git}}) で撮ることができます。さらに、{{AUR|wlrobs-hg}} は、wlroot ベースのコンポジタでのスクリーンキャプチャーを可能にする {{Pkg|obs-studio}}プラグインです。また任意で、キャプチャする画面領域を選択するために {{Pkg|slurp}} を使用できます。GPU が [[VA-API]] エンコードをサポートしている場合、{{Pkg|wf-recorder}} の代わりに {{AUR|wl-screenrec-git}} を使えば、より高速に動作する可能性があります。
$ ffmpeg -f x11grab -video_size ''width''x''height'' -i $DISPLAY -vframes 1 screen.png
 
   
  +
画面全体のスクリーンショットを撮る:
上記のコマンドでは PNG コーデック (ロスレスでスクリーンショットに向いている) を使っていますが、他の画像コーデックも使うことができます。
 
   
  +
$ grim screenshot.png
同じデバイスを使ってスクリーンキャストも可能です (ディスプレイのリフレッシュレートを ''rate'' HZ で指定):
 
   
  +
Sway で現在のウィンドウのスクリーンショットを撮る:
$ ffmpeg -f x11grab -video_size ''width''x''height'' -framerate ''rate'' -i $DISPLAY -c:v libx264 -preset ultrafast cast.mkv
 
   
  +
$ swaymsg -t get_tree | jq -r '.. | select(.focused?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | grim -g - screenshot.png
上記のコマンドでは、エンコード速度が一番高速な x264 コーデックを使っていますが、他のコーデックも使えます。ただし (ディスクのパフォーマンスが足りなかったりエンコードが遅かったりして) フレームの書き込みが遅すぎると、フレームが抜け落ちて出力された動画は飛び飛びになります。
 
   
  +
[[Hyprland]] で現在のウィンドウのスクリーンショットを撮る:
=== Weston ===
 
   
  +
$ hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | grim -g - screenshot.png
Wayland のコンポジットマネージャである [[Wayland#Weston|Weston]] では、{{ic|Super+s}} を押すことでスクリーンショットを撮影することができ、Weston の現在の作業ディレクトリに保存されます。スクリーンキャストもサポートされています。録画の開始と停止は {{ic|Super+r}} を押すことで行われ、Weston の現在の作業ディレクトリに {{ic|capture.wcap}} という名前のファイルが作成されます。{{ic|wcap-decode --yuv4mpeg2 capture.wcap}} を実行することでキャプチャを YUV フォーマットにデコードできます。このコマンドの出力をファイルに書き込んだり、FFmpeg にパイプして更に処理を加えることもできます。
 
   
  +
画面の一部のスクリーンショットを撮る:
== デスクトップ環境による方法 ==
 
   
  +
$ slurp | grim -g - screenshot.png
=== Spectacle ===
 
   
  +
画面の一部のスクリーンショットを攝り、{{Pkg|wl-clipboard}} を使ってクリップボートに貼り付ける:
[[KDE]] を使っている場合、{{ic|Spectacle}} を使用すると良いでしょう。{{ic|Prnt Scr}} で使うことができます。
 
   
  +
$ slurp | grim -g - - | wl-copy
Spectacle は {{Pkg|spectacle}} に入っています。
 
   
  +
画面全体の動画を撮る:
=== Xfce Screenshooter ===
 
   
  +
$ wf-recorder -f recording.mp4
[[Xfce]] を使っている場合 {{Pkg|xfce4-screenshooter}} をインストールしてキーボードバインディングを追加することができます:
 
   
  +
画面の一部の動画を撮る:
''Xfce Menu > Settings > Keyboard > Application Shortcuts''
 
   
  +
$ wf-recorder -g "$(slurp)"
Screenshot プロンプトをスキップしたい場合は、オプションのターミナルに {{ic|$ xfce4-screenshooter -h}} と入力してください。
 
   
  +
{{Tip|
=== GNOME ===
 
  +
* [https://github.com/de-arl/slurpshot slurpshot] は、{{Pkg|bemenu}} を使用するインタラクティブなスクリーンショットスクリプトです。
  +
* {{Pkg|swappy}} などの、スクリーンショット後に画像の編集・描画ツールを使うには: {{ic|grim -g "$(slurp)" - {{!}} swappy -f -}}
  +
}}
   
  +
また、上記の一部のプログラムは Wayland でのみ動作します (例: {{Pkg|ksnip}}、{{AUR|green-recorder}})。
[[GNOME]] ユーザーは {{ic|Prnt Scr}} を押すか ''Apps > Accessories > Take Screenshot'' でスクリーンショットが取れます。{{Pkg|gnome-screenshot}} をインストールする必要があります。
 
   
=== Cinnamon ===
+
=== スクリーンキャスト ===
[[Cinnamon]] はデフォルトでスクリーンショットユーティリティがインストールされません。{{Pkg|gnome-screenshot}} をインストールするとスクリーンショットが有効になり、''Menu > Accessories > Screenshot'' または {{ic|Prnt Scr}} を押すことで撮影できるようになります。
 
   
  +
==== GNOME screencast を使う ====
=== 他のデスクトップ環境やウィンドウマネージャ ===
 
   
  +
{{AUR|green-recorder}}、{{AUR|obs-gnome-screencast}}、及び {{Pkg|obs-studio}} は、GNOME screencast 機能を使用した Wayland での画面録画をサポートしています。
[[LXDE]] などのデスクトップ環境や [[Openbox]] や [[Compiz]] などのウィンドウマネージャの場合、上述のコマンドをホットキーに追加してスクリーンショットを撮影することができます。例えば:
 
$ import -window root ~/Pictures/$(date '+%Y%m%d-%H%M%S').png
 
上のコマンドを {{ic|Prnt Scr}} キーに追加すれば Compiz でスクリーンショットを取得して Pictures フォルダに日付を付けて保存できます。Openbox の {{ic|rc.xml}} ファイルではコンマを使えないので、Openbox でこのコマンドを {{ic|Prnt Scr}} キーに指定するには、{{ic|rc.xml}} ファイルのキーボードセクションに以下を追加する必要があります:
 
   
  +
==== Hyprland を使う ====
{{hc|rc.xml|<nowiki>
 
  +
<!-- Screenshot -->
 
  +
[[Hyprland]] ウィンドウマネージャでは、{{Pkg|xdg-desktop-portal-hyprland}} を使用している場合、[[OBS]] でスクリーンキャストと録画を行うことができます (個々のウィンドウやワークスペースの選択も可)。[https://wiki.hyprland.org/Useful-Utilities/Screen-Sharing/]
<keybind key="Print">
 
  +
<action name="Execute">
 
  +
==== 仮想 Web カメラのビデオフィードを使う ====
<command>sh -c "import -window root ~/Pictures/$(date '+%Y%m%d-%H%M%S').png"</command>
 
  +
</action>
 
  +
[[v4l2loopback#wf-recorder を使って Wayland をキャストする]] を参照してください。
</keybind>
 
  +
</nowiki>}}
 
  +
{{Tip|
  +
* この方法は、{{AUR|zoom}} デスクトップクライアントを {{Pkg|xorg-xwayland}} で動作させたケースと、[https://bigbluebutton.org/ BigBlueButton] を {{Pkg|chromium}} 内で動作させたケース ({{Pkg|firefox}} では解像度が低い) でテストされました。{{AUR|skypeforlinux-bin}} は、仮想ビデオデバイス {{ic|VirtualVideoDevice}} を検出しますが、空の画面しか出力しません。
  +
* この例では {{ic|wf-recorder}} を使用していますが、その他のソフトウェアも使用できます。単に出力を仮想デバイスに流すだけです。
  +
}}
  +
  +
{{Pkg|wf-recorder}} (または {{AUR|wf-recorder-git}}) および {{Pkg|v4l2loopback-dkms}} をインストールしてください。そして、以下のパラメータを指定して {{ic|v4l2loopback}} カーネルモジュールをロードしてください:
  +
  +
# modprobe v4l2loopback exclusive_caps=1 card_label=VirtualVideoDevice
  +
  +
新しい仮想ビデオデバイス {{ic|VirtualVideoDevice}} が作成されたことを確認してください:
  +
  +
{{hc|$ v4l2-ctl --list-devices|
  +
...
  +
VirtualVideoDevice (platform:v4l2loopback-000):
  +
/dev/video2
  +
...
  +
}}
  +
  +
{{ic|wf-recorder}} で画面の録画を開始し、{{ic|v4l2loopback}} によって作成された新しい仮想ビデオデバイス {{ic|VirtualVideoDevice}} に出力を送ってください:
  +
  +
$ wf-recorder --muxer=v4l2 --codec=rawvideo --file=/dev/video2 -x yuv420p
  +
  +
ここで {{ic|yuv420p}} 色空間を使用しているのは、映像出力に Zoom との互換性を持たせるためです。[https://github.com/ammen99/wf-recorder/pull/43]
  +
  +
{{Tip|{{ic|Unknown V4L2 pixel format equivalent for rgb0}} というエラーが発生する場合は、{{ic|--force-yuv}} または {{ic|-t}} を付けて {{ic|wf-recorder}} を実行して、データを GPU に送る前に強制的に yuv フォーマットに変換してください。[https://github.com/ammen99/wf-recorder/issues/164]}}
  +
  +
これで、先の仮想ビデオデバイスをビデオ通話/ビデオ会議アプリケーションで "ウェブカメラ" として選択できるようになりました (デバイスは {{ic|VirtualVideoDevice}} という名前です)。仮想ビデオデバイスがきちんとスクリーン共有を出力していることは、{{ic|ffplay}} ({{Pkg|ffmpeg}} の一部) や {{Pkg|mpv}}、{{ic|gst-launch}} ({{Pkg|gstreamer}} の一部) を使用して確認できます:
  +
  +
$ ffplay /dev/video2
  +
  +
$ mpv av://v4l2:/dev/video2
  +
  +
$ gst-launch-1.0 -v v4l2src device=/dev/video2 ! glimagesink
  +
  +
Firefox がビデオストリームを読み取ることができず、"AbortError: Starting video failed" のようなメッセージを出力する場合、{{ic|v4l2compat.so}} をプリロードしてみてください:
  +
  +
$ LD_PRELOAD=/usr/lib/v4l1compat.so firefox
  +
  +
===== 個々のアプリケーションの共有 =====
  +
  +
{{Warning|この方法では、ウィンドウがリサイズされても共有される領域は変わらないため、個々のウィンドウの共有の適切な実装とは言えません。}}
  +
  +
先に説明した通り、{{ic|wf-recorder}} は、{{Pkg|slurp}} で事前に選択した画面領域のみを録画することができます。この機能を使って、特定の領域/アプリケーションウィンドウを共有して仮想ビデオデバイスに出力を流すには、以下のコマンドで画面の録画を開始してください:
  +
  +
$ wf-recorder '''-g "$(slurp)"''' --muxer=v4l2 --codec=rawvideo --file=/dev/video2 -x yuv420p
  +
  +
画面の領域を選択したら、先に説明したように仮想ビデオデバイス {{ic|/dev/video2}} 経由でビデオフィードにアクセスできるようになります。
  +
  +
==== WebRTC プロトコルを使う ====
  +
  +
{{Note|この方法では出力全体しか共有できず、個々のアプリケーションを共有することはできません。[https://github.com/emersion/xdg-desktop-portal-wlr/wiki/FAQ#will-this-let-me-share-individual-windows]}}
  +
  +
[[PipeWire#WebRTC 画面共有]] を参照してください。
  +
  +
Chromium と Firefox は画面共有にアクセスできるはずです。[https://mozilla.github.io/webrtc-landing/gum_test.html Mozilla の getUserMedia / getDisplayMedia テストページ]でテストできます。
  +
  +
=== X11 アプリケーションで Wayland ウィンドウをスクリーンキャストする ===
   
  +
ネイティブな Wayland ウィンドウ (あるいはスクリーン/ワークスペース全体) は X11 アプリケーションに共有することができます。そのためには {{Pkg|xwaylandvideobridge}} アプリケーションを使う必要があります。詳細は [http://blog.davidedmundson.co.uk/blog/xwaylandvideobridge/ Fixing Wayland: Xwayland screen casting] を見てください。
上記の {{ic|Print}} が動作しない場合、[[特別なキーボードキー]]をみて、別の''キーシム''や''キーコード''を使って下さい。
 
   
 
== ターミナル ==
 
== ターミナル ==
   
=== ansi コードで出力 ===
+
=== ANSI コードでキャプチャする ===
   
{{Pkg|util-linux}} パッケージに含まれている、{{ic|script}} コマンドを使うことができます。{{ic|$ script}} と入力すればその瞬間から、全ての出力は (ansi コードを含めて) {{ic|typescript}} ファイルに保存されるようになります。
+
{{Pkg|util-linux}} パッケージに含まれている、{{man|1|script}} コマンドを使うことができます。{{ic|script}} を実行すればその瞬間から、全ての出力は (ANSI コードを含めて) {{ic|typescript}} ファイルに保存されるようになります。
   
終わったら、{{ic|exit}} と入力するだけで {{ic|typescript}} が作成されます。作成されたファイルは [[AUR]] の {{AUR|ansi2html}} パッケージを使って html に変換できます。
+
終わったら、{{ic|exit}} と入力するだけで {{ic|typescript}} が作成されます。作成されたファイルは {{AUR|ansi2html}} パッケージを使って HTML に変換できます ({{Pkg|python-ansi2html}} の ansi2html と混同しないように)
   
 
{{ic|typescript}} ファイルを {{ic|typescript.html}} に変換するには、次を実行:
 
{{ic|typescript}} ファイルを {{ic|typescript.html}} に変換するには、次を実行:
211行目: 313行目:
 
$ ls --color|ansi2html --bg=dark >output.html
 
$ ls --color|ansi2html --bg=dark >output.html
   
どんなコマンドでも使えるというわけではないので、その場合は、{{ic|script}} を使う必要があります。
+
これはどんなコマンドでも使えるというわけではないので、その場合は、{{ic|script}} を使う必要があります。
   
=== 仮想端末 ===
+
=== フレームバッファ ===
   
[[Uvesafb]] をインストールして {{AUR|fbgrab}} または {{AUR|fbdump}} を使てスクリーンショットを取得してください
+
何かしらの[[フレームバッファ]]をインストールして{{Pkg|fbgrab}} {{AUR|fbdump}} を使用してスクリーンショットを撮ることができます
  +
  +
=== 仮想コンソール ===
  +
  +
==== スクリーンショット ====
  +
  +
単にコンソールの文章を取得したいだけで実際の画像は要らない場合、{{Pkg|util-linux}} パッケージに含まれている {{ic|setterm}} を使うことができます。以下のコマンドは仮想コンソール 1 のテキストをカレントディレクトリの {{ic|screen.dump}} ファイルに保存します:
   
単にコンソールの文章を取得したいだけで画像は要らない場合、{{Pkg|util-linux}} パッケージに含まれている {{ic|setterm}} を使うことができます。以下のコマンドは仮想端末1のテキストをカレントディレクトリの screen.dump ファイルに保存します:
 
 
# setterm -dump 1 -file screen.dump
 
# setterm -dump 1 -file screen.dump
   
 
{{ic|/dev/vcs1}} の中身を読まないといけないので root 権限が必要です。
 
{{ic|/dev/vcs1}} の中身を読まないといけないので root 権限が必要です。
  +
  +
==== コンソールのスクリーンキャスト ====
  +
  +
{{Pkg|asciinema}} は、ターミナルセッションのアクティビティ全体を録画することができます。結果は、asciinema 独自の (オープンな) 形式でファイルに保存されます。このファイルは同ツールまたはツールの HTML5 バージョンで再生でき、このツールの公式ウェブサイト asciinema.org で共有することができますし、あるいは HTML バージョンを自身でホストして共有することもできます。
  +
  +
使用方法は {{man|1|asciinema}} や {{ic|asciinema --help}} で確認できます。
  +
  +
* {{ic|asciinema rec ''output.cast''}} はセッションを録画し、{{ic|Ctrl+\}} でポーズ/再開、{{ic|Ctrl-d}}/またはセッションを終了することで録画を停止できます。出力ファイル名は省略可能です。
  +
  +
録画に関する有用な引数:
  +
  +
* {{ic|-c ''command''}}: 特定のコマンドのアクション/出力だけを録画したい場合
  +
* {{ic|-i 1.2}}: 1.2 秒だけ録画
  +
* {{ic|-t "''beautiful title''"}}: ターミナルキャストにタイトルを追加
  +
  +
録画以外の機能:
  +
  +
* {{ic|asciinema play ''file.cast''}}: asciinmea ファイルを再生
  +
* {{ic|asciinema upload ''file.cast''}}: ファイルを asciinema.org にアップロードして共有
  +
* {{ic|asciinema auth}}: asciinema.org アカウント上の録画ファイルを管理
  +
  +
== トラブルシューティング ==
  +
  +
=== スクリーンショットで古い画面の状態が使われる ===
  +
  +
[[KDE#Spectacle のスクリーンショットでスクリーンの古い状態が使われてしまう]] を参照。
  +
  +
=== NVIDIA 環境で背景が切り取られる ===
  +
  +
プロプライエタリな {{Pkg|nvidia}} ドライバを使用していて、画面録画中に背景が切り取られる場合、{{ic|ForceCompositionPipeline}} 設定を有効化してください。詳細は [[NVIDIA/トラブルシューティング#画面のティアリングを抑える]] を参照。
  +
  +
{{TranslationStatus|Screen capture|2024-11-07|820152}}

2024年11月7日 (木) 16:32時点における最新版

関連記事

この記事では、スクリーンショットスクリーンキャストのソフトウェアを一覧にして解説しています。

スクリーンショットソフトウェア

専用のソフトウェア

アプリケーションの一覧

  • CoreShotXorg 用のスクリーンキャプチャユーティリティ。C-Suite の一部。
https://cubocore.gitlab.io/ || coreshotAUR
  • Escrotumscrot からインスパイアされた、PyGTK 製のスクリーンキャプチャツール。Scrot の代替として使えます。
https://github.com/Roger/escrotum || escrotum-gitAUR
  • Flameshot — インタラクティブにスクリーンショットを撮ることができる Qt ベースのソフトウェア。
https://github.com/lupoDharkael/flameshot || flameshot
  • GNOME Screenshot — GNOME デスクトップ環境用のスクリーンショットツール。
https://gitlab.gnome.org/GNOME/gnome-screenshot/ || gnome-screenshot
https://sr.ht/~emersion/grim/ || grim
  • gscreenshotscrotImageMagickPILimlib2grim といった様々なスクリーンショットバックエンドのための 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 ベースのクロスプラットホームなスクリーンショットツールで、多くの注釈機能、基本的な画像編集、リモート (ftp、imgur、スクリプト) へのアップロード機能を提供します。
https://github.com/ksnip/ksnip || ksnip
  • Lightscreen — スクリーンショットの保存や整理などの面倒な処理を自動化するシンプルなツール。このツールはバックグラウンドプロセスとして動作し、ユーザーの設定に応じて1つ (または複数) のホットキーでスクリーンショットを撮り、ディスクに保存することができます。
https://lightscreen.com.ar || lightscreenAUR
  • LXImage-QtLXImage イメージビューアとスクリーンショットツールの Qt 移植版。(lximage-qt --screenshot で実行します。)
https://github.com/lxde/lximage-qt || lximage-qt
  • maim — スクリーンショットを撮るシンプルなコマンドラインユーティリティ。Scrot を置き換えることを目的としており、多くの点で scrot より優れています。
https://github.com/naelstrof/maim || maim
  • MATE ScreenshotMATE デスクトップ用のスクリーンショットツール。
https://mate-desktop.org || mate-utils
  • menyoki — 画像編集機能のある、コマンドラインのスクリーンショット及びスクリーンキャストツール。
https://github.com/orhun/menyoki || menyoki
  • mss — 最小限の CLI を備えた、xrandr 互換のスクリーンショット Python モジュール。
https://pypi.org/project/mss/ || python-mss
  • Pantheon ScreenshotElementary 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
  • ShotgunRust で書かれた最小限の X スクリーンショットユーティリティ (作者によると、maim より2倍高速だそうです)。
https://github.com/neXromancers/shotgun || shotgun
https://shutter-project.org/ || shutter
  • Spectacle — スクリーンキャプチャのための KDE アプリケーション。デスクトップ全体、単一のウィンドウ、ウィンドウの一セクション、選択した矩形領域、及びフリーハンドで選択した領域を撮影することができます。kde-graphics グループの一部です。
https://apps.kde.org/spectacle/ || spectacle
  • Xfce4-screenshooter — 画面全体、アクティブなウィンドウ、選択した領域を撮影できるアプリケーション及び Xfce パネルプラグイン。xfce4-goodies に含まれています。
https://docs.xfce.org/apps/screenshooter/start || xfce4-screenshooter
  • xwdX Window のキャプチャユーティリティ。
https://www.x.org/ || xorg-xwd

使用法

maim

maim は scrot の改良版となることを目指しています。

全画面をキャプチャしてファイルに保存するには:

$ maim filename

領域選択の UI を表示して、ファイルに保存するには:

$ maim --select filename

アクティブなウィンドウをファイルに保存するには (xdotool がインストールされていると仮定します):

$ maim --window $(xdotool getactivewindow) filename

領域選択の UI を表示し、カーソルを除いて撮影し、クリップボードに保存するには (xclip がインストールされていると仮定します):

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

scrot は、CLI からスクリーンショットを撮ることができ、撮影の遅延などの機能があります。デフォルトでは、カレントディレクトリにスクリーンショットを保存します。

$ scrot -t 20 -d 5

上記のコマンドは、ウェブ投稿用にサムネイル付き (元画像の20%) の日付のつけられた .png ファイルに保存します。この例では、5秒経ってから撮影します。

ファイルへの保存時に標準的な日付と時間の形式を使うこともできます。例:

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

このコマンドは、ファイル名に現在の年、月、日、時、分、そして秒を付け、ホームディレクトリ内の "screenshots" という名前のフォルダ内にスクリーンショットを保存します。

詳細は scrot(1) を参照してください。

ノート: 一部のウィンドウマネージャ (dwmAURxmonad、その他も該当する可能性あり) では、ウィンドウマネージャのキーボードショートカットから scrot -s を実行しても正しく機能しません。この問題は、scrot の実行を少し遅らせることで回避できます: sleep 0.2; scrot -s

デスクトップ環境固有

Budgie

Budgie には BudgieScreenshot という独自のスクリーンショットユーティリティがあります。

このユーティリティは PrintScreen で画面全体、アクティブなウィンドウ、選択した領域をキャプチャできます。特定のアクションのショートカットは Keyboard Shortcuts を見てください。

Cinnamon

デフォルトの Cinnamon 環境では、スクリーンショットユーティリティが提供されていません。gnome-screenshot をインストールすることで、Menu > Accessories > Screenshot から、または PrintScreen を押してスクリーンショットを撮ることができるようになります。

GNOME

GNOME ユーザーは PrintScreen を押すか、システムメニューのカメラアイコンをクリックすることで、スクリーンショットを撮ることができます。任意で、gnome-screenshot をインストールすれば、Apps > Accessories > Take Screenshot からスクリーンショットツールを開くことができます。

GNOME には、Ctrl+Shift+Alt+r を押すことで使用できる内臓のスクリーン録画ツールがあります。録画中は、画面右下の角に赤い丸が表示されます。録画が終わると、Screencast from %d%u-%c.webm という名前のファイルが Videos ディレクトリ内に作成されます。スクリーンキャスト機能を使用するには、gst-plugin-pipewire パッケージと gst-plugins-good パッケージをインストールする必要があります。

KDE

KDE を使っている場合、Spectacle を使用すると良いかもしれません。

Spectacle は spectacle パッケージで提供されています。

Xfce

Xfce を使っている場合 xfce4-screenshooter をインストールしてキーボードバインディングを追加することができます:

Xfce Menu > Settings > Keyboard > Application Shortcuts

Screenshot プロンプトをスキップしたい場合は、オプションのターミナルに $ xfce4-screenshooter -h と入力してください。

他のデスクトップ環境やウィンドウマネージャ

LXDE などの他のデスクトップ環境や、OpenboxCompiz といったウィンドウマネージャでは、先に挙げたコマンドをスクリーンショットを撮るホットキーに追加することができます。例えば:

$ import -window root ~/Pictures/$(date '+%Y%m%d-%H%M%S').png

importimagemagick パッケージに含まれています。Compiz で上記のコマンドを PrintScreen キーにに割り当てれば、日付と時間を含むファイル名でスクリーンショットを Pictures フォルダに保存することができます。

Openbox の rc.xml ファイルではコンマは認識されないことに注意してください。なので、Openbox で PrintScreen キーに先のコマンドをバインドするには、以下の記述を rc.xml ファイルの keyboard セクションに追加する必要があります:

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>

PrintScreen でバインドできない場合は、キーボード入力 の記事を参照し、他の keysym または keycode を使ってください。

スクリーンショットユーティリティが含まれているパッケージ

ImageMagick/GraphicsMagick

ImageMagick#スクリーンショットの取得 を参照。

GIMP

GIMP を使ってスクリーンショットを取得することもできます (File > Create > Screenshot...)。

imlib2

imlib2 にはスクリーンショットを取得するためのバイナリ imlib2_grab が含まれています。フルスクリーンのスクリーンショットを撮るには:

$ imlib2_grab screenshot.png

FFmpeg

FFmpeg#スクリーンキャプチャ を参照。

スクリーンキャストソフトウェア

FFmpeg#スクリーンキャプチャWikipedia:Comparison of screencasting software も参照してください。

スクリーンキャストユーティリティは、デスクトップや個々のウィンドウのビデオを作成することができます。

  • Deepin Screen Recorder — Deepin デスクトップ用の画面録画アプリケーション。
https://www.deepin.org/en/original/deepin-screen-recorder/ || deepin-screen-recorder
  • FFcast — Bash で書かれた FFmpeg ベースのスクリーンキャストツール。
https://github.com/lolilolicon/FFcast || ffcastAUR
  • GPU Screen Recorder — パフォーマンスを大幅に向上させるために GPU で画面を録画するスクリーンレコーダー。そのパフォーマンスは NVIDIA ShadowPlay に匹敵します。ライブストリーミングや再生バッファもサポートしています。
https://git.dec05eba.com/gpu-screen-recorder-gtk/about/ || gpu-screen-recorder-gtk-gitAUR
  • Green Recorder — Linux システム用のシンプルかつ機能的なデスクトップレコーダー。
https://github.com/dvershinin/green-recorder || green-recorderAUR
  • Kazam — デザイン性を念頭に置いたスクリーンキャストプログラム。マルチスクリーンの環境でも使えます。
https://launchpad.net/kazam || kazamAUR
  • Kooha — 最小限の GTK インターフェイスを備えたシンプルなスクリーンレコーダー。
https://github.com/SeaDve/Kooha || kooha
  • menyoki — コマンドライン上でスクリーンキャプチャを撮り、ImageOps を実行します。X11 のみですが、Wayland のサポートも計画されています。
https://github.com/orhun/menyoki || menyoki
https://obsproject.com/ || obs-studio
  • obs-gnome-screencastAUR – GNOME screencast 機能のためのプラグイン。Wayland をサポートしています。
  • Peek — GIF、APNG、WebM、MP4 のアニメーションを作成できるシンプルなスクリーンキャストツール。(2023年1月の時点で、開発は行われていません)。
https://github.com/phw/peek || peek
  • RecApp — GTK で書かれたユーザーフレンドリーなスクリーンキャストツール。フリーな GStreamer モジュールを使用しており、FFmpeg には依存していません (もはや開発されていません)。
https://github.com/amikha1lov/RecApp || recappAUR
  • RecordMyDesktop — デスクトップを録画して ogg 形式に落とす、簡単に使えるユーティリティ。CLI、GTK、Qt のインターフェイスを利用可能。(開発は活発ではありません)
https://recordmydesktop.sourceforge.net/ || CLI: recordmydesktop、GTK2: gtk-recordmydesktopAUR
  • screencast — FFmpeg で X11 デスクトップを録画するコマンドラインインターフェイス。オフライン録画とライブストリーミングの両方をサポートしています。
https://github.com/dbermond/screencast/ || screencastAUR
  • ScreencastElementary OS 用に設計されたシンプルなスクリーンキャストレコーダー。
https://github.com/artemanufrij/screencast || pantheon-screencastAUR
  • SimpleScreenRecorder — C++/Qt5 で書かれた、機能が豊富な画面録画ツール。X11 と OpenGL をサポートしています。
https://www.maartenbaert.be/simplescreenrecorder/ || simplescreenrecorderAUR
  • Spectacle — スクリーンキャプチャのための KDE アプリケーション。Wayland でのデスクトップ全体や単一画面、単一ウィンドウの (無音声) 録画をサポートしています。kde-graphics グループの一部です (Kwin が有効化されている状態でのみ動作するため、他のウィンドウマネージャでは使用できません)。
https://apps.kde.org/spectacle/ || spectacle
  • VokoScreen — GStreamer を使用する強力な GUI スクリーンキャストツール。数々のコーデックをサポートし、内外 (マイクロカメラとウェブカメラ) 及び画面/ウィンドウ/ビューソースの音声付きの録画、ズーム、マウス領域とボタンのハイライトが可能です。ただし、Wayland サポートは限られています。
https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html || vokoscreen
  • Wayfarer — Xorg 及び Pipewire が動作している Wayland 用の GTK4 スクリーンレコーダー。
https://github.com/stronnag/wayfarer || wayfarerAUR

Wayland

Wlroots ベースのコンポジタでは grimgrimshot (sway-contrib パッケージ) でスクリーンショットを撮ることができます。動画は、wf-recorder (または wf-recorder-gitAUR) で撮ることができます。さらに、wlrobs-hgAUR は、wlroot ベースのコンポジタでのスクリーンキャプチャーを可能にする obs-studioプラグインです。また任意で、キャプチャする画面領域を選択するために slurp を使用できます。GPU が VA-API エンコードをサポートしている場合、wf-recorder の代わりに wl-screenrec-gitAUR を使えば、より高速に動作する可能性があります。

画面全体のスクリーンショットを撮る:

$ grim screenshot.png

Sway で現在のウィンドウのスクリーンショットを撮る:

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

Hyprland で現在のウィンドウのスクリーンショットを撮る:

$ hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | grim -g - screenshot.png

画面の一部のスクリーンショットを撮る:

$ slurp | grim -g - screenshot.png

画面の一部のスクリーンショットを攝り、wl-clipboard を使ってクリップボートに貼り付ける:

$ slurp | grim -g - - | wl-copy

画面全体の動画を撮る:

$ wf-recorder -f recording.mp4

画面の一部の動画を撮る:

$ wf-recorder -g "$(slurp)"
ヒント:
  • slurpshot は、bemenu を使用するインタラクティブなスクリーンショットスクリプトです。
  • swappy などの、スクリーンショット後に画像の編集・描画ツールを使うには: grim -g "$(slurp)" - | swappy -f -

また、上記の一部のプログラムは Wayland でのみ動作します (例: ksnipgreen-recorderAUR)。

スクリーンキャスト

GNOME screencast を使う

green-recorderAURobs-gnome-screencastAUR、及び obs-studio は、GNOME screencast 機能を使用した Wayland での画面録画をサポートしています。

Hyprland を使う

Hyprland ウィンドウマネージャでは、xdg-desktop-portal-hyprland を使用している場合、OBS でスクリーンキャストと録画を行うことができます (個々のウィンドウやワークスペースの選択も可)。[1]

仮想 Web カメラのビデオフィードを使う

v4l2loopback#wf-recorder を使って Wayland をキャストする を参照してください。

ヒント:
  • この方法は、zoomAUR デスクトップクライアントを xorg-xwayland で動作させたケースと、BigBlueButtonchromium 内で動作させたケース (firefox では解像度が低い) でテストされました。skypeforlinux-binAUR は、仮想ビデオデバイス VirtualVideoDevice を検出しますが、空の画面しか出力しません。
  • この例では 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 で画面の録画を開始し、v4l2loopback によって作成された新しい仮想ビデオデバイス VirtualVideoDevice に出力を送ってください:

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

ここで yuv420p 色空間を使用しているのは、映像出力に Zoom との互換性を持たせるためです。[2]

ヒント: Unknown V4L2 pixel format equivalent for rgb0 というエラーが発生する場合は、--force-yuv または -t を付けて wf-recorder を実行して、データを GPU に送る前に強制的に yuv フォーマットに変換してください。[3]

これで、先の仮想ビデオデバイスをビデオ通話/ビデオ会議アプリケーションで "ウェブカメラ" として選択できるようになりました (デバイスは VirtualVideoDevice という名前です)。仮想ビデオデバイスがきちんとスクリーン共有を出力していることは、ffplay (ffmpeg の一部) や mpvgst-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 プロトコルを使う

ノート: この方法では出力全体しか共有できず、個々のアプリケーションを共有することはできません。[4]

PipeWire#WebRTC 画面共有 を参照してください。

Chromium と Firefox は画面共有にアクセスできるはずです。Mozilla の getUserMedia / getDisplayMedia テストページでテストできます。

X11 アプリケーションで Wayland ウィンドウをスクリーンキャストする

ネイティブな Wayland ウィンドウ (あるいはスクリーン/ワークスペース全体) は X11 アプリケーションに共有することができます。そのためには xwaylandvideobridge アプリケーションを使う必要があります。詳細は Fixing Wayland: Xwayland screen casting を見てください。

ターミナル

ANSI コードでキャプチャする

util-linux パッケージに含まれている、script(1) コマンドを使うことができます。script を実行すればその瞬間から、全ての出力は (ANSI コードを含めて) typescript ファイルに保存されるようになります。

終わったら、exit と入力するだけで typescript が作成されます。作成されたファイルは ansi2htmlAUR パッケージを使って HTML に変換できます (python-ansi2html の ansi2html と混同しないように)。

typescript ファイルを typescript.html に変換するには、次を実行:

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

また、コマンドによっては直接 ansi2html にパイプで渡すこともできます:

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

これはどんなコマンドでも使えるというわけではないので、その場合は、script を使う必要があります。

フレームバッファ

何かしらのフレームバッファをインストールして、fbgrabfbdumpAUR を使用してスクリーンショットを撮ることができます。

仮想コンソール

スクリーンショット

単にコンソールの文章を取得したいだけで実際の画像は要らない場合、util-linux パッケージに含まれている setterm を使うことができます。以下のコマンドは仮想コンソール 1 のテキストをカレントディレクトリの screen.dump ファイルに保存します:

# setterm -dump 1 -file screen.dump

/dev/vcs1 の中身を読まないといけないので root 権限が必要です。

コンソールのスクリーンキャスト

asciinema は、ターミナルセッションのアクティビティ全体を録画することができます。結果は、asciinema 独自の (オープンな) 形式でファイルに保存されます。このファイルは同ツールまたはツールの HTML5 バージョンで再生でき、このツールの公式ウェブサイト asciinema.org で共有することができますし、あるいは HTML バージョンを自身でホストして共有することもできます。

使用方法は asciinema(1)asciinema --help で確認できます。

  • asciinema rec output.cast はセッションを録画し、Ctrl+\ でポーズ/再開、Ctrl-d/またはセッションを終了することで録画を停止できます。出力ファイル名は省略可能です。

録画に関する有用な引数:

  • -c command: 特定のコマンドのアクション/出力だけを録画したい場合
  • -i 1.2: 1.2 秒だけ録画
  • -t "beautiful title": ターミナルキャストにタイトルを追加

録画以外の機能:

  • asciinema play file.cast: asciinmea ファイルを再生
  • asciinema upload file.cast: ファイルを asciinema.org にアップロードして共有
  • asciinema auth: asciinema.org アカウント上の録画ファイルを管理

トラブルシューティング

スクリーンショットで古い画面の状態が使われる

KDE#Spectacle のスクリーンショットでスクリーンの古い状態が使われてしまう を参照。

NVIDIA 環境で背景が切り取られる

プロプライエタリな nvidia ドライバを使用していて、画面録画中に背景が切り取られる場合、ForceCompositionPipeline 設定を有効化してください。詳細は NVIDIA/トラブルシューティング#画面のティアリングを抑える を参照。

翻訳ステータス: このページは en:Screen capture の翻訳バージョンです。最後の翻訳日は 2024-11-07 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。