各位嵌入式、机器视觉开发者,K230/K230D RT-Smart又更新重磅实用功能——WebRTC局域网摄像头Demo正式开源,推流延迟低至150ms!
依托K230内置硬件H.264/H.265编码器,实现摄像头采集、硬件编码、WebRTC低延迟推流全链路零拷贝,无需第三方流媒体服务,浏览器打开即可实时查看画面,本地LCD/HDMI同步预览,开发调试、小型监控场景直接落地。


本次示例基于官方libpeer WebRTC封装库开发,完整打通硬件媒体管线与WebRTC传输层,整套使用流程分为4大模块:
媒体采集分流
通过VICAP读取CSI摄像头图像,分成两路通道:CHN0输出至VO模块,实现LCD/HDMI本地实时预览;CHN1送入VENC硬件编码器做H.264/H.265 CBR恒定码率压缩,支持自定义分辨率、码率。
WebRTC信令服务
内置轻量HTTP服务器,承载SDP offer/answer信令交互,浏览器访问内置Web页面后自动发起协商,无需自建前端、独立信令服务。
码流实时传输
硬件编码后的H.264/H.265 帧通过peer_connection_send_video接口直接送入libpeer,基于SRTP加密传输,全程零拷贝,减少内存拷贝带来的延迟与性能损耗。
浏览器适配校验
内置mDNS隐私检测逻辑,自动识别Chrome/Edge连接失败问题并给出提示,同时支持页面一键重连,断网后无需重启开发板即可恢复视频流。
整套WebRTC能力全部封装在开源Demo中,开发者可直接复用HTTP信令、媒体绑定、帧发送全套代码,快速移植到自家IPC、视觉采集设备项目。


✅ 硬件H.264/H.265 实时推流,CBR码率可控,分辨率灵活自定义
✅ 双路画面输出:LCD/HDMI本地预览 + WebRTC浏览器远程查看
✅ 内置嵌入式Web UI,局域网浏览器一键连接,开箱即用
✅ 原生SDP信令交互,HTTP单线程服务,支持跨域CORS
✅ mDNS兼容性检测,自动提示浏览器连接故障解决方案
✅ 完整开源工程,管线、信令、前端代码全部开放可修改



配置menuconfig开启依赖
make menuconfigRT-Smart UserSpace Libraries Configuration → Enable Build libpeer (WebRTC) = YRT-Smart UserSpace Examples Configuration → Enable MPP examples = Y→ Enable Build sample_webrtc = Y
SDK根目录编译
make开发板执行程序(参数可按需修改)
sample_webrtc.elf -p 8080 -s 2 -c 605274512 -W 1280 -H 720 -b 2000浏览器访问
程序启动后串口打印设备地址,浏览器打开 http://设备IP:8080 即可查看实时画面。


参数 | 说明 | 默认值 |
-p | HTTP服务端口 | 8080 |
-s | CSI摄像头设备号(0-2) | 2 |
-c | 显示输出:605274512=LCD / 757006876=HDMI | LCD |
-W | 编码画面宽度 | 1280 |
-H | 编码画面高度 | 720 |
-b | H.264码率(kbps) | 2000 |
-t | 视频编码类型(H264/H265) | H264 |
注意:使用 -t h265 时,部分浏览器无法解码 H.265 (HEVC) WebRTC 流。


Chrome、Edge默认开启mDNS隐私保护,会隐藏局域网本地IP导致WebRTC握手失败,任选一种修复:
浏览器地址栏输入 chrome://flags/#enable-webrtc-hide-local-ips-with-mdns,选项改为Disabled,重启浏览器;
浏览器快捷方式添加启动参数:--disable-features=WebRtcHideLocalIpsWithMdns;
直接使用Firefox浏览器(无mDNS限制)。


文件 | 核心作用 |
main.c | 程序入口、SDP信令处理、H.264/H.265 码流转发至WebRTC |
http_server.c/.h | 轻量HTTP信令服务器,支持CORS跨域 |
mpp_pipeline.c/.h | MPP媒体管线封装:VICAP/VO/VENC资源管理 |
web_page.h | 内置Web前端页面,无需单独部署网页 |
Makefile | 工程编译构建脚本 |


libpeer三方库:封装WebRTC底层,包含mbedTLS、cJSON、SRTP、SCTP协议栈;
K230 MPP SDK:提供VB内存池、VICAP图像采集、VO显示、VENC硬件编码全套媒体接口。


小型局域网监控设备、视觉调试工具、机器人车载摄像头、本地工业图像采集、低延迟视频演示设备,省去FFmpeg、Nginx-RTMP等流媒体中间件,大幅降低设备内存占用与开发工作量。
参考文档
[1] K230 RT-Smart WebRTC官方开发文档
https://www.kendryte.com/k230_rtos/zh/main/app_develop_guide/media/webrtc.html
[2] WebRTC完整开源Demo工程仓库
https://github.com/canmv-k230/k230_rtsmart_examples/tree/main/mpp/sample_webrtc