惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
H
Help Net Security
Last Week in AI
Last Week in AI
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
Google DeepMind News
Google DeepMind News
B
Blog
C
Check Point Blog
T
Tailwind CSS Blog
云风的 BLOG
云风的 BLOG
D
Docker
Recent Announcements
Recent Announcements
Vercel News
Vercel News
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
月光博客
月光博客
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
B
Blog RSS Feed
The Register - Security
The Register - Security
V
Visual Studio Blog
F
Full Disclosure
Hugging Face - Blog
Hugging Face - Blog
T
Threat Research - Cisco Blogs
Latest news
Latest news
PCI Perspectives
PCI Perspectives
Cisco Talos Blog
Cisco Talos Blog
博客园 - Franky
D
DataBreaches.Net
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
P
Palo Alto Networks Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
T
Tenable Blog
L
LINUX DO - 热门话题
Spread Privacy
Spread Privacy

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Arch/labwc 环境网络相关设置 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 解决Arch下VSCode无法输入中文的问题 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法 券商费率调整记 迷你主机组装记 Labwc更换定制皮肤 树莓派跑分流代理 实用自动代理配置示例 九年老鼠标复活记 Openvpn示例 Mac下如何旋转webp图片 如何隐藏Vscode中Markdown PDF插件的头部内容 解决Linux下网络配置无法变更保存的问题 labwc环境启用wlogout Ubuntu下新官方微信尝鲜 简单检测用户是否开启广告屏蔽 Atuin ZFS下卡顿问题解决 Wine安装64位微信 Fish 和 Atuin使用记 Fastapi简单实现临时下载链接 Fastapi微信公众号开发简要 Hugo根据语种展示不同内容 如何修复Waybar微信图标错误 信封加密简要 Linux环境下维护公众号记录 快速隐藏和呼出终端 Wayland环境自动切换壁纸 SuperTuxKart 试玩 简单抓取雪球股票快讯 为什么你的kill命令不能列出信号表 Wine安装微信保姆教程 Hysteria科学上网简要 Ubuntu 23.10 钉钉无法启动解决方法 网站导航栏防止插入Adsense自动广告 Linux环境按键检测 Hugo文末添加最后修改时间 Wayland环境ksnip无法复制问题解决 我眼中的股票市场 Caddy简单图片防盗链 greetd和regreet使用教程 Wayland环境下截图加后期修改 Firefox的一些有趣功能 Ubuntu 切换系统语言 Firefox 标题栏高度调整 网站添加回到顶部功能 Hugo自定义字体 Labwc 便捷配置 Wofi使用教程 窗口管理器labwc使用记 文件共享软件Dufs推荐 Hugo静态站点接入Adsense广告 Fcitx5配置详解 Ubuntu安装chrome的方法总结 一种Xterm.js的全屏方案 Google网址收录api Python示例 手机听离线音乐 Snipe it资产导入 应用启动器yofi使用配置 Snipe it资产管理系统安装使用 Ubuntu开机启动加速 Vue3 vite TypeScript跨域等相关设置 Ubuntu手动升级Libreoffice Ubuntu设置alacritty为默认终端 简体文章批量转换为繁体 使用Inkscape调整svg图片大小 实用命令 使用mitmproxy给手机app抓包 Python中rstrip方法细解 Github同主机多仓库部署deploy key问题处理 Linux安装最新版本Python KeePassXC使用教程 Ubuntu 22.10连接蓝牙耳机报错br-connection-profile-unavailable解决方法 Caddy日志配置轮转和格式化
Wayland 环境下gif录屏
2023-08-02 · via mephisto.cc

昨天在写 Firefox 的一些有趣功能的时候,需要演示一些 ui 操作步骤,这个时候截图不太能清楚记录过程,联想到 Github 上面经常有些 gif 图片演示操作步骤,用命令行 2 张图片结合生产了一张 gif 图片也是可以的,略微麻烦。在这种场景下,录屏操作步骤,然后生成一个 gif 图片是个理想的方式。当然,网站上嵌入视频也可以,但是很多平台并不支持视频上传,对于简单网页教程来说,图片更加适合。

1. 垂死挣扎

当前 Linux 生态里面 peekKooha 是主流的录屏生成 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 animatedGIF.gif

此时,我想起了 wf-recorder,一个简易功能强大的录屏工具。也许它不光能输出 mp4/webp,也能输出 gif 呢?

我翻看了 Readme 文档,Ctrl + F 搜索 gif 关键字,并没有任何匹配结果,通常这种情况下,一个坚实的 Linux 用户是不会放弃的,最终,在 issues 列表中搜索 gif 关注找到了真解,参考 issue

你只需要命令行这样操作就好了:

1wf-recorder -f test.gif -c gif -g "$(slurp)"
  • slurp 其实是另外一个软件,会让你选择范围,不带这个参数的话,会让你选择屏幕(如果使用了多屏幕的话)
  • -c gif 指定编码(codec)格式,没有这个参数,输出 test.gif 会报错。

其实 wf-recorder help 文档上也有相关说明,太隐蔽了,大部分人不会注意到。

-c, --codec Specifies the codec of the video. Supports GIF output also.

To modify codec parameters, use -p <option_name>=<option_value>

gif 图片示例(录制了好多秒,大小 792K):

test gif

停止录屏,按 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