UNSOLVED IMX307多相机同步问题
-
您好,想咨询下关于IMX307多相机视频流同步的问题
当前遇到问题如下:
通过如下命令先启动主相机,后启动从相机进行拍摄并保存到文件
gst-launch-1.0 v4l2src io-mode=dmabuf device=/dev/video0 !
"video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1" !
v4l2h264enc extra-controls="controls, h264_profile=4, video_bitrate=40000000" !
'video/x-h264, profile=high, level=(string)4' ! h264parse !
avimux ! filesink location=test.avi
然而通过将2个视频分别拆帧后逐帧对比发现并未同步(2个相机拍摄同一个ipad计时器,对比每一帧中ipad的时间戳),此处未同步是指找不到拍摄时间相同完全相同的帧(不是指2个视频的整体偏移,因为整体偏移是命令启动不同步造成的)
后续排查问题过程中,将J7-3和J7-2连接到示波器(2个相机保持连接的状态,在线的中间连接示波器),发现并无任何波形输出,一直为低电平(无触发信号,不管相机是否处于开启状态)硬件环境如下:
- 树莓派4b两台+2个IMX307相机(每个树莓派连接一个IMX307,2套硬件彼此独立)
- 2个相机的J7口直接连接(J7-1-J7-1,J7-2-J7-2,J7-3-J7-3),线长30cm
软件环境如下:
- 均为树莓派OS(64位bullseye)
- 均成功安装相机驱动,可通过gstreamer或者opencv打开摄像机
- 已通过i2c命令设置好主从(一主一从,按照wiki指示)
想请问下这个相机视频流的同步模式的正确使用方法,感谢!
-
@魏魏飞
主从相机,分别在对应的rpi上执行一下下面的命令,发出来我看看:./cs_mipi_i2c.sh -r -f streammode -b 10
-
@veye_xumm
主相机用的设置命令,以及您刚才给的命令输入如下
从相机用的设置命令,以及您刚才给的命令如下
这里-b的含义是什么呢?试了下用您的命令查看其他-b的值的时候都是stream mode 0xff,slavemode 255
-
@魏魏飞
你仔细看看文档,-b 7 和 -b 8是对应jetson 的章节写的。
-b参数是i2c bus的意思,树莓派上是10。
你不写-b参数也可以,树莓派脚本默认就是10. -
@veye_xumm
好的谢谢!
http://wiki.veye.cc/index.php/Camera_module_Stream_Mode_manual/zh
这个Wiki里没找到树莓派对应章节,所以只好用jetson的代替,没搞清楚-b的含义还得请问下,那树莓派上主从都用-b 10吗? 还是主从需要不同的设置
-
@魏魏飞 一样的
-
@veye_xumm
好的谢谢设置之后刚才的命令显示正常了,两个相机都是streammode 1 slavemode一个0一个1
但是daynightmode 主相机变成了0,从相机是1(都是imx307),这个有影响吗 -
@魏魏飞 看看文档先
-
@veye_xumm
好的,我再完整的重新读一次吧还有个问题,就是刚才再开启同步的情况下录了几段视频,拆帧后逐帧对比后,发现slave从相机侧有丢帧现象,主相机基本是20~40ms一张,但是从相机中间有漏帧,最大间隔160ms(和主相机对比漏掉了5张图片),设置上是同步模式
请问
1.这个从相机漏帧如何解决呢?硬件连接上就是一段30cm长的普通线连接(连接或者不连接示波器都存在漏帧的情况,不多,但每段视频里有有1~2次漏帧,连续漏掉几帧)
2. 示波器看J7-3输出的就是高电平(2.5v左右),然后不定期的有一个下降沿,这个是正常的吗?就是能看到不太稳定的触发信号?(在同步模式上)这个漏帧会导致我们后续处理图像的时候无法对齐(虽然每张slave的图片都能找到与之完全对应的master图片,但存在master图片无法找到对应的slave图片,这样如果我们从某个帧开始对齐,后续遇到漏帧又会变成不对齐状态)
-
@魏魏飞
本身触发应该是不会丢失帧的,当然你可以用示波器来验证一下触发信号。就是你说的那个周期性的下降沿,这个是周期性的,规律的,不是不定期的。
我感觉问题出在录像上,你的pipeline可能有丢帧。
可以试试lagecy mode。