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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(リンクを修正)
1行目: 1行目:
 
[[Category:システム管理]]
 
[[Category:システム管理]]
 
[[Category:マルチメディア]]
 
[[Category:マルチメディア]]
[[cs:Taking a screenshot]]
+
[[en:Screen capture]]
[[en:Taking a screenshot]]
+
[[es:Screen capture]]
[[es:Taking a screenshot]]
+
[[pt:Screen capture]]
[[fr:Capture d'écran]]
+
[[ru:Screen capture]]
  +
[[zh-hans:Screen capture]]
[[ru:Taking a screenshot]]
 
[[zh-hans:Taking a screenshot]]
 
 
{{Related articles start}}
 
{{Related articles start}}
{{Related|キーボードショートカット#カスタマ}}
+
{{Related|キーンド}}
 
{{Related articles end}}
 
{{Related articles end}}
 
この記事では、[[Wikipedia:ja:スクリーンショット|スクリーンショット]]と[[Wikipedia:ja:スクリーンキャスト|スクリーンキャスト]]のソフトウェアを一覧にして解説しています。
 
この記事では、[[Wikipedia:ja:スクリーンショット|スクリーンショット]]と[[Wikipedia:ja:スクリーンキャスト|スクリーンキャスト]]のソフトウェアを一覧にして解説しています。

2024年4月11日 (木) 21:26時点における版

関連記事

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

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

専用のソフトウェア

  • CoreShot — X11 用のシンプルで軽量なスクリーンキャプチャユーティリティ。C-Suite
https://cubocore.org/ || coreshotAUR
  • Deepin Screenshot — とても使いやすいスクリーンショットツール。機能: スクリーンショットツールを発動するホットキー、選択した領域のスクリーンショットの取得、スクリーンショットに文章や線画を簡単に追加。Python/Qt5 ベース。
https://www.deepin.org/ || deepin-screenshot
  • Escrotum — pygtk を使用して画面をキャプチャ。scrot の影響を受けています。
https://github.com/Roger/escrotum || escrotum-gitAUR
  • Flameshot — インタラクティブにスクリーンショットを取得できる Qt5 ベースのソフトウェア。取得したいエリアを選択して様々なツールで落書きしたりカスタマイズする機能があります。
https://github.com/lupoDharkael/flameshot || flameshot
  • gnome-screenshot — dconf, gtk3, libcanberra にしか依存しないため GNOME 以外でも使えます。
http://gnome.org || gnome-screenshot
  • gscreenshot — シンプルな GTK スクリーンショットユーティリティ。遅延時間を設定したり範囲選択・クリップボードにコピーする機能があります。
https://github.com/thenaterhood/gscreenshot || gscreenshotAUR
  • imgur-screenshot — スクリーンショットを取得して imgur にアップロードするツール。
https://github.com/jomo/imgur-screenshot || imgur-screenshot-gitAUR
  • KShare — ShareX の影響を受けているクロスプラットフォームのユーティリティ。Qt で書かれています。
https://kshare.arsenarsen.com || kshareAUR
  • Lightscreen — 退屈なスクリーンショットの保存とカタログ化を自動化するシンプルなツール。表には現れないバックグラウンドプロセスとして動作し、(複数の) ホットキーで呼び出してスクリーンショットファイルをユーザーの設定にあわせてディスクに保存する。
http://lightscreen.com.ar || lightscreenAUR
  • maim — スクリーンショットを取得するシンプルなコマンドラインユーティリティ。scrot を置き換えるものとして様々な点で scrot よりも優れています。
https://github.com/naelstrof/maim || maim
  • screencloud — 画面全体のスクリーンショットや領域を選択して撮影し、imgur+auth にスクリーンショットをアップロードできるツール。プラグインとシステムトレイが付属。
http://screencloud.net/ || screencloudAUR
  • screengrab — スクリーンショットを手軽に取得するためのクロスプラットフォームのアプリケーション (Qt)。
http://screengrab.doomer.org/ || screengrab
  • Scrot — X 向けのシンプルなコマンドラインスクリーンショットユーティリティ。
http://freecode.com/projects/scrot || scrot
  • Shutter — リッチなスクリーンショット・編集プログラム。
http://shutter-project.org/ || shutter
  • Spectacle — スクリーンショットを撮るための KDE のアプリケーション。デスクトップ全体、単一のウィンドウ、ウィンドウの一部、四角形またはフリーハンドで指定した領域の画面をキャプチャすることができます。kdegraphics[リンク切れ: パッケージが存在しません] に含まれています。
https://github.com/KDE/spectacle/ || spectacle
  • Xfce4 Screenshooter — 画面全体、アクティブウィンドウ、または選択領域のキャプチャを行えます。スクリーンショットを撮るまでの待機時間とスクリーンショットを撮った後の動作を設定できます: PNG ファイルに保存、クリップボードにコピー、別のアプリケーションで開く、無料の画像ホスティングサービスである Imgur や ZimageZ にアップロード。xfce4-goodies に含まれています。
https://goodies.xfce.org/projects/applications/xfce4-screenshooter || xfce4-screenshooter
  • xwd — X Window System イメージダンプユーティリティ。
http://xorg.freedesktop.org/ || xorg-xwd

xwd

xwd(1) is provided by xorg-xwd.

ルートウィンドウのスクリーンショットを撮るには:

$ xwd -root -out screenshot.xwd
ヒント: スクリーンショットを撮る前に遅延を取得するには、sleep コマンドを使用します。例: sleep 5; xwd ...

scrot

scrot を使用すると、CLI からスクリーンショットを取得できるようになり、ユーザー定義可能な遅延時間などの機能が提供されます。特に指示がない限り、ファイルは現在の作業ディレクトリに保存されます。

$ scrot -t 20 -d 5

上記のコマンドは、Web 投稿用にサムネイル (元の 20%) とともに日付付きの .png ファイルを保存します。この場合、キャプチャする前に 5 秒の遅延を発生させます。

ファイルに保存するときに、標準の日付と時刻の書式設定を使用することもできます。例えば、

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

スクリーンショットを現在の年、月、日、時、分、秒を含むファイル名でホーム ディレクトリ内の "screenshots" というフォルダーに保存します。

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

ノート: 一部のウィンドウ マネージャー (dwmAURxmonad、およびおそらくその他) では、ウィンドウマネージャーのキーボード ショートカット経由で実行すると、scrot -s が正しく動作しませんが、scrot の呼び出しの前に短い一時停止を追加することで、sleep 0.2; scrot -s 回避できます。

escrotum

escrotum-gitAUR scrot からインスピレーションを得た、PyGTK を使用した画面キャプチャ

ウィンドウを更新して選択モードを使用すると scrot に不具合が生じるため作成されました。

コマンドラインインターフェイスは scrot とほぼ同じなので、代替として使用できます。

maim

maim は、改善された scrot であることを目指しています。

全画面をファイルに保存します。

$ maim filename

選択を求めてからファイルに保存します。

$ maim --select filename

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

$ maim --window $(xdotool getactivewindow) filename

xclip がインストールされていると仮定して、選択を求め、カーソルを使用せずに保存し、クリップボードに保存します。

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

デスクトップ環境による方法

Spectacle

KDE を使っている場合、Spectacle を使用すると良いでしょう。Prnt Scr で使うことができます。

Spectacle は spectacle に入っています。

Xfce Screenshooter

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

Xfce Menu > Settings > Keyboard > Application Shortcuts

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

GNOME

GNOME ユーザーは Prnt Scr を押すか Apps > Accessories > Take Screenshot でスクリーンショットが取れます。gnome-screenshot をインストールする必要があります。

Cinnamon

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

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

LXDE などのデスクトップ環境や OpenboxCompiz などのウィンドウマネージャの場合、上述のコマンドをホットキーに追加してスクリーンショットを撮影することができます。例えば:

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

上のコマンドを Prnt Scr キーに追加すれば Compiz でスクリーンショットを取得して Pictures フォルダに日付を付けて保存できます。Openbox の rc.xml ファイルではコンマを使えないので、Openbox でこのコマンドを Prnt Scr キーに指定するには、rc.xml ファイルのキーボードセクションに以下を追加する必要があります:

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>

上記の Print が動作しない場合、特別なキーボードキーをみて、別のキーシムキーコードを使って下さい。 LXDE などのデスクトップ環境や OpenboxCompiz などのウィンドウマネージャの場合、上述のコマンドをホットキーに追加してスクリーンショットを撮影することができます。例えば:

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

上のコマンドを Prnt Scr キーに追加すれば Compiz でスクリーンショットを取得して Pictures フォルダに日付を付けて保存できます。Openbox の rc.xml ファイルではコンマを使えないので、Openbox でこのコマンドを Prnt Scr キーに指定するには、rc.xml ファイルのキーボードセクションに以下を追加する必要があります:

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>

上記の Print が動作しない場合、特別なキーボードキーをみて、別のキーシムキーコードを使って下さい。

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

ImageMagick/GraphicsMagick

See ImageMagick#Screenshot taking.

GIMP

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

imlib2

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

$ imlib2_grab screenshot.png

FFmpeg

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

一般的な方法

ImageMagick/GraphicsMagick

import コマンドを使うことで現在のシステムのスクリーンショットを簡単に取得できます:

$ import -window root screenshot.jpg

importimagemagick パッケージに入っています。

-window オプションを付けずに import を実行するとウィンドウや任意の領域をインタラクティブに選択することが可能です。

ノート: graphicsmagick を使いたい場合は、"gm" を前に付けて下さい、例: $ gm import -window root screenshot.jpg

複数の X 画面のスクリーンショット

twinview または dualhead で使っている場合、2回スクリーンショットを取得して imagemagick を使って貼り付けます:

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 ヘッドのスクリーンショット

Xinerama による multi-head セットアップでは仮想スクリーンが一つしかありません。物理的なスクリーンの高さに違いがあると、スクリーンショットにデッドスペースが出来てしまいます。こういう場合、それぞれの物理的なスクリーンごとにスクリーンショットを取得すると良いでしょう。Xinerama の情報が X サーバーから取り出せていれば、以下のスクリプトが動作します:

#!/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

アクティブなウィンドウ/フォーカスしたウィンドウのスクリーンショット

以下のスクリプトは現在フォーカスされているウィンドウのスクリーンショットを取得します。EWMH/NetWM 準拠の X ウィンドウマネージャで動作します。スクリーンショットを上書きしないように、ファイル名に取得時刻を使っています。

#!/bin/sh
activeWinLine=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)")
activeWinId=${activeWinLine:40}
import -window "$activeWinId" /tmp/$(date +%F_%H%M%S_%N).png

もしくは、次のコマンドは EWMH をサポートしているかどうかに関わらず動作します:

$ import -window "$(xdotool getwindowfocus -f)" /tmp/$(date +%F_%H%M%S_%N).png
ノート: (dwb や zathura) プログラムのスクリーンショットが空になる場合は、xdotool コマンドに -frame を付けたり -f を削除してみてください。

xwd

ルートウィンドウのスクリーンショットを取得:

$ xwd -root -out screenshot.xwd
ノート: import でアクティブウィンドウのスクリーンショットを取得する方法でも xwd を使うことができます。

scrot

scrot を使えば CLI からスクリーンショットを撮ることができ、シャッターを押すまでの待機時間をユーザーが定義できるなどの機能があります。特に指定がなければ、カレントディレクトリにファイルが保存されます。

$ scrot -t 20 -d 5

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

ファイルに保存するときに標準的な日付のフォーマットを使うこともできます、例えば:

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

このコマンドではホームディレクトリの "screenshots" という名前のフォルダに、現在の年・月・日・時間・分・秒がファイル名のスクリーンショットが保存されます。

詳しくは scrot(1) を見て下さい。[1] のようにファイルのアップロードを自動化することもできます。

ノート: 一部のウィンドウマネージャでは (dwmxmonad など)、scrot -s がウィンドウマネージャのキーボードショートカットで正しく動作しないことがあります。scrot を実行する前に短いポーズを挟むことで問題を解決できます: sleep 0.2; scrot -s

escrotum

escrotum-gitAUR は pygtk を使って画面をキャプチャします。scrot にインスパイアされています。

選択モードを使った時に scrot ではウィンドウのリフレッシュでバグが発生するので開発されました。

コマンドラインインターフェースは scrot とほぼ同じなので、そのまま同じように使うことができます。

maim

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

scrot の欠点を補っており slop で領域のスクリーンショットを取得します。

FFmpeg

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

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

$ ffmpeg -f x11grab -video_size widthxheight -i $DISPLAY -vframes 1 screen.png

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

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

$ ffmpeg -f x11grab -video_size widthxheight -framerate rate -i $DISPLAY -c:v libx264 -preset ultrafast cast.mkv

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

Weston

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

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

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

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

  • Byzanz — GIF アニメーションを作成するシンプルなスクリーンキャストツール。
https://gitlab.gnome.org/Archive/byzanz || byzanz
  • 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 — Nvidia ShadowPlay に匹敵する、パフォーマンスを大幅に向上させるためだけに GPU でビデオをキャプチャするスクリーンレコーダー。ライブストリーミングとリプレイバッファもサポートします。現在は NVIDIA に限定されています。
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を実行します。
https://github.com/orhun/menyoki || menyoki
https://obsproject.com/ || obs-studio
  • obs-gnome-screencastAUR – GNOME スクリーンキャスト機能用のプラグイン、Wayland をサポート
  • Peek — GIF、APNG、WebM、または MP4 アニメーションを生成するシンプルなスクリーンキャストツール。
https://github.com/phw/peek || peek
  • RecApp — GTK で書かれたユーザーフレンドリーなスクリーンキャスター。無料の GStreamer モジュールを使用し、FFmpeg に依存しません。
https://github.com/amikha1lov/RecApp || recapp-gitAUR
  • RecordItNow — KDE 4 用のプラグインベースのデスクトップレコーダー。
http://recorditnow.sourceforge.net/ || recorditnowAUR
  • RecordMyDesktop — CLI、GTK、または Qt インターフェイスを使用してデスクトップを ogg 形式に記録する使いやすいユーティリティです。(開発はアクティブではありません)
http://recordmydesktop.sourceforge.net/ || CLI: recordmydesktop, GTK: gtk-recordmydesktopAUR, Qt: qt-recordmydesktopAUR
  • screencast — FFmpeg を使用して X11 デスクトップを記録するためのコマンドラインインターフェイス。オフライン記録とライブストリーミングをサポートします。
https://github.com/dbermond/screencast/ || screencastAUR
  • Screencast — 基本的な OS 向けに設計されたシンプルなスクリーンキャストレコーダー。
https://github.com/artemanufrij/screencast || pantheon-screencastAUR
  • SimpleScreenRecorder — X11 および OpenGL をサポートする C++/Qt5 で書かれた機能豊富なスクリーンレコーダー。
https://www.maartenbaert.be/simplescreenrecorder/ || simplescreenrecorderAUR
  • Spectacle — スクリーン {ショット,キャスト} 用の KDE アプリケーション。Wayland 上のデスクトップ全体、単一の画面、または単一のウィンドウのビデオ (音声なし) をキャプチャできます。kde-graphics の一部。
https://invent.kde.org/graphics/spectacle || spectacle
  • VokoScreen — GStreamer を使用したシンプルなスクリーンキャスト GUI ツール。
https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html || vokoscreen
  • Wayfarer — GNOME / Wayland / Pipewire 用の GTK4 スクリーンレコーダー。
https://github.com/stronnag/wayfarer || wayfarerAUR
  • XVidCap — X Window System の画面出力を音声ナレーション付きでスクリーンキャストまたはデジタル録音するためのアプリケーション。
http://xvidcap.sourceforge.net/ || xvidcapAUR

Wayland

Wlroots ベースのコンポジタでは、grimgrimshotAUR (sway パッケージも /usr/share/sway/scripts/ 内に grimshot を提供しています) でスクリーンショットを撮ることができます。動画は、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 でスクリーンキャストと録画を行うことができます (個々のウィンドウやワークスペースの選択も可)。[2]

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

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

ヒント:
  • この方法は、zoomAUR デスクトップクライアントを xorg-xwayland で動作させたケースと、BigBlueButtonchromium 内で動作させたケース (firefox では解像度が低い) でテストされました。skypeforlinux-stable-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 との互換性を持たせるためです。[3]

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

これで、先の仮想ビデオデバイスをビデオ通話/ビデオ会議アプリケーションで "ウェブカメラ" として選択できるようになりました (デバイスは 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 プロトコルを使う

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

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

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

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

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

ターミナル

ansi コードで出力

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

終わったら、exit と入力するだけで typescript が作成されます。作成されたファイルは AURansi2htmlAUR パッケージを使って html に変換できます。

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

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

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

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

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

フレームバッファ

フレームバッファをインストールして、fbgrabfbdump を使用して、スクリーンショットを撮ります。

仮想コンソール

Uvesafb をインストールして fbgrab または fbdump を使ってスクリーンショットを取得してください。

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

# setterm -dump 1 -file screen.dump

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