本文介绍基于 RK3588 的完整视频推流链路方案,涵盖 MIPI 摄像头采集、OpenCV 图像处理、硬件 H.264 编码及 WebRTC 低延迟推流。
整体架构思路
主要功能使用 Python 实现:
- 画面采集:使用 GStreamer 直接对接底层驱动,利用 RK3588 的硬件 ISP 把 MIPI RAW 数据转成彩色的缩小画面。
- OpenCV 处理:OpenCV 拿到图片后,可以进行所需的图像处理或 AI 推理。
- 硬件编码推流:将处理后的画面交给
mpph264enc(瑞芯微硬件编码器)压缩,推给本机的流媒体服务器。 - 终端分发:使用轻量级
MediaMTX作为流媒体服务器,客户端通过 WebRTC 协议实现网页端秒开与超低延迟观看。
第一步:环境准备
- 确认你的摄像头节点(比如单摄时是
/dev/video11)。
确保安装了带 GStreamer 支持的 OpenCV 和相关插件(注意 pypi 上的 opencv 默认不支持 gstreamer,建议直接下载系统环境的 opencv,或者手动编译):
sudo apt-get update
sudo apt-get install python3-opencv
sudo apt-get install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-rtsp
第二步:部署轻量级流媒体服务器 (MediaMTX)
建议在板子上跑服务器,这样客户端不需做任何配置。
在 RK3588 上下载 ARM64 版本并运行:
wget https://github.com/bluenviron/mediamtx/releases/download/v1.16.1/mediamtx_v1.16.1_linux_arm64.tar.gz
tar -zxvf mediamtx_v1.16.1_linux_arm64.tar.gz
./mediamtx
你应该能看到以下输出:
user@rk3588:~/Downloads$ ./mediamtx
2026/02/21 15:07: v1., linux, arm64
:: configuration loaded from usermediamtx.yml
:: [] listener opened on : (), : ()
:: [] listener opened on :
:: [] listener opened on :
:: [] listener opened on : (), : ()
:: [] listener opened on : ()

