关于orangepiZERO3的官方文档:

http://www.orangepi.cn/orangepiwiki/index.php/Orange_Pi_Zero_3

按照里面有关的步骤进行操作,但是可能会有一点小问题,特此记录一下


第一步和第二步一致,不多说。


第三步:

我的命令行窗口:

orangepi@orangepizero3:~/hhlong$ v4l2-ctl --list-device
cedrus (platform:cedrus):
	/dev/video0
	/dev/media0

Integrated Camera: Integrated C (usb-5200000.usb-1):
	/dev/video1
	/dev/video2
	/dev/media1

cedrus 是香橙派 Zero3(全志 H616 芯片)里 内置硬件视频编解码器(VPU)的 Linux 驱动

详细的说,就是:

cedrus (/dev/video0)板载硬件编码器负责视频硬解 / 硬编(看电影、转码加速)

Integrated Camera (/dev/video1)USB 摄像头负责采集画面

Linux 把 所有多媒体硬件(摄像头、编码器、解码器) 都统一用 V4L2(Video for Linux 2)框架管理。

与文档提示稍有不同的是:我的输出了 2 个 video 设备:

video1 = 图像数据(要用的)

video2 = 元数据(参数信息,不用管)


第四步也一致。


第五步使用 MJPG-Stream

执行make -j4 时可能会报错,原因是orangepi没有下载编译链

可以输入下面命令下载:

sudo apt update && sudo apt install -y cmake gcc g++ make

然后继续make -j4还可能会报错

experimental/plugins/input_uvc/jpeg_utils.c:27:10: fatal error: jpeglib.h: No such file or directory
   27 | #include <jpeglib.h>
      |          ^~~~~~~~~~~
compilation terminated.

因为orangepi没有下载jpeg的开发库

执行下面命令:

sudo apt install -y libjpeg-dev

然后继续编译,应该没有问题了。

小知识:-j是job的意思,-j4是四个线程同时编译,因为ZERO3是4核CPU;

但是执行下一步开启MJPG-Stream时可能会出错

因为原命令

sudo ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -u -f 30" -o "./output_http.so -w ./www"

-u ,这这个命令强制使用 UYVY 格式(无压缩格式),绝大多数 USB 摄像头默认只支持 MJPEG 压缩格式,不支持 -u

执行这个命令:

sudo ./mjpg_streamer -i "./input_uvc.so -d /dev/video1 -f 30 -r 640x480" -o "./output_http.so -w ./www"

在浏览器打开【开发板的IP地址:8080】的网址,就可以看到视频流了。

如果要邀请远方的小伙伴,可以用tailscale来一起看。

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