录屏、屏幕共享和推流工具。基于Rust和Slint GUI框架。适用的操作系统Linux和Windows。
- 屏幕共享(WebRTC)
- 支持RTMP推流
- 单个屏幕录制
- 单个输入设备录音
- 捕获单个摄像头
- 支持移除摄像头背景
- 桌面音频录制
- 麦克风降噪
- 光标跟随
- 管理录制视频历史
- 播放录制的历史视频
- 简单的实时图像效果(录屏界面点击右键打开)
- 安装
Rust,Cargo,libpipewire,libalsa,libx264和qt6 - 运行
make desktop-debug调试桌面平台程序 - 运行
make desktop-build-release可构建适用于Wayland wlr的桌面应用程序发布版本。例如:Sway和Hyprland。 - 运行
make desktop-build-release desktop-features=desktop-wayland-portal可构建适用于Wayland XDG桌面门户的桌面应用程序发布版本。例如:Ubuntu和KDE。 - 运行
make desktop-build-release desktop-features=desktop-windows可构建适用于Windeos的桌面应用程序发布版本。 - 运行
make cursor-release可构建获取鼠标位置的程序。该程序需要和portal版本的wayshot一起使用。 - 参考 Makefile 了解更多信息
-
使用
Qt后端能解决windows平台字体发虚的问题。也推荐优先使用Qt后端保持和开发者相同的构建环境 -
查看程序输出日志信息:
RUST_LOG=debug wayshot。可选日志级别:debug,info,warn,error -
Wayland xdg portal版本使用光标追踪功能,需要配合wayshot-curosr程序一起使用。程序可以到Github页面去下载。运行程序需要使用管理员权限:sudo -E wayshot-cursor。 如果需要查看日志可以使用:RUST_LOG=debug sudo -E wayshot-cursor。可选日志级别:debug,info,warn,error -
程序版本选择版本:
portal版本:Ubuntu和KDE等wlr版本:Sway和Hyprland等
-
Ubuntu安装编译依赖:sudo apt install \ libxcb-composite0-dev libasound2-dev libpipewire-0.3-dev \ libx264-dev libx11-dev libxi-dev libxtst-dev libevdev-dev \ qt6-base-dev qt6-tools-dev qt6-tools-dev-tools -
Windows编译依赖: -
Windows编译ffmpeg-next- 安装LLVM(可通过官方安装程序、Visual Studio、Chocolatey或任何其他方式),并将LLVM的bin路径添加到PATH环境变量中,或者将LIBCLANG_PATH设置为该路径(更多信息请参阅clang-sys文档)。
- 通过任意方式安装FFmpeg(需包含头文件),例如从 https://ffmpeg.org/download.html 下载预编译的"full_build-shared"版本。将FFMPEG_DIR设置为包含include和lib的目录。
- 运行
cargo build命令。 - 将FFmpeg的bin路径添加到PATH环境变量中。
- 参考示例:https://github.com/zmwangx/rust-ffmpeg/blob/master/.github/workflows/build.yml。
- 运行程序依赖:
ffmpeg相关库和libx264.dll。可以到发布页面下载程序,里面包含了相关依赖。 git bash示例:
export FFMPEG_DIR=C:/ffmpeg-8.0.1-full_build-shared export LIBCLANG_PATH="C:/Program Files/Microsoft Visual Studio/18/Community/VC/Tools/Llvm/x64/bin" make desktop-build-release desktop-features=desktop-windows
-
下载和安装coturn
-
生成证书和密钥:
openssl req -x509 -newkey rsa:1024 -keyout /tmp/turn_key.pem -out /tmp/turn_cert.pem -days 9999 -nodes -
编辑配置。
-
默认位置:
/etc/turnserver.conf或/etc/coturn/turnserver.conf -
配置例子:
listening-ip=0.0.0.0 listening-port=3478 relay-ip=192.168.10.8 external-ip=192.168.10.8 tls-listening-port=5349 cert=/tmp/turn_cert.pem pkey=/tmp/turn_key.pem realm=example.com lt-cred-mech user=foo:123456 # no-auth no-cli verbose -
-
测试
turnserver -c /etc/turnserver.conf- 访问Trickle ICE进行测试
TURN服务器地址格式:turn:192.168.10.1:3478
- Slint Language Documentation
- slint::android
- Running In A Browser Using WebAssembly
- github/slint-ui
- Viewer for Slint
- LSP (Language Server Protocol) Server for Slint
- developer.android.com
- color4bg
- How to Deploy Rust Binaries with GitHub Actions
