Toybrick

Rk3588 HDMI-rx 帧率低的问题

mdd

新手上路

积分
22
楼主
发表于 2022-4-24 16:24:56    查看: 8895|回复: 7 | [复制链接]    打印 | 只看该作者

今天在测试rk3588HDMIin输入的过程中 发现显示帧率很低
输入源是Windows电脑3840x2160 60p  MAC输出1080p也试了一下 1080p下也没有好转

我用了以下三种方法测试
1. 用EDGE SDK for Python: HDMICAPTURE + DISPLAY模块 目测帧率15-20帧
2. 用 toycam -d 0指令预览(应该内部用到了opencv感觉),目测帧率10帧以下
3. 用gstreamer, v4l2src 到 autovideosink,目测帧率也是10帧以下

感觉以rk3588的性能不该如此,目前是最新的固件。或许是我有些地方没有配置好吗,还是buffer或者gpu-memory需要配置?
求助各位

下图是用gstreamer测试时的warning提示,或许有一些帮助
WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstXImageSink:autovideosink0-actual-sink-ximage: A lot of buffers are being dropped.
Additional debug info:
../libs/gst/base/gstbasesink.c(3132): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstXImageSink:autovideosink0-actual-sink-ximage:
There may be a timestamping problem, or this computer is too slow.

回复

使用道具 举报

mdd

新手上路

积分
22
沙发
 楼主| 发表于 2022-4-24 16:30:45 | 只看该作者
对了,还有一个小问题,就是颜色不对,感觉要转换一下才能正常显示
回复

使用道具 举报

jefferyzhang

版主

积分
13576
板凳
发表于 2022-4-24 17:07:38 | 只看该作者
只有python sdk是完全0拷贝显示的,可以代表最高性能。其他都是第三方库的,第三方库没办法保证0拷贝。
至于多少fps这个要看你输入的的信号是多少的,很可能就是25fps。
回头等我有空可以在python sdk里加个debug fps的打印看下
回复

使用道具 举报

jefferyzhang

版主

积分
13576
地板
发表于 2022-4-24 17:08:42 | 只看该作者
颜色那个问题是已知问题,回头我们解决下
回复

使用道具 举报

mdd

新手上路

积分
22
5#
 楼主| 发表于 2022-4-24 20:35:05 | 只看该作者
谢谢jeff 期待新版本的sdk
回复

使用道具 举报

jefferyzhang

版主

积分
13576
6#
发表于 2022-4-28 20:06:22 | 只看该作者
颜色问题新版本已经解决了。新旧版本我都测试过,hdmiin是可以稳定30fps的,没有发现像你说的只有十几帧,4K In也是30fps,你可以自己改下试试。参考测试代码如下:
  1. import toybrick as toy
  2. import time


  3. if __name__ == '__main__':
  4.     count = 0
  5.     begintime = time.time()

  6.     hdmi = toy.HdmiCapture(1920, 1080)
  7.     disp = toy.Display('', 1920, 1080, True)
  8.     print("Connect display width = " + str(disp.width()) + " ; height = " + str(disp.height()))
  9.     while True:
  10.         ret, frame = hdmi.read(1920, 1080)
  11.         if frame is not None:
  12.             ret = disp.imshow(frame)
  13.             if ret == toy.RET_TERMINATED:
  14.                 break
  15.             count += 1
  16.             if time.time() - begintime >= 10:
  17.                 fps = count / (time.time() - begintime)
  18.                 print('fps = ' + str(fps))
  19.                 count = 0
  20.                 begintime = time.time()
  21.     # End of While
复制代码



回复

使用道具 举报

caojing

新手上路

积分
10
7#
发表于 2022-7-1 11:20:23 | 只看该作者
你好 我这边ubuntu下采集HDMI亦 有这个问题
就编码H264视频 丢帧 跳帧严重
使用测试命令如下
v4l2-ctl  -d /dev/video8 --set-fmt-video=width=3840,height=2160,pixelformat='RGB3' --stream-mmap=4  --stream-skip=10  --stream-to=/userdata/4kp60_nv12.yuv --stream-count=120 --stream-poll --
mpi_enc_test -w 3840 -h 2160 -t 7 -i /userdata/4kp60_nv12.yuv -f 65543 -o /userdata/out.h264 -n 120

目前有对应hdmi demo吗 感谢解答
回复

使用道具 举报

feelthat

注册会员

积分
114
8#
发表于 2022-11-10 23:59:35 | 只看该作者
回复

使用道具 举报

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

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表