Toybrick

楼主: jefferyzhang

RK3399Pro入门教程(8)6路1080P30帧解码显示范例

 

huangzk

注册会员

积分
103
发表于 2019-11-11 14:20:40 | 显示全部楼层
您好,请问这边有 android 平台 6路 播放的 apk demo吗?
回复

使用道具 举报

zouxf

新手上路

积分
46
发表于 2019-11-25 10:02:39 | 显示全部楼层
请问,这里用OpenGL做显示, NV12->RGB还是用RGA来完成的吗?
另外, 直接通过libdrm做显示, 和OpenGL相比,哪个效率更高呢?
回复

使用道具 举报

jefferyzhang

版主

积分
12844
 楼主| 发表于 2019-11-25 10:33:06 | 显示全部楼层
zouxf 发表于 2019-11-25 10:02
请问,这里用OpenGL做显示, NV12->RGB还是用RGA来完成的吗?
另外, 直接通过libdrm做显示, 和OpenGL相 ...

1. opengl用shader直接吃nv12,不需要rga转换。
2. opengl画完一样也要通过libdrm接口显示,不存在什么效率哪个高,这两个是串型的两个步骤
回复

使用道具 举报

zouxf

新手上路

积分
46
发表于 2019-11-25 11:13:55 | 显示全部楼层
jefferyzhang 发表于 2019-11-25 10:33
1. opengl用shader直接吃nv12,不需要rga转换。
2. opengl画完一样也要通过libdrm接口显示,不存在什么效 ...

好的, 多谢。
现在发现解RTSP的时候, 丢帧的情况还是比较明显。 和PC上VLC播RTSP流相比, rockchip_rtsp+mpp 几乎没有时延, 但是会丢帧,尤其画面变化的时候,画面会卡顿一下。 vlc会有比较明显是时延,大概2s, 但是画面很稳定,不会出现卡顿丢帧的情况。
而且这个现象和多路好像没关系, 一路的时候,也会出现。

丢帧的时候, mpp会报
mpp_log: decode_get_frame failed, return -8.
或者
mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame.

回复

使用道具 举报

zouxf

新手上路

积分
46
发表于 2019-11-26 15:31:56 | 显示全部楼层
我这里用libdrm做显示,关掉xorg, 貌似解12路1080P h265, 也挺流畅的。 不过我这里由于只有三路实际的rtsp流, 所以应用里每4四路读的是同一路rtsp流,不知道跟实际12路rtsp流有没有差别。
回复

使用道具 举报

someone9388

注册会员

积分
86
发表于 2019-12-13 16:31:38 | 显示全部楼层
按照例子执行,显示器黑屏, 终端输出如下信息:

[toybrick@toybrick workspace]$ ./demo_multi_gldisplay.py
Fatal: can't open lock file /run/xtables.lock: Permission denied
[12/13 03:28:31.128] D/: drm display open ...
[12/13 03:28:31.128] D/: Found display connectors: (encoders: 1)
[12/13 03:28:31.367] D/: #[0] id: 91, type :HDMIA       (CONNECTED)
[12/13 03:28:31.367] D/:         + [0] 1920x1080 : 1920x1080
[12/13 03:28:31.367] D/:         + [1] 1920x1080 : 1920x1080
[12/13 03:28:31.367] D/:         + [2] 1920x1080i : 1920x1080
[12/13 03:28:31.367] D/:         + [3] 1920x1080i : 1920x1080
[12/13 03:28:31.367] D/:         + [4] 1920x1080 : 1920x1080
[12/13 03:28:31.367] D/:         + [5] 1920x1080i : 1920x1080
[12/13 03:28:31.367] D/:         + [6] 1680x1050 : 1680x1050
[12/13 03:28:31.368] D/:         + [7] 1280x1024 : 1280x1024
[12/13 03:28:31.368] D/:         + [8] 1280x1024 : 1280x1024
[12/13 03:28:31.368] D/:         + [9] 1440x900 : 1440x900
[12/13 03:28:31.368] D/:         + [10] 1280x960 : 1280x960
[12/13 03:28:31.368] D/:         + [11] 1280x720 : 1280x720
[12/13 03:28:31.368] D/:         + [12] 1280x720 : 1280x720
[12/13 03:28:31.368] D/:         + [13] 1280x720 : 1280x720
[12/13 03:28:31.368] D/:         + [14] 1024x768 : 1024x768
[12/13 03:28:31.368] D/:         + [15] 1024x768 : 1024x768
[12/13 03:28:31.368] D/:         + [16] 1024x768 : 1024x768
[12/13 03:28:31.368] D/:         + [17] 832x624 : 832x624
[12/13 03:28:31.369] D/:         + [18] 800x600 : 800x600
[12/13 03:28:31.369] D/:         + [19] 800x600 : 800x600
[12/13 03:28:31.369] D/:         + [20] 800x600 : 800x600
[12/13 03:28:31.369] D/:         + [21] 800x600 : 800x600
[12/13 03:28:31.369] D/:         + [22] 720x576 : 720x576
[12/13 03:28:31.369] D/:         + [23] 720x480 : 720x480
[12/13 03:28:31.369] D/:         + [24] 720x480 : 720x480
[12/13 03:28:31.369] D/:         + [25] 640x480 : 640x480
[12/13 03:28:31.369] D/:         + [26] 640x480 : 640x480
[12/13 03:28:31.369] D/:         + [27] 640x480 : 640x480
[12/13 03:28:31.369] D/:         + [28] 640x480 : 640x480
[12/13 03:28:31.369] D/:         + [29] 640x480 : 640x480
[12/13 03:28:31.370] D/:         + [30] 720x400 : 720x400
[12/13 03:28:31.370] D/: End of Found
[12/13 03:28:31.601] D/: connecting to [0] mode [0] 1920x1088
[12/13 03:28:31.601] D/: found encoder id: 90
[12/13 03:28:31.601] D/: found crtc id: 64
[12/13 03:28:31.606] D/: set crts : crtc_id: 64
[12/13 03:28:31.607] D/: set crtc : encoder crtc_id: 0
[12/13 03:28:31.643] D/: [0]insert display buffer : 0x558a361f40
[12/13 03:28:31.646] D/: set crts : crtc_id: 64
[12/13 03:28:31.646] D/: set crtc : encoder crtc_id: 0
[12/13 03:28:31.659] D/: [1]insert display buffer : 0x558a3c61e0
[12/13 03:28:31.660] D/: OpenGLES initializing ...
[12/13 03:28:31.664] D/: * EGL_VERSION = 1.4 Midgard-"r13p0-00rel0" (have 22 configs)
[12/13 03:28:31.665] D/: getEglSurface 154 gbmSurface=0x7f9005b3f0

