Firefly开源社区

打印 上一主题 下一主题

[技术讨论] RK3588摄像头v4l2取流测试失败

25

积分

0

威望

0

贡献

技术小白

积分
25

RK3588摄像头v4l2取流测试失败

发表于 2022-11-25 10:35:58      浏览:3963 | 回复:5        打印      只看该作者   [复制链接] 楼主
问题描述及复现步骤:
通过v4l2-ctl对摄像头进行取流测试,但输出文件大小为0,没有保存任何数据。
使用SDK版本为:rk3588_repo_sdk_v1.0.2a.7z, Bundle:rk3588-v1.0.2a-to-v1.0.2b.7z; rk3588-v1.0.2b-to-v1.0.2c.7z
编译为BuildRoot系统和Debian系统测试结果相同。

测试命令如下:
v4l2-ctl -d /dev/video0 --set-fmt-video=width=640,height=480,pixelformat=NV12 --stream-mmap=3 --stream-to=/tmp/out2.yuv --stream-count=20 --stream-poll --verbose
输出结果:
VIDIOC_QUERYCAP: ok
VIDIOC_G_FMT: ok
VIDIOC_S_FMT: ok
Format Video Capture Multiplanar:
        Width/Height      : 640/480
        Pixel Format      : 'NV12' (Y/CbCr 4:2:0)
        Field             : None
        Number of planes  : 1
        Flags             :
        Colorspace        : Default
        Transfer Function : Default
        YCbCr/HSV Encoding: Default
        Quantization      : Default
        Plane 0           :
           Bytes per Line : 640
           Size Image     : 460800
                VIDIOC_REQBUFS returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_STREAMON returned 0 (Success)
cap dqbuf: 0 seq:      0 bytesused: 460800 ts: 3662.352325 delta: 3662352.325 ms (ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:      1 bytesused: 460800 ts: 3662.385671 (ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq:      2 bytesused: 460800 ts: 3662.418945 (ts-monotonic, ts-src-eof)
cap dqbuf: 0 seq:      3 bytesused: 460800 ts: 3662.452362 (ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:      4 bytesused: 460800 ts: 3662.485613 fps: 30.01 (ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq:      5 bytesused: 460800 ts: 3662.518964 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 0 seq:      6 bytesused: 460800 ts: 3662.552390 fps: 29.99 (ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:      7 bytesused: 460800 ts: 3662.585610 fps: 30.01 (ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq:      8 bytesused: 460800 ts: 3662.618955 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 0 seq:      9 bytesused: 460800 ts: 3662.652361 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:     10 bytesused: 460800 ts: 3662.685610 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq:     11 bytesused: 460800 ts: 3662.719061 fps: 29.99 (ts-monotonic, ts-src-eof)
cap dqbuf: 0 seq:     12 bytesused: 460800 ts: 3662.752365 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:     13 bytesused: 460800 ts: 3662.785607 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq:     14 bytesused: 460800 ts: 3662.818992 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 0 seq:     15 bytesused: 460800 ts: 3662.852359 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:     16 bytesused: 460800 ts: 3662.885608 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq:     17 bytesused: 460800 ts: 3662.918945 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 0 seq:     18 bytesused: 460800 ts: 3662.952395 fps: 30.00 (ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:     19 bytesused: 460800 ts: 3662.985658 fps: 30.00 (ts-monotonic, ts-src-eof)


屏幕截图.rar

220.53 KB, 下载次数: 1, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11138

优秀版主

发表于 2022-11-25 10:53:04        只看该作者  沙发
v4l2-utils  好像需要 1.16.5 之前的版本才能取得到流,你可以用 gstreamer 取一下流看看可不可以
回复

使用道具 举报

25

积分

0

威望

0

贡献

技术小白

积分
25
发表于 2022-11-25 11:11:56        只看该作者  板凳
板蓝根 发表于 2022-11-25 10:53
v4l2-utils  好像需要 1.16.5 之前的版本才能取得到流,你可以用 gstreamer 取一下流看看可不可以

我试了gstreamer,命令如下:
firefly@firefly:~$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=NV12,width=800,height=600,framerate=30/1 ! kmssink

输出结果如下:
Setting pipeline to PAUSED ...
Using mplane plugin for capture
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstKMSSink:kmssink0: GStreamer encountered a general resource error.
Additional debug info:
../sys/kms/gstkmssink.c(1967): gst_kms_sink_show_frame (): /GstPipeline:pipeline0/GstKMSSink:kmssink0:
drmModeSetPlane failed: Invalid argument (22)
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Execution ended after 0:00:01.193099748
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason error (-5)
Setting pipeline to NULL ...
Freeing pipeline ...

好像还是不行。
另外,我在Debian的固件中使用V4L2 TestBench工具,能够看到摄像头图像,也能够把图像保存到文件中。
那很奇怪,使用v4l2-ctl为什么不行?而且我自己写了一个通过v4l2的取流的程序,读取的buffer为空。
回复

使用道具 举报

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11138

优秀版主

发表于 2022-12-1 11:35:56        只看该作者  地板
kmssink 指定plane-id 或者用 waylandsink
回复

使用道具 举报

31

积分

0

威望

0

贡献

技术小白

积分
31
发表于 2023-3-1 15:12:40        只看该作者  5#
请问楼主问题解决了吗
回复

使用道具 举报

8

积分

0

威望

0

贡献

吃瓜的群众

积分
8
发表于 2024-1-30 11:19:32        只看该作者  6#
请问楼主问题是怎么解决的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表