Keyboard, Video, Mouse via WebRTC
# HTTP API Server
http:
# HTTP server port
port: 2345
# HTTP Auth method (none, password, pam)
auth: pam
pam:
# PAM service
service: system-auth
# Allowed users
allowed:
- root
# Show username input
username: no
# Default username
default: root
# USB Gadget settings
usb:
# USB Device Controller
udc: usbip-vudc.0
# USB Gadget ConfigFS Name
gadget: webrtc-kvm
# USB Vendor ID
id_vendor: 0x1D6B
# USB Product ID
id_product: 0x0104
# USB Manufacturer Name
manufacturer: ClassFun
# USB Product Name
product: WebRTC KVM
# Video related settings
video:
streams:
- id: hdmi-cap
name: HDMI Capture
# Use Video4Linux2
driver: v4l2-cap
# Video4Linux2 Capture Streaming device
device: /dev/video-cap0
fourcc: NV12
- id: video-encoder
name: H.264 Encoder
# Use Video4Linux2
driver: v4l2-m2m
# Video4Linux2 Memory-to-Memory encoder device
device: /dev/video-enc0
role: encoder
fourcc: H264
- id: webrtc
name: WebRTC Streamer
driver: webrtc
# Video stream pipes
links:
# From HDMI Capture to H.264 Encoder
- source: hdmi-cap
sink: video-encoder
type: dmabuf
# From H.264 Encoder to WebRTC Streamer
- source: video-encoder
sink: webrtc
type: pointer
# Auto stop stream when all clients disconnected
auto_stop: true
# Video Width
width: 1920
# Video Height
height: 1080
# Video Framerate (Frames per second)
fps: 60| Type | Status |
|---|---|
| H.264 / AAC | ✅ WORKS |
| H.265 / HEVC | |
| VP8 | ⛔ TODO |
| VP9 | ⛔ TODO |
| AV1 | ⛔ TODO |
All audio streaming are not implements now
| Type | Status |
|---|---|
| Video4Linux2 Capture | ✅ WORKS |
| X11 Grab | ⛔ TODO |
| VNC Client | ⛔ TODO |
| DRM Capture | ⛔ TODO |
| Framebuffer | ⛔ TODO |
| Type | Status |
|---|---|
| Video2Linux2 Memory-to-Memory | ✅ WORKS |
| VA-API | ⛔ TODO |
| VDPAU | ⛔ TODO |
| CedarX (Allwinner) | ⛔ TODO |
| RKMPP (Rockchip) | ✅ WORKS |
| FFmpeg AVCodec | ⛔ TODO |
| Type | Status |
|---|---|
| FFmpeg SWScale | |
| RGA (Rockchip) | ✅ WORKS |
| Type | Status |
|---|---|
| USB Gadget HID Keyboard | ✅ WORKS |
| USB Gadget HID Absolute Mouse | ✅ WORKS |
| USB Gadget HID Relative Mouse | ✅ WORKS |
| USB Gadget HID Touch Screen | ✅ WORKS |
| Bluetooth peripheral Keyboard | ⛔ TODO |
| Bluetooth peripheral Mouse | ⛔ TODO |
| Bluetooth peripheral Tablet | ⛔ TODO |
| Bluetooth peripheral Touch Screen | ⛔ TODO |
| Linux Userspace HID (uhid) | ⛔ TODO |
| Type | Status |
|---|---|
| USB Gadget MTP Folder | ⛔ TODO |
| USB Gadget Mass-Storage | ⛔ TODO |
| USB Gadget WebUSB Direct | ⛔ TODO |
| Name | SoC | Capture Device | Capture Interface | Kernel | Video |
|---|---|---|---|---|---|
| Ant-C v3 IP-KVM | Allwinner V3 | ITE IT6616FN | HDMI to MIPI-CSI | 6.6.2 (Mainline) | H.264 1920x1080@60hz |
| Raspberry Pi 3B | Broadcom BCM2837 | Toshiba TC358743 | HDMI to MIPI-CSI | 6.6.44 | H.264 1920x1080@50hz |
| Raspberry Pi 4B | Broadcom BCM2711 | Toshiba TC358743 | HDMI to MIPI-CSI | 6.6.44 | H.264 1920x1080@50hz |
| Raspberry Pi 4B | Broadcom BCM2711 | MacroSilicon MS2130 | HDMI to USB 3.0 | 6.6.44 | H.264 1920x1080@60hz |
| Rockchip RK3588 EVB | Rockchip RK3588 | Rockchip HDMI-RX | HDMI | 5.10.66 | H.264 1920x1080@60hz |
| Firefly ROC-RK3568-PC | Rockchip RK3568 | Rockchip RK628D | HDMI to MIPI-CSI | 5.10.198 | H.264 1920x1080@60hz |
Tested config files for devices: configs