[12/13 03:28:31.671] D/: changeEglSurface 169 gbmSurface=0x7f9019fe40

[12/13 03:28:33.161] D/: drm render open ...
[12/13 03:28:34.743] D/:  mMppCtx null or no init...
[12/13 03:28:34.743] D/: listening rtp port 10913
[12/13 03:28:34.743] D/: listening rtcp port 10914
[12/13 03:28:34.746] D/: curlto rtsp://192.168.2.95 , cli 10913:10923, tcp: 0
[12/13 03:28:34.765] D/: # Found [0] media: video
[12/13 03:28:34.766] D/: # Found [0] control: rtsp://192.168.2.95/trackID=1
[12/13 03:28:34.766] D/: # Found [0] rtpmap: id:96 format:H264 bitrate:90000
[12/13 03:28:34.766] D/: # Total found 1 channel(s).
[12/13 03:28:34.766] D/: TRACK [0] : rtsp://192.168.2.95/trackID=1 , format=1
[12/13 03:28:34.766] D/: setup 10913 , 10914, uri: rtsp://192.168.2.95/trackID=1
[12/13 03:28:34.813] D/: drm render open ...
[12/13 03:28:34.839] D/: Video SSRC Changed! 0 -> 2074585690
mpi: mpp version: Without VCS info
mpp_rt: NOT found ion allocator
mpp_rt: found drm allocator
[12/13 03:28:34.848] D/: aaaaaaaaaaaaaaa
[12/13 03:28:34.848] D/: 11111111
[12/13 03:28:34.848] D/: bbbbbbbbbbbbbb
[12/13 03:28:34.849] D/: aaaaaaaaaaaaaaa
[12/13 03:28:34.849] D/: bbbbbbbbbbbbbb
[12/13 03:28:34.880] D/: aaaaaaaaaaaaaaa
[12/13 03:28:34.881] D/: bbbbbbbbbbbbbb
[12/13 03:28:34.882] D/: aaaaaaaaaaaaaaa
[12/13 03:28:34.882] D/: bbbbbbbbbbbbbb
[12/13 03:28:34.882] D/: aaaaaaaaaaaaaaa

回复

使用道具 举报

fly

注册会员

积分
70
发表于 2019-12-18 16:13:30 | 显示全部楼层
yuys 发表于 2019-9-24 14:20
版主怎么安装呢?有教程?

请问你装上了吗? 我也遇到这个问题了
回复

使用道具 举报

fly

注册会员

积分
70
发表于 2019-12-18 16:14:36 | 显示全部楼层
本帖最后由 fly 于 2019-12-18 19:36 编辑
jefferyzhang 发表于 2019-9-24 14:52
查看论坛置顶rockx发布贴

那个帖子是一个zip包,里面解压出来有找到librockx.so,拷贝到/usr/lib64下就可以了。
回复

使用道具 举报

fly

注册会员

积分
70
发表于 2019-12-18 19:36:01 | 显示全部楼层
someone9388 发表于 2019-12-13 16:31
按照例子执行,显示器黑屏, 终端输出如下信息:

[toybrick@toybrick workspace]$ ./demo_multi_gldisplay ...

我也黑屏了。。。你搞定了吗?
回复

使用道具 举报

fly

注册会员

