SOLVED 树莓派上输入抓拍命令,导致卡住(IMX307)
-
最近做项目,需要在程序中调用拍照命令,现在遇到两个问题
输入 ./veye_raspistill -md 1 -o ~/test.jpg 命令,遇到几个比较严重的问题:
1 输入命令后导致IMX307卡住,无法完成拍照,CREL+C 后,重新输入命令也无效。
2 输入命令后导致树莓派SSH断联,(重现问题后必须重启树莓派)
3 多次发送拍照命令,出现问题概率很大,希望给出解决办法
4 开启推流的时候发送 ./veye_raspivid -b 4000000 -t 0 -o - | nc -l -p 5000 命令,再进行上面拍照命令的时候,就会出问题,强制关闭推流之后就再也无法开启推流与拍照注:
1 第一张图等待时间 5~30秒不等,会恢复正常,等待过程中,再发送拍照命令就会使其无法恢复正常
2 第二张图片无法恢复正常,并SSH断联,/home/pi/photo 文件夹已创建,经测试与输出文件夹无关
3 第三张图片,重新编译 SDK 也会出现卡住的情况,出现该问题后,IMX307无法在执行任何命令操作第一张
第二张
第三张
第四张
-
@年华灬
你好,
veye_raspistill 仅仅具备拍照的功能,并没有配置307模组进入对应模式的功能。所以需要先用脚本更改camera的模式,然后再拍。
http://wiki.veye.cc/index.php/CS-MIPI-X_for_Raspberry_Pi/zh#.E6.96.B9.E5.BC.8F1.EF.BC.9A-md.E9.80.89.E9.A1.B9.E6.8C.87.E6.98.8E.E6.A8.A1.E5.BC.8F -
@veye_xumm 我现在遇到最大的问题,就是每个几秒发送拍照命令就会导致 拍照功能卡死,或者树莓派SSH断联,您那边也测试一下,每隔几秒手动发送 ./veye_raspistill -md 1 -o ~/test.jpg 这个命令
-
@veye_xumm 已经配置过了
-
@年华灬
你之前帖子拍照都是 -md 1的,也就是说是720p的。
这个与现在read出来的不符。
如果实际mipi数据格式与抓拍程序以为的格式不同,会出现问题。如果你不想在拍照的时候同同时预览,可以加-n选项。
比如这样:./veye_raspistill -md 0 -o ~/test.jpg -n
-
@veye_xumm 那我试试你说的这个命令,另外 md 1 这个命令是你们的网页上给你的,所以直接用了,发现有问题的
-
@veye_xumm 出现新问题,命令中加 -e bmp 想转成 BMP格式文件保存,但是输出为0字节,删除则保存成功,但是名字是 bmp 但是实际不是BMP文件格式(文件标识符0x4D42 ),是JPEG文件格式(文件标识符:0XD8FF),希望帮忙查看一下问题
保存为BMP文件,实则为 JPEG格式
真正的BMP格式
-
@年华灬
我们文档上这个写明的是720p模式,可能表述的不够清晰。我们改一下文档吧。 -
./veye_raspistill -e bmp -tl 50 -t 10000 -o /dev/shm/test%d.bmp
连续抓取多张,后面的几张都是正确的,第一张可能是由于buffer循环使用的问题,得到的是空的。
这的确是个问题,我们会后续安排解决。 -
@veye_xumm 连续抓拍是有问题的,现在我用的命令不是连续抓拍命令,就是拍照命令,只是加 -e bmp 输出的字节也是0字节,也是有问题,望给出解决办法,或者有别的办法吗? 我要输出文件格式是 标准的 BMP文件格式,有什么命令可以实现。
-
@年华灬
因为bmp拍照是取得第一张,所以是0字节。
临时得一个方法是你连续拍两张取第二张。
我们会尽快解决此bug。 -
@veye_xumm 好的,谢谢回复 ,另外,在推流的过程中再发送拍照命令就会导致 IMX307卡住,您那边测试一下,出现该问题后,在拍照啥的都不行了。
测试流程:
1 发送推流命令 ./veye_raspivid -b 4000000 -t 0 -o - | nc -l -p 5000
2 开启另一个终端发送拍照命令 ./veye_raspistill -md 0 -o /home/pi/photo/test%d.jpg
此时无法拍照,会卡住,无法命令
3 杀死所有 veye 进程,再次发送拍照命令
4 此时 BUG出现,只能重启树莓派,希望给出解决办法开启推流
发送拍照命令
-
@年华灬
肯定会这样。
硬件只有一个摄像头,只有一个数据通道,两个进程不能同时去占据同一个资源。 -
@年华灬
解决的方案:
读一下两个程序的代码,建议参考veye_raspivid的,它有一个spiltter,现在有没有用到的。
这个spiltter相当于是一个数据的分发器,用其空闲的port,去做拍照功能。 -
@veye_xumm said in 树莓派上输入抓拍命令,导致卡住(IMX307):
@年华灬
因为bmp拍照是取得第一张,所以是0字节。
临时得一个方法是你连续拍两张取第二张。
我们会尽快解决此bug。另外,使用连续拍两张照片的方式,是有正确的BMP图片,但是文件名无法正确命名
注:两次命令一致,输出不一致 -
@veye_xumm said in 树莓派上输入抓拍命令,导致卡住(IMX307):
@年华灬
你之前帖子拍照都是 -md 1的,也就是说是720p的。
这个与现在read出来的不符。
如果实际mipi数据格式与抓拍程序以为的格式不同,会出现问题。如果你不想在拍照的时候同同时预览,可以加-n选项。
比如这样:./veye_raspistill -md 0 -o ~/test.jpg -n
如果我想拍摄 640*360像素的图片,-md 几啊,或者是不是可以不加-md ,另外,我是不是先更改设置 ./cs_mipi_i2c.sh -w -f videofmt -p1 640 -p2 360 -p3 30 码流配置才行,说明中只有 ./cs_mipi_i2c.sh -w -f videofmt -p1 640 -p2 480 -p3 130 这种码流配置
-
@年华灬
CS-MIPI-IMX307并不是任意尺寸可设的,它只提供了三种分辨率模式。
http://wiki.veye.cc/index.php/CS-MIPI-IMX307_STARVIS_Module/zh -
@veye_xumm
现在 这里出错了。这样怎么解决,前提是我设置了 640*360分辨率,未保存参数, 导致出错了应该,但是 重启树莓派也不好使。 -
@年华灬 恢复一下默认值吧 sysreset
-
@veye_xumm 重新初始化参数了,按照说明上设置的命令,依然无法设置成功,读出来还是错误的,刚才 用 1920*1080命令设置了一次,是成功的