跳转至

H.264 / WebRTC

H.264 视频功能

H.264 简介

H.264(也称为 MPEG-4 AVC)是一种高效的视频压缩标准,广泛应用于流媒体传输。相比 MJPEG,H.264 具有以下优势:

  • 更低的带宽占用
  • 更好的压缩效率
  • 支持音频传输
  • 更低的网络延迟

实现方案

PiKVM 提供两种 H.264 编码方案:

Libx264 方案(推荐)

Libx264 是 VideoLAN 开发的高性能 H.264 编码库。此方案:

  • 已集成到最新版本中并默认启用
  • 性能优异,使用便捷
  • 支持 WebRTC 实时传输
FFmpeg 方案(已停止维护)

此方案使用 FFmpeg 软件编码,由于性能问题已停止维护:

  • CPU 占用较高
  • 在低性能设备上体验较差
  • 仅作为历史方案归档使用

WebRTC 配置

WebRTC 说明

WebRTC 使用 P2P 连接和 UDP 传输,可以:

  • 降低网络延迟
  • 减少服务器负载
  • 提供更好的实时性能

默认配置

WebRTC 默认使用 Google STUN 服务器,配置位于 /etc/kvmd/override.yaml

1
2
3
4
5
6
7
janus:
    stun:
        host: stun.l.google.com
        port: 19302
        retries: 5
        retries_delay: 5.0
        timeout: 5.0

远程访问配置

支持两种远程访问方式:

  1. 端口映射(不推荐)

    • 需要映射 20000-40000 UDP 端口
    • 配置复杂,安全性较低

    端口映射

  2. 异地组网(推荐)

    • 使用 Tailscale 等工具建立安全隧道
    • 配置简单,安全性高
    • 无需映射大量端口

    Tailscale

视频质量调优

画质优化

如果视频质量不理想,需要检查硬件和软件设置: 硬件环境: 1. 确保局域网为千兆交换机,若为wifi环境至少为 600Mbps以上高速高性能Wifi AP 2. R1系列采集卡插入的为盒子本体或者USB扩展器的USB 3.0接口,S805系列采集卡插入的为靠近网口的为usb2.0 端口 3. 确保各硬件的连线接口不要松动或者受潮生锈(喷电子除锈剂或者多插拔几次去掉氧化层) 4.确保HDMI线为新一代HDMI 2以上高端线材更换廉价线材。
软件设置: 1. 在网页右上角系统菜单中调整 H.264 比特率 2. 根据网络状况适当调整分辨率(720p可获得更高帧率) 3. 选择合适的画质预设参数 4. R1盒子在低带宽下选择或者调整合适的GOP参数 调整GOP值为30:stream_gop=30 启用错误隐藏:h264_err_detect=ignore 5. 不带H264硬解码的S805盒子必须选择 网页右上角 系统 视频模式 MJPEG / HTTP 来改善显示画面 公网环境: 建议R1盒子 低带宽下有限建议720f webrtc或者H264传输 建议确保公网或者内网映射链路的出口带宽 至少为8-40Mbps以上

演示视频