积分
70
发表于 2019-12-18 19:49:32 | 显示全部楼层
[12/18 19:44:09.727] D/: drm display open ...
[12/18 19:44:09.727] D/: Found display connectors: (encoders: 2)
[12/18 19:44:09.940] D/: #[0] id: 91, type :HDMIA        (CONNECTED)
[12/18 19:44:09.940] D/:          + [0] 1600x900 : 1600x900
[12/18 19:44:09.940] D/:          + [1] 1920x1080 : 1920x1080
[12/18 19:44:09.940] D/:          + [2] 1920x1080 : 1920x1080
[12/18 19:44:09.940] D/:          + [3] 1280x1024 : 1280x1024
[12/18 19:44:09.941] D/:          + [4] 1280x1024 : 1280x1024
[12/18 19:44:09.941] D/:          + [5] 1152x864 : 1152x864
[12/18 19:44:09.941] D/:          + [6] 1280x720 : 1280x720
[12/18 19:44:09.941] D/:          + [7] 1280x720 : 1280x720
[12/18 19:44:09.941] D/:          + [8] 1024x768 : 1024x768
[12/18 19:44:09.941] D/:          + [9] 1024x768 : 1024x768
[12/18 19:44:09.941] D/:          + [10] 800x600 : 800x600
[12/18 19:44:09.941] D/:          + [11] 800x600 : 800x600
[12/18 19:44:09.941] D/:          + [12] 640x480 : 640x480
[12/18 19:44:09.941] D/:          + [13] 640x480 : 640x480
[12/18 19:44:09.941] D/:          + [14] 640x480 : 640x480
[12/18 19:44:09.941] D/:          + [15] 720x400 : 720x400
[12/18 19:44:09.941] D/: #[1] id: 98, type isplayPort        (DISCONNECTED)
[12/18 19:44:09.941] D/: End of Found
[12/18 19:44:10.157] D/: connecting to [0] mode [0] 1600x912
[12/18 19:44:10.157] D/: found encoder id: 90
[12/18 19:44:10.157] D/: use crtc 0 as default
[12/18 19:44:10.162] D/: set crts : crtc_id: 64
[12/18 19:44:10.163] D/: set crtc : encoder crtc_id: 64
[12/18 19:44:10.173] D/: [0]insert display buffer : 0x558428fbd0
[12/18 19:44:10.179] D/: set crts : crtc_id: 64
[12/18 19:44:10.179] D/: set crtc : encoder crtc_id: 64
[12/18 19:44:10.189] D/: [1]insert display buffer : 0x5583f532d0
[12/18 19:44:10.190] D/: OpenGLES initializing ...
[12/18 19:44:10.194] D/: * EGL_VERSION = 1.4 Midgard-"r13p0-00rel0" (have 22 configs)
[12/18 19:44:10.195] D/: getEglSurface 154 gbmSurface=0x7f6405b480

[12/18 19:44:10.201] D/: changeEglSurface 169 gbmSurface=0x7f6419fed0

[12/18 19:44:10.979] D/: drm render open ...
[12/18 19:44:11.027] D/: listening rtcp port 30938
[12/18 19:44:11.027] D/: listening rtp port 30937
[12/18 19:44:11.029] D/: curlto rtsp://192.168.10.113:554/ch1/main/av_stream , cli 30937:30947, tcp: 0
[12/18 19:44:11.027] D/:  mMppCtx null or no init...
[12/18 19:44:11.045] D/: # Found [0] media: video
[12/18 19:44:11.045] D/: # Found [0] control: trackID=0
[12/18 19:44:11.046] D/: # Found [0] rtpmap: id:96 format:H265 bitrate:90000
[12/18 19:44:11.046] D/: # Total found 1 channel(s).
[12/18 19:44:11.046] D/: TRACK [0] : trackID=0 , format=2
[12/18 19:44:11.046] D/: setup 30937 , 30938, uri: rtsp://192.168.10.113:554/ch1/main/av_stream/trackID=0
# Start of Thread 0
[12/18 19:44:11.054] D/: drm render open ...
[12/18 19:44:11.100] D/: Video SSRC Changed! 0 -> 13109230
mpi: mpp version: Without VCS info
mpp_rt: NOT found ion allocator
mpp_rt: found drm allocator
[12/18 19:44:11.111] D/: aaaaaaaaaaaaaaa
[12/18 19:44:11.111] D/: 11111111
[12/18 19:44:11.112] D/: bbbbbbbbbbbbbb
[12/18 19:44:11.112] D/: aaaaaaaaaaaaaaa
[12/18 19:44:11.112] D/: bbbbbbbbbbbbbb
[12/18 19:44:11.112] D/: aaaaaaaaaaaaaaa
[12/18 19:44:11.112] D/: bbbbbbbbbbbbbb
[12/18 19:44:11.113] D/: aaaaaaaaaaaaaaa
[12/18 19:44:11.113] D/: bbbbbbbbbbbbbb
[12/18 19:44:11.129] E/: (mergeFuToRtpNalU in unit_rtp_h265_unpack.cpp:182): fua not start! maybe rtp packet lost!
[12/18 19:44:11.130] D/: aaaaaaaaaaaaaaa

同黑屏。。
回复

使用道具 举报

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

本版积分规则

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


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