Luckfox Pico Pi RV1106学习<4>:RV1106的帧率问题
Luckfox Pico Pi RV1106学习<4>:RV1106的帧率问题
- 1. 背景
- 2. 问题
1. 背景
接上篇。我在应用中创建3个线程:
- CAM线程,使用V4L2驱动,从 /dev/video11 获取图像。
- ENC线程,使用硬件编码器(RK-MPI-VENC)对图像编码。
- DTR线程,发送编码后的数据。
实际上,SDK中的 media 路径下有多个以 sample_ 开头的例程,比这个更简单更高效。一般是直接将VI绑定到VPSS或VENC,直接就可以获取264码流。
2. 问题
应用了 IMX415 摄像头之后,使用V4L2获取图像,只能获取到20FPS左右。而且V4L2驱动不支持 VIDIOC_S_PARM 命令设置帧率。修改了 驱动中 imx415.c 的寄存器列表,支持到90fps(720P情况下),输出帧率也没有变化。
这时候想到不用自己的程序,用 sample_venc_stresstest 这个例程来测试。先修改默认帧率:
图中修改VI的帧率。结果发现,如果该值设置为30,那么运行时不会报错。如果设置超过30,例如35,运行就会报错。
cmpi 16:47:45-763 {createRuntime :711} [non-WRAP MODE]: buff size = 1382400
RTIsp3x 16:47:45-768 {ispInitDevice :591} sensor name = m00_b_imx415 4-0037
RTDeviceV4L2 16:47:45-769 {open :137} cameraIndex:0, entityName:rkisp_mainpath
RTDeviceV4L2 16:47:45-770 {open :143} open video name(/dev/video11)
RKViChn 16:47:45-770 {setFrameRateRuntim:437} VVI_IOCTL_SET_FR ioctl fail # <----此处
个人估计是RV1106的VI就不支持超过30FPS。
最早看RV1106的介绍,是支持5M@30fps的编码。由于我只需要720p,因此评估性能,60fps的编码应该是可行的。现在看来,无法从摄像头获取超过30fps的原始图像。
本人不擅长搞软件,如果理解的不对,希望能指出。