本文主要介绍基于创龙科技TL3588-EVM评估板的视频开发案例,适用开发环境如下。
Windows开发环境:Windows 7 64bit、Windows 10 64bit
虚拟机:VMware16.2.5
开发环境:Ubuntu20.04.6 64bit
U-Boot:U-Boot-2017.09
Kernel:Linux-5.10.160
Debian:Debian 11
LinuxSDK:LinuxSDK-[版本号](基于rk3588_linux_release_v1.2.1_20230720)
我司提供的视频开发案例位于产品资料“4-软件资料\Demo\platform-demos\”目录下,本文档对应案例的测试模块型号、测试结果说明如下表所示。
评估板文件系统默认已支持GStreamer库,可执行如下命令查看GStreamer库使用说明。
Target# gst-inspect-1.0 -h
GStreamer是用来构建流媒体应用的开源多媒体框架,其目标是要简化音视频应用程序的开发,目前可被用于处理MP3、Ogg、MPEG1、MPEG2、AVI、Quicktime等多种格式的多媒体数据。
本案例主要基于V4L2与DRM子系统实现MIPI摄像头的视频采集,并通过HDMI进行显示,验证CAMERA1~CAMERA6接口功能。
备注:当前程序仅支持NV12格式数据采集。
程序流程图如下图所示。
V4L2(Video For Linux Two)为Video For Linux API的第二个版本,用于模拟无线电、视频捕获、输出驱动程序的内核接口。
DRM(Direct Rendering Manager)用于管理显示输出和分配buffer。关于DRM子系统的详细介绍可参考产品资料“6-开发参考资料\其他参考文档\”目录下的《brezillon-drm-kms》。
我司提供已配置的内核镜像文件boot-xxx-xxx.img,位于产品资料“4-软件资料\Demo\platform-demos\v4l2_capture\dts\bin\”目录下,其对应关系如下表所示。
本次以替换boot-ov13850-cam2.img内核镜像为例,请将其拷贝至评估板文件系统,执行如下命令替换评估板内核镜像。如需测试其他模块以及对应的接口,请根据实际情况替换内核镜像。
备注:如需固化至eMMC,请将设备节点修改为"/dev/mmcblk0p3"。
Target# dd if=boot-ov13850-cam2.img of=/dev/mmcblk1p3
Target# sync
Target# reboot
本次以测试创龙科技TL13850模块为例,请将产品资料"4-软件资料\Demo\platform-demos\iqfiles\"目录下的IQ参数文件ov13850_RK-CMK-8M-2-v1_CK8401.json拷贝至评估板文件系统"/etc/iqfiles/"目录下,然后执行如下命令,进行转换字符。
Target# dos2unix /etc/iqfiles/ov13850_RK-CMK-8M-2-v1_CK8401.json
Target# sync
Target# reboot
备注:如需测试其他模块,请将对应IQ参数文件拷贝至评估板文件系统"/etc/iqfiles/"目录下,进行转换字符,对应IQ参数文件如下表所示。
请使用FFC软排线将MIPI摄像头模块(创龙科技TL13850)连接至评估板CAMERA2接口,将评估板HDMI OUT接口连接至HDMI显示屏。
注意:请使用FFC软排线(30pin,间距0.5mm,同向),按照如下方法进行硬件连接,并仔细核对评估板接口、FFC软排线、摄像头三者线序,否则可能烧毁摄像头。
执行如下命令采集视频,并输出至显示设备。
Target# ./v4l2_capture -M rockchip -i /dev/video-camera0 -S 1920x1080 -f NV12 -F NV12 -b 4 -o 208:71:1920x1080
请使用FFC软排线将MIPI摄像头模块(树莓派Camera Module v2)连接至评估板CAMERA3接口,将评估板HDMI OUT接口连接至HDMI显示屏。
注意:请使用FFC软排线(15pin,间距1.0mm,反向),按照如下方法进行硬件连接,并仔细核对评估板接口、FFC软排线、摄像头三者线序,否则可能烧毁摄像头。
执行如下命令采集视频,并输出至显示设备。
Target# ./v4l2_capture -M rockchip -i /dev/video-camera0 -S 1920x1080 -f NV12 -F NV12 -b 4 -o 208:71:1920x1080
将案例"dts\src\"目录下tl3588-evm-imx219.dts、tl3588-evm-ov13850.dts设备树拷贝至LinuxSDK源码"kernel/arch/arm64/boot/dts/rockchip/"目录下。
请按照《Debian系统使用手册》文档Debian系统镜像编译、生成章节,替换设备树并重新编译内核,将生成的内核镜像文件拷贝至评估板文件系统进行固化,评估板重启后将会加载新的内核镜像文件。
将案例源码拷贝至Ubuntu工作目录,进入src源码目录,执行如下命令修改Makefile文件中的SDK_ROOT_PATH路径,请根据实际情况修改为LinuxSDK源码路径。
Host# vi Makefile
执行如下命令进行案例编译,编译完成将会在相同目录下生成可执行程序。
Host# make
我司提供的设备树文件tl3588-evm-xxx.dts,位于产品资料“4-软件资料\Demo\platform-demos\v4l2_capture\dts\src\”目录下。其对应关系如下表所示。
如需使用相应接口测试摄像头模块,可参考如下方法修改对应设备树文件。本次以CAMERA3接口为例,测试树莓派Camera Module v2模块。
将代码"#define CAMERA3_ENABLE_IMX219 0"修改为:"#define CAMERA3_ENABLE_IMX219 1"即可。
(1)显示初始化。
(2)采集初始化。
(3)DRM buffer申请与绑定。
(4)图像采集与显示。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。