Toybrick

标题: Debian3.0 tb-rk3399proD mipi-imx258接收只有20fps? [打印本页]

作者: qfxx_toybrick    时间: 2021-3-19 10:23
标题: Debian3.0 tb-rk3399proD mipi-imx258接收只有20fps?
通过v4l2设置帧率后仍没有效果。
设置部分如下
{
struct v4l2_streamparm Stream_Parm;
memset(&Stream_Parm, 0, sizeof(struct v4l2_streamparm));
Stream_Parm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

Stream_Parm.parm.capture.timeperframe.denominator =30;;
Stream_Parm.parm.capture.timeperframe.numerator = 1;

ret = ioctl(fd, VIDIOC_S_PARM, &Stream_Parm);
}
在驱动代码里寻找线索发现
.name = "4208x3120_20fps",
.name = "2096x1560_30fps",
请问,我想要获取1920x1080_30fps,我需要怎么做?








作者: troy    时间: 2021-3-19 14:52
v4l2设置1920x1080分辨率接口,驱动会自动匹配最接近的分辨率设置。最后输出就是你想要的1080P分辨率。
作者: qfxx_toybrick    时间: 2021-3-19 15:01
谢谢回复。是的,分辨率是可以的。但是帧率只有20帧,帧率设置没有效果
作者: troy    时间: 2021-3-19 15:14
qfxx_toybrick 发表于 2021-3-19 15:01
谢谢回复。是的,分辨率是可以的。但是帧率只有20帧,帧率设置没有效果

你的帧率是如何测试出来的,如果是用播放器之类的,有可能画面渲染时间太长导致帧率过低。应该直接v4l2代码读取数据,不显示直接统计帧率才比较准。
作者: qfxx_toybrick    时间: 2021-3-19 16:47
本帖最后由 qfxx_toybrick 于 2021-3-19 16:48 编辑


作者: qfxx_toybrick    时间: 2021-3-19 16:49

作者: qfxx_toybrick    时间: 2021-3-19 16:55
你好troy, 我在官方demo里添加了一点关于帧率的代码,frame_rate = 20 fps
作者: qfxx_toybrick    时间: 2021-3-19 18:15
删除while(frame--) 循环中的写文件操作,去掉行fwrite(buf,len,1,fp); dequeue 的时间是50ms,1秒就确实只有20fps。[img][/img]
作者: troy    时间: 2021-3-22 16:04
qfxx_toybrick 发表于 2021-3-19 18:15
删除while(frame--) 循环中的写文件操作,去掉行fwrite(buf,len,1,fp); dequeue 的时间是50ms,1秒就确实只 ...

你把分辨率设置为2096x1560试一下是否变成30帧了。
作者: qfxx_toybrick    时间: 2021-3-22 16:15
没有作用,还是一样的
作者: qfxx_toybrick    时间: 2021-3-22 16:29
我之前的mipi 是接收不到数据的,按照您提供的方法,
cd /boot/extlinux/
sudo cp toybrick-imx258.dtb toybrick.dtb
还是收不到。
然后按照一位社友的方法, http://t.rock-chips.com/forum.ph ... &extra=page%3D1  ,下载内核,修改了dtsi的设备节点,才能够接收到了。
不知道是不是这个原因导致的。
作者: qfxx_toybrick    时间: 2021-3-22 16:31
社友生成dtb文件方法链接  http://t.rock-chips.com/forum.ph ... &extra=page%3D1
作者: qfxx_toybrick    时间: 2021-3-23 12:57
请问现在是不是只支持20fps?还是我的开发板这边自己的原因?




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3