mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-28 08:31:52 +08:00
04e62d1e3f89e9345aca24e77094f7f3fd7db17e
改善内容: 1. NAL单元duration累积bug修复 - 修改video_track.rs和unified_video_track.rs - 只有帧内最后一个NAL获得frame_duration,其他为ZERO - 确保同一帧的所有NAL共享相同的RTP时间戳 2. 修复VP8/VP9固定1秒duration错误 - 将Duration::from_secs(1)改为正确的frame_duration计算 3. PTS计算优化(shared_video_pipeline.rs) - 将pipeline_start_time从Mutex<Option<Instant>>改为AtomicI64 - 消除每帧一次的async mutex lock - 使用compare_exchange实现无锁的首帧时间设置 4. 避免重复读取config - 在encode_frame中缓存fps,避免末尾再次获取config锁 5. 编码器零拷贝优化 - H264/H265/VP8/VP9编码器使用drain()替代clone() - 减少内存分配和拷贝开销 6. MJPEG处理器优化 - 无客户端时跳过JPEG编码(WebRTC-only模式优化) 7. RKMPP YUYV直接输入支持 - hwcodec C++层添加YUYV422格式支持 - H264编码器添加Yuyv422输入格式选项
One-KVM
开放轻量的 IP-KVM 解决方案,实现 BIOS 级远程管理
介绍
One-KVM 是一个用 Rust 编写的开放轻量的 IP-KVM(基于 IP 的键盘、视频、鼠标)解决方案,让你可以通过网络远程控制计算机,包括 BIOS 级别的操作。
当前软件处于开发早期阶段,各种功能和细节还有待完善,欢迎体验,但请勿应用于生产环境。
功能特性
核心功能
| 功能 | 说明 |
|---|---|
| 视频采集 | HDMI USB 采集卡支持,提供 MJPEG/H264/H265/VP8/VP9 视频流 |
| 键鼠控制 | USB OTG HID 或 CH340 + CH39329 HID,支持绝对/相对鼠标模式 |
| 虚拟U盘 | USB Mass Storage,支持 ISO/IMG 镜像挂载和 Ventoy 虚拟U盘模式 |
| ATX 电源控制 | GPIO 控制电源/重启按钮 |
| 音频传输 | ALSA 采集 + Opus 编码(HTTP/WebRTC) |
硬件编码
支持自动检测和选择硬件加速:
- VAAPI - Intel/AMD GPU
- RKMPP - Rockchip SoC (尚未实现)
- V4L2 M2M - 通用硬件编码器 (尚未实现)
- 软件编码 - CPU 编码
其他特性
- 单二进制部署,依赖更轻量
- Web UI 配置,无需编辑配置文件,多语言支持 (中文/英文)
- 内置 Web 终端 (ttyd),内网穿透支持 (gostc),P2P 组网支持 (EasyTier)
快速开始
Docker 运行
docker run -d --privileged \
--name one-kvm \
-v /dev:/dev \
-v /sys/kernel/config:/sys/kernel/config \
--net=host \
silentwind0/one-kvm
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
ENABLE_HTTPS |
启用 HTTPS | false |
HTTP_PORT |
HTTP 端口 | 8080 |
VERBOSE |
日志级别 (1/2/3) | - |
致谢
感谢以下项目:
许可证
待定
Description
Languages
Rust
63.4%
Vue
17.2%
TypeScript
8.2%
C
6.4%
C++
3.7%
Other
1%