コンテンツにスキップ

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

提供: ArchWiki
削除された内容 追加された内容
AshMyzk (トーク | 投稿記録)
同期
 
(4人の利用者による、間の29版が非表示)
1行目: 1行目:
[[Category:システム管理]]
[[Category:ソフトウェア一覧]]
[[Category:マルチメディア]]
[[Category:マルチメディア]]
[[Category:システム管理]]
[[cs:Taking a screenshot]]
[[en:Taking a screenshot]]
[[en:Screen capture]]
[[es:Taking a screenshot]]
[[es:Screen capture]]
[[fr:Capture d'écran]]
[[pt:Screen capture]]
[[ru:Taking a screenshot]]
[[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:スクリーンショット|スクリーンショット]]と[[Wikipedia:ja:スクリーンキャスト|スクリーンキャスト]]のソフトウェアを一覧にして解説しています。


16行目: 19行目:
=== 専用のソフトウェア ===
=== 専用のソフトウェア ===


==== アプリケーションの一覧 ====
* {{App|CoreShot|Simple lightweight screen capture utility for X11. Part of C-Suite.|https://cubocore.org/|{{AUR|coreshot}}}}
* {{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/|{{Pkg|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}}{{Broken package link|パッケージが存在しません}} に含まれています。|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|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}}}}


==== xwd ====
==== 使用法 ====


===== maim =====
{{man|1|xwd}} is provided by {{Pkg|xorg-xwd}}.


{{Pkg|maim}} は scrot の改良版となることを目指しています。
To take a screenshot of the root window:


全画面をキャプチャしてファイルに保存するには:
$ xwd -root -out screenshot.xwd


$ maim ''filename''
{{Tip|To obtain a delay before taking a screenshot, use the {{ic|sleep}} command. For example: {{ic|sleep 5; xwd ...}}.}}


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


$ maim --select ''filename''
{{Pkg|scrot}} enables taking screenshots from the CLI and offers features such as a user-definable time delay. Unless instructed otherwise, it saves the file in the current working directory.


アクティブなウィンドウをファイルに保存するには ({{Pkg|xdotool}} がインストールされていると仮定します):
$ scrot -t 20 -d 5


$ maim --window $(xdotool getactivewindow) ''filename''
The above command saves a dated ''.png'' file, along with a thumbnail (20% of original), for Web posting. It provides a 5 second delay before capturing in this instance.


領域選択の UI を表示し、カーソルを除いて撮影し、クリップボードに保存するには ({{Pkg|xclip}} がインストールされていると仮定します):
You can also use standard date and time formatting when saving to a file. e.g.,


$ maim -s | xclip -selection clipboard -t image/png -i
$ scrot ~/screenshots/%Y-%m-%d-%T-screenshot.png


===== scrot =====
saves the screenshot in a filename with the current year, month, date, hours, minutes, and seconds to a folder in your home directory called "screenshots"


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


$ scrot -t 20 -d 5
{{Note|In some window managers ({{AUR|dwm}}, {{Pkg|xmonad}} and possibly others) {{ic|scrot -s}} does not work properly when running via window manager's keyboard shortcut, this can be worked around by prepending scrot invocation with a short pause {{ic|sleep 0.2; scrot -s}}.}}


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


ファイルへの保存時に標準的な日付と時間の形式を使うこともできます。例:
{{AUR|escrotum-git}} screen capture using PyGTK, inspired by scrot


$ scrot ~/screenshots/%Y-%m-%d-%T-screenshot.png
Created because scrot has glitches when selection mode is used with refreshing windows.


このコマンドは、ファイル名に現在の年、月、日、時、分、そして秒を付け、ホームディレクトリ内の "screenshots" という名前のフォルダ内にスクリーンショットを保存します。
Because the command line interface its almost the same as scrot, can be used as a replacement of it.


詳細は {{man|1|scrot}} を参照してください。
==== maim ====


{{Note|一部のウィンドウマネージャ ({{AUR|dwm}}、{{Pkg|xmonad}}、その他も該当する可能性あり) では、ウィンドウマネージャのキーボードショートカットから {{ic|scrot -s}} を実行しても正しく機能しません。この問題は、scrot の実行を少し遅らせることで回避できます: {{ic|sleep 0.2; scrot -s}}。}}
{{Pkg|maim}} is aimed to be an improved scrot.


=== デスクトップ環境固有 ===
Save the full screen to file:


==== Budgie ====
$ maim ''filename''


[[Budgie]] には BudgieScreenshot という独自のスクリーンショットユーティリティがあります。
Prompt for selection and save to file:


このユーティリティは {{ic|PrintScreen}} で画面全体、アクティブなウィンドウ、選択した領域をキャプチャできます。特定のアクションのショートカットは [https://docs.buddiesofbudgie.org/user/keyboard-shortcuts/#budgie Keyboard Shortcuts] を見てください。
$ maim --select ''filename''


==== Cinnamon ====
Save the active window to file, assuming {{Pkg|xdotool}} is installed:


デフォルトの [[Cinnamon]] 環境では、スクリーンショットユーティリティが提供されていません。{{Pkg|gnome-screenshot}} をインストールすることで、''Menu > Accessories > Screenshot'' から、または {{ic|PrintScreen}} を押してスクリーンショットを撮ることができるようになります。
$ maim --window $(xdotool getactivewindow) ''filename''


==== GNOME ====
Prompt for selection, save without cursor, and store it to clipboard, assuming {{Pkg|xclip}} is installed:


[[GNOME]] ユーザーは {{ic|PrintScreen}} を押すか、システムメニューのカメラアイコンをクリックすることで、スクリーンショットを撮ることができます。任意で、{{Pkg|gnome-screenshot}} をインストールすれば、''Apps > Accessories > Take Screenshot'' からスクリーンショットツールを開くことができます。
$ maim -s | xclip -selection clipboard -t image/png -i


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


==== Spectacle ====
==== KDE ====


[[KDE]] を使っている場合、{{ic|Spectacle}} を使用すると良いょう。{{ic|Prnt Scr}} で使うことができ
[[KDE]] を使っている場合、''Spectacle'' を使用すると良いかもせん


Spectacle は {{Pkg|spectacle}} に入っています。
Spectacle は {{Pkg|spectacle}} パッケージで提供されています。


==== Xfce Screenshooter ====
==== Xfce ====


[[Xfce]] を使っている場合 {{Pkg|xfce4-screenshooter}} をインストールしてキーボードバインディングを追加することができます:
[[Xfce]] を使っている場合 {{Pkg|xfce4-screenshooter}} をインストールしてキーボードバインディングを追加することができます:
107行目: 118行目:
Screenshot プロンプトをスキップしたい場合は、オプションのターミナルに {{ic|$ xfce4-screenshooter -h}} と入力してください。
Screenshot プロンプトをスキップしたい場合は、オプションのターミナルに {{ic|$ xfce4-screenshooter -h}} と入力してください。


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


[[LXDE]] などの他のデスクトップ環境や、[[Openbox]] や [[Compiz]] といったウィンドウマネージャでは、先に挙げたコマンドをスクリーンショットを撮るホットキーに追加することができます。例えば:
[[GNOME]] ユーザーは {{ic|Prnt Scr}} を押すか ''Apps > Accessories > Take Screenshot'' でスクリーンショットが取れます。{{Pkg|gnome-screenshot}} をインストールする必要があります。


===== Cinnamon =====
[[Cinnamon]] はデフォルトでスクリーンショットユーティリティがインストールされません。{{Pkg|gnome-screenshot}} をインストールするとスクリーンショットが有効になり、''Menu > Accessories > Screenshot'' または {{ic|Prnt Scr}} を押すことで撮影できるようになります。

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

[[LXDE]] などのデスクトップ環境や [[Openbox]] や [[Compiz]] などのウィンドウマネージャの場合、上述のコマンドをホットキーに追加してスクリーンショットを撮影することができます。例えば:
$ import -window root ~/Pictures/$(date '+%Y%m%d-%H%M%S').png
$ 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}} ファイルのキーボードセクションに以下を追加する必要があります:


{{ic|import}} は {{Pkg|imagemagick}} パッケージに含まれています。Compiz で上記のコマンドを {{ic|PrintScreen}} キーにに割り当てれば、日付と時間を含むファイル名でスクリーンショットを Pictures フォルダに保存することができます。
{{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>}}


Openbox の {{ic|rc.xml}} ファイルではコンマは認識されないことに注意してください。なので、Openbox で {{ic|PrintScreen}} キーに先のコマンドをバインドするには、以下の記述を {{ic|rc.xml}} ファイルの keyboard セクションに追加する必要があります:
上記の {{ic|Print}} が動作しない場合、[[特別なキーボードキー]]をみて、別の''キーシム''や''キーコード''を使って下さい。
[[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}} ファイルのキーボードセクションに以下を追加する必要があります:


{{hc|rc.xml|<nowiki>
{{hc|rc.xml|<nowiki>
143行目: 137行目:
</nowiki>}}
</nowiki>}}


上記の {{ic|Print}} が動作しない場合、[[特別なキーボードキー]]をみての''キーシム''''キーコード''を使ってさい。
{{ic|PrintScreen}} でバインドできない場合、[[キーボード入力]] の記事参照し ''keysym'' または ''keycode'' を使ってください。
[[Xfce]] を使っている場合 {{Pkg|xfce4-screenshooter}} をインストールしてキーボードバインディングを追加することができます:

''Xfce Menu > Settings > Keyboard > Application Shortcuts''

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


=== スクリーンショットユーティリティが含まれているパッケージ ===
=== スクリーンショットユーティリティが含まれているパッケージ ===
154行目: 143行目:
==== ImageMagick/GraphicsMagick ====
==== ImageMagick/GraphicsMagick ====


See [[ImageMagick#Screenshot taking]].
[[ImageMagick#スクリーンショットの取得]] を参照。


==== GIMP ====
==== GIMP ====


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


==== imlib2 ====
==== imlib2 ====


{{Pkg|imlib2}} にはスクリーンショットを取得するためのバイナリ {{ic|imlib2_grab}} が含まれています。フルスクリーンのスクリーンショットを取得するには、次を入力:
{{Pkg|imlib2}} にはスクリーンショットを取得するためのバイナリ {{ic|imlib2_grab}} が含まれています。フルスクリーンのスクリーンショットをるには:


$ imlib2_grab screenshot.png
$ imlib2_grab screenshot.png
168行目: 157行目:
==== FFmpeg ====
==== FFmpeg ====


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


== スクリーンキャストソフトウェア ==
== 一般的な方法 ==


[[FFmpeg#スクリーンキャプチャ]] と [[Wikipedia:Comparison of screencasting software]] も参照してください。
=== ImageMagick/GraphicsMagick ===


スクリーンキャストユーティリティは、デスクトップや個々のウィンドウのビデオを作成することができます。
{{ic|import}} コマンドを使うことで現在のシステムのスクリーンショットを簡単に取得できます:
$ import -window root screenshot.jpg


* {{App|Deepin Screen Recorder|Deepin デスクトップ用の画面録画アプリケーション。|https://www.deepin.org/en/original/deepin-screen-recorder/|{{Pkg|deepin-screen-recorder}}}}
{{ic|import}} は {{Pkg|imagemagick}} パッケージに入っています。
* {{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 ==
{{ic|-window}} オプションを付けずに {{ic|import}} を実行するとウィンドウや任意の領域をインタラクティブに選択することが可能です。


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}} を使えば、より高速に動作する可能性があります。
{{Note|'''graphicsmagick''' を使いたい場合は、"gm" を前に付けて下さい、例: {{ic|$ gm import -window root screenshot.jpg}}。}}


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


$ grim screenshot.png
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
}}


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


$ swaymsg -t get_tree | jq -r '.. | select(.focused?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | grim -g - screenshot.png
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>}}


==== アクティブなウィンドウ/フォーカスしたウィンドウのスクリーンショット ====
[[Hyprland]] で現在のウィンドウのスクリーンショットを撮る:


$ hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | grim -g - screenshot.png
以下のスクリプトは現在フォーカスされているウィンドウのスクリーンショットを取得します。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>}}


画面の一部のスクリーンショットを撮る:
もしくは、次のコマンドは EWMH をサポートしているかどうかに関わらず動作します:
$ import -window "$(xdotool getwindowfocus -f)" /tmp/$(date +%F_%H%M%S_%N).png


$ slurp | grim -g - screenshot.png
{{Note|(dwb や zathura) プログラムのスクリーンショットが空になる場合は、{{ic|xdotool}} コマンドに {{ic|-frame}} を付けたり {{ic|-f}} を削除してみてください。}}


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


$ slurp | grim -g - - | wl-copy
ルートウィンドウのスクリーンショットを取得:
$ xwd -root -out screenshot.xwd


画面全体の動画を撮る:
{{Note|{{ic|import}} でアクティブウィンドウのスクリーンショットを取得する方法でも {{ic|xwd}} を使うことができます。}}


$ wf-recorder -f recording.mp4
=== scrot ===


画面の一部の動画を撮る:
{{Pkg|scrot}} を使えば CLI からスクリーンショットを撮ることができ、シャッターを押すまでの待機時間をユーザーが定義できるなどの機能があります。特に指定がなければ、カレントディレクトリにファイルが保存されます。
$ scrot -t 20 -d 5


$ wf-recorder -g "$(slurp)"
上記のコマンドは日付が入った {{ic|.png}} ファイルが作成され、ウェブ投稿用にサムネイルも作られます (元の画像の 20%)。上の例ではキャプチャするまで5秒間待ちます。


{{Tip|
ファイルに保存するときに標準的な日付のフォーマットを使うこともできます、例えば:
* [https://github.com/de-arl/slurpshot slurpshot] は、{{Pkg|bemenu}} を使用するインタラクティブなスクリーンショットスクリプトです。
$ scrot ~/screenshots/%Y-%m-%d-%T-screenshot.png
* {{Pkg|swappy}} などの、スクリーンショット後に画像の編集・描画ツールを使うには: {{ic|grim -g "$(slurp)" - {{!}} swappy -f -}}
}}


また、上記の一部のプログラムは Wayland でのみ動作します (例: {{Pkg|ksnip}}、{{AUR|green-recorder}})。
このコマンドではホームディレクトリの "screenshots" という名前のフォルダに、現在の年・月・日・時間・分・秒がファイル名のスクリーンショットが保存されます。


=== スクリーンキャスト ===
詳しくは {{man|1|scrot}} を見て下さい。[https://github.com/kaihendry/Kai-s--HOME/tree/master/bin] のようにファイルのアップロードを自動化することもできます。


==== GNOME screencast を使う ====
{{Note|一部のウィンドウマネージャでは ([[dwm]] や [[xmonad]] など)、{{ic|scrot -s}} がウィンドウマネージャのキーボードショートカットで正しく動作しないことがあります。scrot を実行する前に短いポーズを挟むことで問題を解決できます: {{ic|sleep 0.2; scrot -s}}。}}


{{AUR|green-recorder}}、{{AUR|obs-gnome-screencast}}、及び {{Pkg|obs-studio}} は、GNOME screencast 機能を使用した Wayland での画面録画をサポートしています。
=== escrotum ===


==== Hyprland を使う ====
{{AUR|escrotum-git}} は pygtk を使って画面をキャプチャします。scrot にインスパイアされています。


[[Hyprland]] ウィンドウマネージャでは、{{Pkg|xdg-desktop-portal-hyprland}} を使用している場合、[[OBS]] でスクリーンキャストと録画を行うことができます (個々のウィンドウやワークスペースの選択も可)。[https://wiki.hyprland.org/Useful-Utilities/Screen-Sharing/]
選択モードを使った時に scrot ではウィンドウのリフレッシュでバグが発生するので開発されました。


==== 仮想 Web カメラのビデオフィードを使う ====
コマンドラインインターフェースは scrot とほぼ同じなので、そのまま同じように使うことができます。


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

{{Pkg|maim}} は scrot の向上版を目指しています。

scrot の欠点を補っており [https://github.com/naelstrof/slop slop] で領域のスクリーンショットを取得します。

=== FFmpeg ===

[[FFmpeg]] は X11 のスクリーンをキャプチャできる x11grab デバイスを提供しています。

ディスプレイの''横幅''x''高さ''を指定してスクリーンショットを取得:

$ ffmpeg -f x11grab -video_size ''width''x''height'' -i $DISPLAY -vframes 1 screen.png

上記のコマンドでは PNG コーデック (ロスレスでスクリーンショットに向いている) を使っていますが、他の画像コーデックも使うことができます。

同じデバイスを使ってスクリーンキャストも可能です (ディスプレイのリフレッシュレートを ''rate'' HZ で指定):

$ ffmpeg -f x11grab -video_size ''width''x''height'' -framerate ''rate'' -i $DISPLAY -c:v libx264 -preset ultrafast cast.mkv

上記のコマンドでは、エンコード速度が一番高速な x264 コーデックを使っていますが、他のコーデックも使えます。ただし (ディスクのパフォーマンスが足りなかったりエンコードが遅かったりして) フレームの書き込みが遅すぎると、フレームが抜け落ちて出力された動画は飛び飛びになります。

=== Weston ===

Wayland のコンポジットマネージャである [[Weston]] では、{{ic|Super+s}} を押すことでスクリーンショットを撮影することができ、Weston の現在の作業ディレクトリに保存されます。スクリーンキャストもサポートされています。録画の開始と停止は {{ic|Super+r}} を押すことで行われ、Weston の現在の作業ディレクトリに {{ic|capture.wcap}} という名前のファイルが作成されます。{{ic|wcap-decode --yuv4mpeg2 capture.wcap}} を実行することでキャプチャを YUV フォーマットにデコードできます。このコマンドの出力をファイルに書き込んだり、FFmpeg にパイプして更に処理を加えることもできます。

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

See also [[FFmpeg#Screen capture]] and [[Wikipedia:Comparison of screencasting software]].

Screencast utilities allow you to create a video of your desktop or individual windows.

* {{App|Byzanz|Simple screencast tool that produces GIF animations.|https://gitlab.gnome.org/Archive/byzanz|{{Pkg|byzanz}}}}
* {{App|Deepin Screen Recorder|Screen recorder application for Deepin desktop.|https://www.deepin.org/en/original/deepin-screen-recorder/|{{Pkg|deepin-screen-recorder}}}}
* {{App|FFcast|FFmpeg-based screencast tool written in Bash.|https://github.com/lolilolicon/FFcast|{{AUR|ffcast}}}}
* {{App|Gpu Screen Recorder|Screen recorder that captures a video on the GPU only to vastly improve performance, comparable to Nvidia ShadowPlay. Supports live streaming and replay buffer as well. Currently limited to NVIDIA.|https://git.dec05eba.com/gpu-screen-recorder-gtk/about/|{{AUR|gpu-screen-recorder-gtk-git}}}}
* {{App|Green Recorder|Simple yet functional desktop recorder for Linux systems.|https://github.com/dvershinin/green-recorder|{{AUR|green-recorder}}}}
* {{App|Kazam|Screencasting program with design in mind. Handles multiscreen setups.|https://launchpad.net/kazam|{{AUR|kazam}}}}
* {{App|Kooha|Simple screen recorder with a minimal GTK interface.|https://github.com/SeaDve/Kooha|{{Pkg|kooha}}}}
* {{App|menyoki|Screen{shot,cast} and perform ImageOps on the command line.|https://github.com/orhun/menyoki|{{Pkg|menyoki}}}}
* {{App|[[Open Broadcaster Software]]|Video recording and live streaming application.|https://obsproject.com/|{{Pkg|obs-studio}}}}
:* {{AUR|obs-gnome-screencast}} – plugin for GNOME screencast feature, supports Wayland
* {{App|[[Wikipedia:Peek_(software)|Peek]]|Simple screencast tool that produces GIF, APNG, WebM or MP4 animations.|https://github.com/phw/peek|{{Pkg|peek}}}}
* {{App|RecApp|User friendly screencaster written in GTK. Using free GStreamer modules and not depend on FFmpeg. No longer under development.|https://github.com/amikha1lov/RecApp|{{AUR|recapp-git}}}}
* {{App|RecordItNow|Plugin based desktop recorder for KDE 4.|http://recorditnow.sourceforge.net/|{{AUR|recorditnow}}}}
* {{App|[[RecordMyDesktop]]|Easy to use utility that records your desktop into the ogg format with a CLI, GTK or Qt interface. (inactive development)|http://recordmydesktop.sourceforge.net/|CLI: {{Pkg|recordmydesktop}}, GTK: {{AUR|gtk-recordmydesktop}}, Qt: {{AUR|qt-recordmydesktop}}}}
* {{App|screencast|Command line interface to record an X11 desktop using FFmpeg, having support for offline recording and live streaming.|https://github.com/dbermond/screencast/|{{AUR|screencast}}}}
* {{App|Screencast|Simple screencast recorder designed for elementary OS.|https://github.com/artemanufrij/screencast|{{AUR|pantheon-screencast}}}}
* {{App|[[Wikipedia:SimpleScreenRecorder|SimpleScreenRecorder]]|Feature-rich screen recorder written in C++/Qt5 that supports X11 and OpenGL.|https://www.maartenbaert.be/simplescreenrecorder/|{{Pkg|simplescreenrecorder}}}}
* {{App|VokoScreen|Simple screencast GUI tool using GStreamer.|https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html|{{Pkg|vokoscreen}}}}
* {{App|[[Wikipedia:XVidCap|XVidCap]]|Application used for recording a screencast or digital recording of an X Window System screen output with an audio narration.|http://xvidcap.sourceforge.net/|{{AUR|xvidcap}}}}

== Wayland ==

wlroots ベースのコンポジタで画面をキャプチャするには、スクリーンショットの場合は {{Pkg|grim}} または {{AUR|swayshot}}、ビデオの場合は {{Pkg|wf-recorder}} (または {{AUR|wf-recorder-git}}) を使用します。{{AUR|wlrobs-hg}} は、wlroot ベースのコンポジタでのスクリーンキャプチャーを可能にする {{Pkg|obs-studio}}プラグインです。必要に応じて、{{Pkg|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

画面の一部のスクリーンショットを取得し、{{Pkg|wl-clipboard}} を使用してクリップボードに出力します。

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

画面全体のビデオをキャプチャする。

$ wf-recorder -f recording.mp4

画面の一部のビデオをキャプチャする。

$ wf-recorder -g "$(slurp)"


{{Tip|
{{Tip|
* この方法は、{{AUR|zoom}} デスクトップクライアントを {{Pkg|xorg-xwayland}} で動作させたケースと、[https://bigbluebutton.org/ BigBlueButton] を {{Pkg|chromium}} 内で動作させたケース ({{Pkg|firefox}} では解像度が低い) でテストされました。{{AUR|skypeforlinux-bin}} は、仮想ビデオデバイス {{ic|VirtualVideoDevice}} を検出しますが、空の画面しか出力しません。
* [https://github.com/de-arl/slurpshot slurpshot] を使用してスクリプトを撮るインタラクティブなスクリーンショットです {{Pkg|bemenu}}
* この例では {{ic|wf-recorder}} を使用していますが、その他のソフトウェアも使用できます。単に出力を仮想デバイスに流すだけです。
* {{Pkg|swappy}} キャプチャ後のスクリーンショット編集および描画ツールを使用するには {{ic|grim -g "$(slurp)" - {{!}} swappy -f -}}
}}
}}


{{Pkg|wf-recorder}} (または {{AUR|wf-recorder-git}}) および {{Pkg|v4l2loopback-dkms}} をインストールしてください。そして、以下のパラメータを指定して {{ic|v4l2loopback}} カーネルモジュールをロードしてください:
また、上記の一部のプログラムは Wayland (例:{{Pkg|ksnip}}、{{AUR|green-recorder}}) で動作します。

===スクリーンキャスト===

==== GNOME スクリーンキャストより ====

{{AUR|green-recorder}}、{{AUR|obs-gnome-screencast}}、および {{AUR|obs-xdg-portal-git}} は、GNOME スクリーンキャスト機能を使用した Wayland でのスクリーンレコーディングをサポートしています。

==== 仮想 Web カメラのビデオフィード経由 ====

{{Tip|
* このメソッドは {{AUR|zoom}} ({{Pkg|xorg-xwayland}} で実行されるデスクトップ・クライアント) および {{Pkg|chrome}} ({{Pkg|firefox}} で実行される [https://bigbluebutton.org/ BigBlueButton]) でテストされています ({{Pkg|firefox}} では解像度が非常に低くなります) {{AUR|skypeforlinux-stable-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
# modprobe v4l2loopback exclusive_caps=1 card_label=VirtualVideoDevice


新しい仮想ビデオデバイス {{ic|VirtualVideoDevice}} が作成されたことを確認します。
新しい仮想ビデオデバイス {{ic|VirtualVideoDevice}} が作成されたことを確認してください:


{{hc|$ v4l2-ctl --list-devices|
{{hc|$ v4l2-ctl --list-devices|
362行目: 255行目:
}}
}}


{{ic|wf-recorder}} を使用して画面の録を開始し、{{ic|v4l2loopback}} によって作成された新しい仮想ビデオデバイス {{ic|VirtualVideoDevice}} に出力を送ります。
{{ic|wf-recorder}} 画面の録を開始し、{{ic|v4l2loopback}} によって作成された新しい仮想ビデオデバイス {{ic|VirtualVideoDevice}} に出力を送ってください:


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


ビデオ出力をズーム [https://github.com/ammen99/wf-recorder/pull/43] と互換性を持たせるには、{{ic|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}} の一部) を使用して、仮想ビデオデバイスが実際にスクリーン共有を出力していることを確認できます。

これで、先の仮想ビデオデバイスをビデオ通話/ビデオ会議アプリケーションで "ウェブカメラ" として選択できるようになりました (デバイスは {{ic|VirtualVideoDevice}} という名前です)。仮想ビデオデバイスがきちんとスクリーン共有を出力していることは、{{ic|ffplay}} ({{Pkg|ffmpeg}} の一部) や {{Pkg|mpv}}、{{ic|gst-launch}} ({{Pkg|gstreamer}} の一部) を使用して確認できます:


$ ffplay /dev/video2
$ ffplay /dev/video2
376行目: 271行目:
$ gst-launch-1.0 -v v4l2src device=/dev/video2 ! glimagesink
$ gst-launch-1.0 -v v4l2src device=/dev/video2 ! glimagesink


Firefox がビデオストリームを読み取ることができず、"AbortError: Starting video failed" のようなメッセージを出力する場合、プリロードを試してください {{ic|v4l2compat.so}}:
Firefox がビデオストリームを読み取ることができず、"AbortError: Starting video failed" のようなメッセージを出力する場合、{{ic|v4l2compat.so}} をプリロードしてみてください:

$ LD_PRELOAD=/usr/lib/v4l1compat.so firefox
$ LD_PRELOAD=/usr/lib/v4l1compat.so firefox


===== 個々のアプリケーションの共有 =====
===== 個々のアプリケーションの共有 =====


{{Warning|ウィンドウサイズを変更しても共有されている領域は変更されないため、このメソッドには個々のアプリケーション共有の適切な実装は含まれません。}}
{{Warning|この方法では、ウィンドウがリサイズされても共有される領域は変わらないため、個々のウィドウの共有の適切な実装言えません。}}


前述のように、{{ic|wf-recorder}} は、まず {{Pkg|slurp}} で領域を選択することで、画面の一部のみを録できます。この機能を使用して、仮想ビデオデバイスを介して特定のリージョンまたはアプリケーションウィンドウを共有すには、変更されたコマンドで画面の録を開始します。
説明した通り、{{ic|wf-recorder}} は、{{Pkg|slurp}} で事前に選択した画面領域のみを録画することができます。この機能を使て、特定の領域/アプリケーションウィンドウを共有して仮想ビデオデバイスに出力を流すには、以下のコマンドで画面の録を開始してください:


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


画面の領域を選択すると上記のように仮想ビデオデバイス {{ic|/dev/video2}} からビデオフィードにアクセスできるようになります。
画面の領域を選択したら先に説明したように仮想ビデオデバイス {{ic|/dev/video2}} 経由でビデオフィードにアクセスできるようになります。


==== WebRTC プロトコル経由 ====
==== WebRTC プロトコルを使う ====


{{Warning|このメソッドでは出力全体共有のみが許可され、個々のアプリケーション [https://github.com/emersion/xdg-desktop-portal-wlr/wiki/FAQ#will-this-let-me-share-individual-windows] の共有は許可されません。}}
{{Note|この方法では出力全体しか共有できず、個々のアプリケーションを共有することはできません。[https://github.com/emersion/xdg-desktop-portal-wlr/wiki/FAQ#will-this-let-me-share-individual-windows]}}


こちらを参照 [[PipeWire#WebRTC screen sharing]].
[[PipeWire#WebRTC 画面共有]] を参照してください。


これで Chromium と Firefox からスクリーンシェアにアクセスできるようになります。こちらを参照、 [https://mozilla.github.io/webrtc-landing/gum_test.html Mozilla's getUserMedia/getDisplayMedia Test Page]
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] を見てください。


== ターミナル ==
== ターミナル ==


=== 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}} に変換するには、次を実行:
413行目: 313行目:
$ ls --color|ansi2html --bg=dark >output.html
$ ls --color|ansi2html --bg=dark >output.html


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


=== フレームバッファ ===
=== フレームバッファ ===


[[フレームバッファ]]をインストールして、{{Pkg|fbgrab}} か {{Pkg|fbdump}} を使用してスクリーンショットを撮ます。
何かしらの[[フレームバッファ]]をインストールして、{{Pkg|fbgrab}} か {{AUR|fbdump}} を使用してスクリーンショットを撮ることができます。


=== 仮想コンソール ===
=== 仮想コンソール ===


==== スクリーンショット ====
[[Uvesafb]] をインストールして {{Pkg|fbgrab}} または {{Pkg|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 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。