Wayland 環境での GIF 画面録画
昨日、Firefoxの興味深い機能をいくつか開発していた際に、UIの操作手順を説明する必要がありました。スクリーンショットでは操作手順を詳細に把握できませんでした。GitHubでは操作手順の説明にGIFがよく使われていることを思い出し、コマンドラインから2枚の画像を組み合わせてGIFを作成することもできましたが、少し面倒でした。このようなシナリオでは、画面を録画してGIFを生成するのが理想的です。もちろん、ウェブサイトに動画を埋め込むことも可能ですが、多くのプラットフォームでは動画のアップロードをサポートしていません。シンプルなウェブチュートリアルには、画像の方が適しています。
1. 最後の手段
現在、Linuxエコシステムでは、peek と Kooha が画面録画からGIFを生成する主流のソフトウェアです。残念ながら、以下の問題が発生しています。
- peek
私のLabWC環境では、peekで録画したGIFは黒い画面になり、何も表示されません。さらに、作者はもはやメンテナンスを行っていません。詳細はこちらの声明をご覧ください。
- Kooha
peekが機能しないため、Koohaに切り替えるしかありませんでした。ようやく依存関係をインストールした後、最終コンパイル段階で libadwaita-1 のバージョンが正しくないというエラーが発生しました。コンパイルとインストールが面倒だったので、諦めました。
1error: failed to run custom build command for `libadwaita-sys v0.4.1`
2
3Caused by:
4 process didn't exit successfully: `/home/mephisto/github/Kooha/_build/src/release/build/libadwaita-sys-324727e752f0426f/build-script-build` (exit status: 1)
5 --- stdout
6 cargo:rerun-if-env-changed=LIBADWAITA_1_NO_PKG_CONFIG
7 cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
8 cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
9 cargo:rerun-if-env-changed=HOST_PKG_CONFIG
10 cargo:rerun-if-env-changed=PKG_CONFIG
11 cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
12 cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
13 cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
14 cargo:rerun-if-env-changed=PKG_CONFIG_PATH
15 cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
16 cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
17 cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
18 cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
19 cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
20 cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
21 cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
22 cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
23 cargo:warning=`PKG_CONFIG_ALLOW_SYSTEM_CFLAGS="1" "pkg-config" "--libs" "--cflags" "libadwaita-1" "libadwaita-1 >= 1.4"` did not exit successfully: exit status: 1
24 error: could not find system library 'libadwaita-1' required by the 'libadwaita-sys' crate
25
26 --- stderr
27 Package dependency requirement 'libadwaita-1 >= 1.4' could not be satisfied.
28 Package 'libadwaita-1' has version '1.3.3', required version is '>= 1.4'
29
30warning: build failed, waiting for other jobs to finish...
31[45/47] Generating data/io.github.seadve.Kooha.metainfo.xml with a custom command
32FAILED: src/kooha
33/usr/bin/env CARGO_HOME=/home/mephisto/github/Kooha/_build/cargo-home /home/mephisto/.cargo/bin/cargo build --manifest-path /home/mephisto/github/Kooha/Cargo.toml --target-dir /home/mephisto/github/Kooha/_build/src --release && cp src/release/kooha src/kooha
34ninja: build stopped: subcommand failed.
特記事項: お使いの環境で peek/Kooha がインストール可能な場合は、利便性の観点から、個人的には直接使用することをお勧めします。
2. かすかな希望
ImageMagick ツールセットを使って以下のように GIF を作成しようとした時、後ろから誰かが「オーバーフローしました。セミコロンが抜けています。これは間違っています…」と言っているのが聞こえたような気がしました。
1convert -delay 100 -loop 0 *.jpeg animationGIF.gif
この時、シンプルながらも強力な画面録画ツールである wf-recorder を思い出しました。もしかしたら、mp4/webp だけでなく GIF も出力できるかもしれません。
```` Readme ドキュメントを確認し、Ctrl + F で「gif」というキーワードを検索してみましたが、結果は見つかりませんでした。通常、熱心な Linux ユーザーであれば、このような状況でも諦めたりはしないでしょう。最終的に、問題リストで「gif」を検索することで解決策を見つけました 問題を参照。
コマンドラインで実行する必要があるのは、次のとおりです。
1shell wf-recorder -f test.gif -c gif -g "$(slurp)"
-
slurp は、実際には範囲指定が可能な別のソフトウェアです。このパラメータを指定しないと、画面を選択できます(複数の画面を使用している場合)。
-
-c gif はエンコード形式を指定します。このパラメータを指定しないと、test.gif を出力するとエラーが発生します。
実際には、wf-recorder のヘルプドキュメントにも関連する説明がありますが、わかりにくいため、ほとんどの人は気付かないかもしれません。
-c, --codec Specifies the codec of the video.
Supports GIF output also.To modify codec parameters, use -p <option_name>=<option_value>
GIF 画像の例(録画時間:秒、サイズ:792KB)
画面録画を停止するには、Ctrl + C キーを押します。エラーメッセージが表示されますが、無視してください。
1➜ ~ wf-recorder -f test.gif -c gif -g "$(slurp)"
2Detected output based on geometry: DP-1
3selected region 1936,44 1263x973
4Using video filter: null
5Output #0, gif, to 'test.gif':
6 Stream #0:0: Video: gif, bgr8(pc), 1262x972 [SAR 1:1 DAR 631:486], q=2-31, 200 kb/s
7^C[gif @ 0x7f031c000d40] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 1167 >= 1102
著作権に関する声明:
- 出典のないコンテンツはすべてオリジナルです。、無断転載はご遠慮ください(転載後にレイアウトが崩れたり、内容が制御不能になったり、継続的に更新できない等の理由から)。
- このブログのコンテンツを非営利目的で解釈したい場合は、(読者の便宜のため)「オリジナル ソース」または「参照リンク」の形式でこのサイトの関連 Web ページ アドレスを提供してください。
このシリーズの投稿:
- Linux 用の Python の最新バージョンをインストールする
- 私のツールボックス
- Firefox の興味深い機能
- Wofi 使い方チュートリアル
- Snipe it 資産管理システムのインストールと使用
- Ubuntuの起動を高速化する
- 簡体字中国語の記事を繁体字中国語に一括変換
- Minetest トライアル
- Rime入力メソッドエンジンとClover入力スキーム
- ZFSスナップショットテスト