【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面

嘉楠开发者 2026-09-18 08:00


各位开发者朋友们,CanMV又迎来实用能力更新🎉!

本次正式上线 MJPEGEncoder 硬件JPEG编码模块,依托K230/K230D内置VENC硬件编码器,结合配套Web视频流例程,无需安装任何播放器,局域网内浏览器即可直接查看摄像头实时画面,快速实现嵌入式Web摄像头、远程预览、截图抓拍等场景。

【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图1
【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图2




什么是MJPEGEncoder

【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图3


MJPEGEncoder 直接调用芯片VENC硬件编码单元,支持将Sensor输出YUV视频帧、image.Image图像编码为完整JPEG字节流。

  • ✅ 硬件编码,不占用CPU,兼顾性能与功耗;

  • ✅ 优先直接编码Sensor VB视频帧,避免图像内存拷贝,高分辨率下性能更优;

  • ✅ JPEG质量可配置,范围1‑99,灵活平衡画质与带宽;

  • ✅ 自动管理VENC通道与VB缓冲区,资源按需申请,使用完毕调用close()即可释放硬件资源。


导入方式


from media.mjpeg import MJPEGEncoder




开箱即用:

MJPEG网页视频流例程

【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图4


SDK内置完整Web MJPEG图传例程mjpeg_web_server.py,基于HTTP multipart/x‑mixed‑replace协议,手机、电脑浏览器直接访问即可预览实时画面,不用部署流媒体服务、不用安装VLC等播放器。


📍 文件位置


  • 开发板固件路径:/sdcard/examples/02‑Media/mjpeg_web_server.py

  • SDK源码路径:src/canmv/resources/examples/02‑Media/mjpeg_web_server.py




核心配置项

【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图5

脚本头部可直接修改网络、分辨率、编码质量、帧率等参数:

  • 支持WiFi‑STA / WiFi‑AP / LAN有线网络;

  • FRAME_ALIGNMENT=12,适配VENC硬件4096字节对齐要求;

  • JPEG_QUALITY调节图片压缩质量;

  • STREAM_FPS设置视频流帧率上限。




接口能力

【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图6


例程内置3个HTTP接口,开箱可用:

访问路径

功能说明

/

Web实时预览主页,内置JS断线自动重连

/stream

MJPEG视频流数据流接口

/snapshot.jpg

获取当前时刻单帧截图JPEG


运行脚本后,串口打印访问地址,同局域网设备浏览器打开地址即可查看画面。网页内置异常重连逻辑,流断开后自动重试,无需手动刷新页面。




大帧网络发送优化

【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图7


针对1080P大尺寸JPEG传输容易超时断开的痛点,例程做了专门优化: Socket设置为非阻塞模式,JPEG数据包按16KiB分块发送;遇到EAGAIN临时阻塞会持续重试;连续5秒无发送进度才关闭客户端,有效解决TCP回压导致画面只出一帧就断开的问题。




使用注意要点

【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图8


  1. Sensor输出YUV帧务必设置 alignment=12,保证图像平面4096字节对齐,否则VENC编码会报错;高分辨率场景务必开启USE_VIDEO_FRAME=True,直接使用Sensor视频帧,减少内存拷贝开销。

  2. 当前例程为单客户端同步模型,同一时刻仅支持一个浏览器连接视频流。

  3. 实际帧率受WiFi带宽、编码质量、浏览器消费速度影响;画面延迟高可以降低分辨率、降低JPEG质量、下调目标帧率。

  4. 脚本退出会自动关闭Socket、编码器、Sensor,防止VENC通道、VB缓冲池资源泄漏。




简单编码示例

【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图9
from media.mjpeg import MJPEGEncoderfrom media.sensor import Sensor
sensor = Sensor()encoder = Nonetry:    sensor.reset()    sensor.set_framesize(width=1920, height=1080, alignment=12)    sensor.set_pixformat(Sensor.YUV420SP)    sensor.run()
    encoder = MJPEGEncoder(quality=50)    frame = sensor.snapshot(dump_frame=True)    jpeg_data = encoder.encode(frame, timeout_ms=1000)
    # 可写入文件 / 通过socket发送    with open("/sdcard/snapshot.jpg","wb"as f:        f.write(jpeg_data)finally:    if encoder is not None:        encoder.close()    sensor.stop()




适用场景

【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图10
  • AI项目调试远程预览摄像头画面;

  • 简易嵌入式Web监控、无线图传;

  • 抓拍截图,本地保存JPEG图像;

  • 与K230 NPU推理结合,实现AI识别结果网页可视化。




参考文档

【K230/K230D 新技能点亮】K230 CanMV MJPEG 能力解锁,局域网浏览器实时预览摄像头画面图11


  • MJPEG例程文档:

https://www.kendryte.com/k230_canmv/zh/main/example/media/mjpeg.html

  • MJPEGEncoder API手册:

https://www.kendryte.com/k230_canmv/zh/main/api/mpp/media_mjpeg.html


快去更新固件,上手体验硬件MJPEG编码,欢迎在评论区分享你的项目作品


关于科技区角:国内科技展会垂直内容策划服务商,提供从论坛内容全案策划、会展市场化IP打造到精准专业观众一站式邀约服务,以产业内容吸引高质量B端人群,打通展会从议题设计、演讲嘉宾邀约、宣传预热、精准邀观到供需对接全链路。
声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。
摄像头
more
【K230/K230D新技能点亮】4K 摄像头重磅升级,支持 4‑LANE 4K@27fps
3100万次迭代后,他让监控摄像头“失明”:noRecognition项目实车测试成功
苹果研发带摄像头AirPods,视觉智能功能曝光
ADAS摄像头TOP10:德赛西威遥遥领先
狐讯 | 特斯拉筹备智驾出租车;AirPods 摄像头首曝
今日最黑:摄像头
屏下摄像头加持!苹果这1.6万的新品已经是国产的形状了
突发|苹果带摄像头的 AirPods 泄露了
2499元!雷鸟iO AI眼镜发布:没摄像头和扬声器,但更可能卖爆
带摄像头AirPods或2027年推出/DeepSeek Harness更新多模态能力/豆包正式入驻特斯拉车机
Copyright © 2025-成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号