利用 1080P 30fps 的 USB 摄像头(MJPEG 格式),结合 OpenWRT 无线路由器(WiFi5) 实现 低延时无线视频传输

要利用 1080P 30fps 的 USB 摄像头(MJPEG 格式),结合 OpenWRT 无线路由器(WiFi5) 实现 低延时无线视频传输,我们需要从 摄像头采集、MJPEG 编码优化、WiFi5 传输优化、接收端解码优化 等多个环节进行设计,以确保 端到端延迟低于 50ms。


  1. 关键技术方案

实现低延迟无线传输,需要关注以下 四个关键环节:


  1. 具体实现方案

以下是完整的 软硬件架构 和 具体实现步骤。

🔹 硬件架构

USB 摄像头(MJPEG 格式,1080P@30fps)

OpenWRT 路由器(WiFi5, 5GHz, 802.11ac)

接收端(PC、手机、嵌入式设备)


🔹 方案 1:MJPEG + RTP + UDP 低延迟传输

适用于:<50ms 低延迟无线流媒体传输

1️⃣ 摄像头采集 & MJPEG 处理

在 OpenWRT 设备(带 USB 口的路由器)上运行 MJPEG 服务器

采用 V4L2 + MJPEG 硬件编码,确保最低采集延迟

使用 MJPEG-Streamer,支持 RTP 传输

📌 配置步骤(OpenWRT 端)

  1. 安装所需软件

opkg update opkg install mjpg-streamer v4l-utils ffmpeg

  1. 启动 MJPEG 服务器

mjpg_streamer -i “input_uvc.so -r 1920×1080 -f 30” -o “output_http.so -w /www/webcam”

  1. 启用 RTP 低延迟传输

mjpg_streamer -i “input_uvc.so -r 1920×1080 -f 30” -o “output_rtsp.so -p 8554”

✅ 这样,摄像头数据会通过 WiFi5 + RTP 进行低延迟传输。


2️⃣ OpenWRT WiFi 传输优化

WiFi5(802.11ac)默认存在 抖动 和 缓冲导致延迟增加,需要优化:

📌 关键优化配置

  1. 提高 WiFi 视频优先级(QoS)

uci set wireless.default_radio0.vid=5 uci set wireless.default_radio0.wmm=1 uci set wireless.default_radio0.qos=1 uci commit wireless /etc/init.d/network restart

  1. 开启 UDP Fast Path(加速 RTP 流)

echo “net.core.rmem_max=2097152” >> /etc/sysctl.conf echo “net.core.wmem_max=2097152” >> /etc/sysctl.conf sysctl -p

✅ 优化效果:

WiFi5 的吞吐 提高 20-30%

RTP 流的 稳定性提升

端到端延迟降低 10-15ms


3️⃣ 接收端低延迟解码

在接收端(PC / 手机)运行 FFmpeg 或 Gstreamer 进行低延迟解码。

📌 PC 端接收(FFmpeg)

ffplay -fflags nobuffer -flags low_delay -framedrop -probesize 32 -rtsp_transport udp rtsp://192.168.1.1:8554/

📌 嵌入式设备(Gstreamer)

gst-launch-1.0 rtspsrc location=rtsp://192.168.1.1:8554/ latency=0 ! decodebin ! autovideosink

✅ 优化效果:

RTP 直连,避免 TCP 额外延迟

关闭缓冲,降低 10-20ms

端到端解码 加速到 10-20ms


🔹 方案 2:MJPEG + WebRTC 超低延迟传输

适用于:低于 30ms 的无线视频传输

1️⃣ WebRTC 低延迟服务器

在 OpenWRT 上安装 WebRTC RTP 转码

opkg install webrtc-streamer

然后运行:

webrtc-streamer -H 192.168.1.1 -P 8080 -C MJPEG

✅ WebRTC 的优势:

超低延迟(可以低至 10-30ms)

自动带宽优化

WiFi5 适应性更好

📌 PC 端 WebRTC 播放

在浏览器打开:

http://192.168.1.1:8080/

✅ 延迟比 RTP 方案再低 10-20ms。


  1. 端到端延迟对比

✅ 方案 1(RTP + UDP):稳定可靠,适合局域网传输 ✅ 方案 2(WebRTC):超低延迟,适合互动场景


  1. 总结

如果你要用 OpenWRT 路由器 + USB 摄像头(MJPEG 格式) 实现 低延迟无线视频传输,推荐:

方案 1(RTP + UDP):30-50ms,适用于 低成本局域网视频传输

方案 2(WebRTC):25-35ms,适用于 超低延迟场景

优化重点

  1. MJPEG 低延迟采集(GOP=1, 关闭缓存)
  2. WiFi5 QoS 优化(802.11e)

  3. UDP/RTP 传输(避免 TCP 额外延迟)

  4. FFmpeg / Gstreamer 硬件解码优化

你可以 先尝试 RTP 方案,如果还想进一步降低延迟,可以切换到 WebRTC 方案!你觉得哪种方案更适合你的需求?