前言
最近基于RV1126做人脸识别,选用了一款双目摄像头,RGB+IR,RGB Sensor为GC2093,IR Sensor为GC2053,可以读取两个sensor的图像,本节介绍下如何适配添加GC2053 sensor并且可以在windows上成功拉取视频流
平台背景
开发板:易百纳开发板
cpu: rv1126
sensor: gc2053 200w像素 2lanes
type:MIPI
kernel: 4.19.111
system:buildroot-2018.02
硬件连接
原理图下图所示:
管脚连接关系如下:
器件I2C总线及地址:
GC2053:I2C1—0x37(7bit address);
CSI:
GC2053--->csi2_dphy0(MIPI_CSI_RX_D0-1&MIPI_CSI_RX_CLK0);
CLK:
GC2053:CLK_OUT0(GPIO2_A3-------CAM_CLKOUT0);
GPIO:
GC2053 reset-gpios---GPIO1_D5;
GC2053 pwdn-gpios---GPIO1_D4;
RV1126的链路举例
结合RK的VICAP和ISP的链路,来看看下面RK356X的一种摄像头链路。注:rv1126的VICAP和ISP是独立的两个图像处理IP
链接关系:
sensor->csi2 dphy0-> mipi csi2 -> cif_mipi_lvds -> rkcif_mipi_lvds -> rkisp_vir0
添加GC2053的DTS
&i2c1 {
status = "okay";
clock-frequency = <400000>;
gc2053: gc2053@37 {
compatible = "galaxycore,gc2053";
reg = <0x37>;
clocks = <&cru CLK_MIPICSI_OUT>;
clock-names = "xvclk";
power-domains = <&power RV1126_PD_VI>;
pinctrl-names = "rockchip,camera_default";
pinctrl-0 = <&mipicsi_clk0>;
// power-gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>;
// pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_LOW>;
// reset-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "front";//前置摄像头
rockchip,camera-module-name = "YT-RV1109-2-V1";//IQ文件
rockchip,camera-module-lens-name = "40IR-2MP-F20";//IQ文件
port {
ucam_out0: endpoint {
remote-endpoint = <&mipi_in_ucam0>;
data-lanes = <1 2>;
};
};
};
};
&csi_dphy0 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_in_ucam0: endpoint@1 {
reg = <1>;
remote-endpoint = <&ucam_out0>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csidphy0_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_csi2_input>;
// remote-endpoint = <&isp_in>;
data-lanes = <1 2>;
};
};
};
};
&rkcif_mipi_lvds {
status = "okay";
port {
/* MIPI CSI-2 endpoint */
cif_mipi_in: endpoint {
remote-endpoint = <&mipi_csi2_output>;
data-lanes = <1 2>;
};
};
};
&rkcif_mipi_lvds_sditf {
status = "okay";
port {
/* MIPI CSI-2 endpoint */
mipi_lvds_sditf: endpoint {
remote-endpoint = <&isp_in>;
data-lanes = <1 2>;
};
};
};
&rkisp_vir0 {
status = "okay";
ports {
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
isp_in: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_lvds_sditf>;
// remote-endpoint = <&csidphy0_out>;
};
};
};
};
VLC进行拉取视频流
VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,有需要的同学可以在公众号后台进行回复"vlc"进行获取。
识别出gc2053 sensor
保证windows和设备IP能ping通
保证windows的IP和板端IP要可以Ping通。
可以都是在同一个路由器下动态分配IP,也可以是都是静态分配的IP
设备端执行视频流可执行文件rkmedia_vi_venc_rtsp_test
./app/camera/2093_2053/rkmedia_vi_venc_rtsp_test -a /o
em/etc/iqfiles/
VLC软件进行拉流
媒体->打开网络串流
设置好网络URL点击播放
(rtsp://[板端 ip]/live0/main_stream)
VLC效果图显示
gc2053黑白效果图
注意:如果拉流失败要看下设备端的IP和WINDOWS ip是否在同一网段,其次要看网络URL是否写对
结语
我们学会了如何用VLC进行拉取视频流,下期我们来做下拉取GC2093图像的视频流。vlc软件可以在公众号后台进行回复"vlc"进行获取。
作者潘小帅, 是一名Linux底层爱好者,平时写写技术原创文章,徒步,旅游,看电影的爱好,喜欢我的文章可以点赞收藏+关注,感谢你的支持,微信公众号【Linux随笔录】