Toybrick

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

 

shadowhtx

中级会员

积分
226
楼主
发表于 2020-5-6 14:50:53 | 显示全部楼层
你好,我使用的是rk3399 pro,ubuntu18.04系统,请问下ubuntu支持这套方案吗?apt install rockchip-mpp,apt install toybrick-gbm-dev 安装找不到包,可以提供对应的源吗?
回复

使用道具 举报

shadowhtx

中级会员

积分
226
沙发
发表于 2020-5-6 15:34:51 | 显示全部楼层
jefferyzhang 发表于 2020-5-6 14:57
不支持,我们toybrick没有发布过ubuntu系统

好的,谢谢,我刷一下固件再试试。
回复

使用道具 举报

shadowhtx

中级会员

积分
226
板凳
发表于 2020-5-6 17:05:07 | 显示全部楼层
版主你好,我刷了新固件,fedora系统,已经装好了RockX-1.2.0-py3-none-any.whl和python3-toybrick-0.2-12.aarch64.rpm,但是使用toybrick仍然报错,请教下什么原因?
>>> from rockx import RockX
>>> import toybrick
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/toybrick/__init__.py", line 35, in <module>
    from toybrick.rockx import createRockx, RockxType, Rockx
  File "/usr/local/lib/python3.6/site-packages/toybrick/rockx.py", line 1, in <module>
    from . import rkrockx
ImportError: librockx.so: cannot open shared object file: No such file or directory
回复

使用道具 举报

shadowhtx

中级会员

积分
226
地板
发表于 2020-5-6 18:41:36 | 显示全部楼层
jefferyzhang 发表于 2020-5-6 17:22
这行直接注释掉,因为这个demo做的东西和pyrockx重复了

谢谢回答,注释掉可以import。但是跑起来后一直卡在rtsp.read_rgb()这里使用的是海康摄像头,rtsp流确认过是正常的,请教下问题出在哪?代码如下:
  1. #!/usr/bin/env python3.6
  2. import os
  3. import toybrick as toy
  4. import time
  5. import threading

  6. if __name__ == '__main__':
  7.     #url = "rtsp://cxqz:hb123456@192.168.1.64:554/ch1/main/av_stream"
  8.     url = "rtsp://192.168.1.64:554/ch1/main/av_stream"
  9.     usr = "cxqz"
  10.     pwd = "hb123456"
  11.     rtsp = toy.input.createRtspClient(url, usr, pwd)
  12.     rtsp.connect()
  13.     last = time.time()
  14.     if rtsp.is_opened():
  15.         print("hutx test")
  16.         frame = rtsp.read_rgb(1280, 720)
  17.         print("frame")
  18.         now = time.time()
  19.         print("> got frame. use = %.4f s" % (now - last, ))
  20.         last = now
  21.     rtsp.disconnect()
复制代码


输出信息:
  1. [toybrick@toybrick hutx]$ python3 test_rtsp.py
  2. [05/06 06:30:45.214] D/: listening rtp port 57601
  3. [05/06 06:30:45.215] D/: listening rtcp port 57602
  4. [05/06 06:30:45.214] D/:  mMppCtx null or no init...
  5. [05/06 06:30:45.215] D/: curlto rtsp://192.168.1.64:554/ch1/main/av_stream , cli 57601:57611, tcp: 0
  6. [05/06 06:30:45.231] D/: # Found [0] media: video
  7. [05/06 06:30:45.231] D/: # Found [0] control: rtsp://192.168.1.64:554/ch1/main/av_stream/trackID=1
  8. [05/06 06:30:45.231] D/: # Found [0] rtpmap: id:96 format:H264 bitrate:90000
  9. [05/06 06:30:45.231] D/: # Found [1] media: audio
  10. [05/06 06:30:45.231] D/: # Found [1] control: rtsp://192.168.1.64:554/ch1/main/av_stream/trackID=2
  11. [05/06 06:30:45.231] D/: # Found [1] rtpmap: id:8 format:PCMA bitrate:8000
  12. [05/06 06:30:45.231] D/: # Total found 2 channel(s).
  13. [05/06 06:30:45.231] D/: TRACK [0] : rtsp://192.168.1.64:554/ch1/main/av_stream/trackID=1 , format=1
  14. [05/06 06:30:45.231] D/: setup 57601 , 57602, uri: rtsp://192.168.1.64:554/ch1/main/av_stream/trackID=1
  15. [05/06 06:30:45.235] D/: TRACK [1] : rtsp://192.168.1.64:554/ch1/main/av_stream/trackID=2 , format=4
  16. hutx test
  17. [05/06 06:30:45.328] D/: drm render open ...
  18. [05/06 06:30:45.458] D/: Video SSRC Changed! 0 -> 1157631790
  19. mpi: mpp version: Without VCS info
  20. mpp_rt: NOT found ion allocator
  21. mpp_rt: found drm allocator
  22. [05/06 06:30:45.466] D/: aaaaaaaaaaaaaaa
  23. [05/06 06:30:45.466] D/: 11111111
  24. [05/06 06:30:45.466] D/: bbbbbbbbbbbbbb
  25. [05/06 06:30:45.466] D/: aaaaaaaaaaaaaaa
  26. [05/06 06:30:45.466] D/: bbbbbbbbbbbbbb
  27. [05/06 06:30:45.467] D/: aaaaaaaaaaaaaaa
  28. [05/06 06:30:45.467] D/: bbbbbbbbbbbbbb
  29. [05/06 06:30:45.647] D/: aaaaaaaaaaaaaaa
  30. [05/06 06:30:45.647] D/: bbbbbbbbbbbbbb
  31. [05/06 06:30:45.767] D/: aaaaaaaaaaaaaaa
复制代码




回复

使用道具 举报

shadowhtx

中级会员

积分
226
5#
发表于 2020-5-7 09:36:26 | 显示全部楼层
jefferyzhang 发表于 2020-5-6 21:47
你自己防火墙没关吧,摄像头没数据进来。iptable -F 试试

版主早,确认了下防火墙确实关了,还是卡在相同的位置,我把verbose打开 rtsp = toy.input.createRtspClient(url, usr, pwd, False, True),
拿到的rstp流数据有流失吗?输出如下:
  1. [05/06 21:31:32.522] D/: aaaaaaaaaaaaaaa
  2. [05/06 21:31:32.522] D/: 11111111
  3. [05/06 21:31:32.523] D/: bbbbbbbbbbbbbb
  4. [05/06 21:31:32.523] D/: RTP4UP_UNIT [0x55bd948e80] loss/recv:-800.70/ 0.10 SEI|SPS|PPS|NI|I: 0.00|0.10|0.00|0.00|0.00
  5. [05/06 21:31:32.523] D/: aaaaaaaaaaaaaaa
  6. [05/06 21:31:32.523] D/: bbbbbbbbbbbbbb
  7. [05/06 21:31:32.524] D/: aaaaaaaaaaaaaaa
  8. [05/06 21:31:32.524] D/: bbbbbbbbbbbbbb
  9. [05/06 21:31:32.524] W/: (onTransmitIn in unit_rtp_h264_unpack.cpp:64): rtp lost one packet ... mDebugCntRtpLost: 57531 > 57533
  10. [05/06 21:31:32.714] D/: aaaaaaaaaaaaaaa
  11. [05/06 21:31:32.714] D/: bbbbbbbbbbbbbb
  12. [05/06 21:31:32.834] D/: aaaaaaaaaaaaaaa
复制代码

防火墙确认:
  1. [toybrick@toybrick ~]$ sudo iptables -L
  2. Chain INPUT (policy ACCEPT)
  3. target     prot opt source               destination

  4. Chain FORWARD (policy ACCEPT)
  5. target     prot opt source               destination

  6. Chain OUTPUT (policy ACCEPT)
  7. target     prot opt source               destination
复制代码



回复

使用道具 举报

shadowhtx

中级会员

积分
226
6#
发表于 2020-5-7 12:06:07 | 显示全部楼层
jefferyzhang 发表于 2020-5-7 11:17
看过去是都收到了,偶尔丢一俩包而已。

主要是卡在frame = rtsp.read_rgb(1280, 720)这一步,下面一条测试语句frame一直打印不出来。
如果读到数据应该有返回,但目前就卡在这,必须手动杀掉进程才能关掉

代码如下:
  1. if __name__ == '__main__':
  2.     url = "rtsp://192.168.1.64:554/ch1/main/av_stream"
  3.     usr = "cxqz"
  4.     pwd = "hb123456"
  5.     rtsp = toy.input.createRtspClient(url, usr, pwd, False, True)
  6.     rtsp.connect()
  7.     while rtsp.is_opened():
  8.     print("hutx test")
  9.     frame = rtsp.read_rgb(1280, 720)
  10.     print("frame:", frame)
  11.     rtsp.disconnect()
复制代码
输出如下:
  1. [toybrick@toybrick hutx]$ python3 test_rtsp.py
  2. [05/07 00:00:00.203] D/: listening rtp port 14286
  3. [05/07 00:00:00.203] D/:  mMppCtx null or no init...
  4. [05/07 00:00:00.203] D/: listening rtcp port 14287
  5. [05/07 00:00:00.203] D/: curlto rtsp://192.168.1.64:554/ch1/main/av_stream , cli 14286:14296, tcp: 0
  6. [05/07 00:00:00.213] D/: # Found [0] media: video
  7. [05/07 00:00:00.213] D/: # Found [0] control: rtsp://192.168.1.64:554/ch1/main/av_stream/trackID=1
  8. [05/07 00:00:00.213] D/: # Found [0] rtpmap: id:96 format:H264 bitrate:90000
  9. [05/07 00:00:00.213] D/: # Found [1] media: audio
  10. [05/07 00:00:00.213] D/: # Found [1] control: rtsp://192.168.1.64:554/ch1/main/av_stream/trackID=2
  11. [05/07 00:00:00.213] D/: # Found [1] rtpmap: id:8 format:PCMA bitrate:8000
  12. [05/07 00:00:00.213] D/: # Total found 2 channel(s).
  13. [05/07 00:00:00.213] D/: TRACK [0] : rtsp://192.168.1.64:554/ch1/main/av_stream/trackID=1 , format=1
  14. [05/07 00:00:00.213] D/: setup 14286 , 14287, uri: rtsp://192.168.1.64:554/ch1/main/av_stream/trackID=1
  15. [05/07 00:00:00.220] D/: TRACK [1] : rtsp://192.168.1.64:554/ch1/main/av_stream/trackID=2 , format=4
  16. <b><font color="#ff0000">hutx test</font></b>
  17. [05/07 00:00:00.330] D/: drm render open ...
  18. [05/07 00:00:00.460] D/: Video SSRC Changed! 0 -> 741809624
  19. [05/07 00:00:00.460] W/: (onTransmitIn in unit_rtp_h264_unpack.cpp:64): rtp lost one packet ... mDebugCntRtpLost: 65535 > 7297
  20. mpi: mpp version: Without VCS info
  21. mpp_rt: NOT found ion allocator
  22. mpp_rt: found drm allocator
  23. [05/07 00:00:00.468] D/: aaaaaaaaaaaaaaa
  24. [05/07 00:00:00.468] D/: 11111111
  25. [05/07 00:00:00.468] D/: bbbbbbbbbbbbbb
  26. [05/07 00:00:00.468] D/: RTP4UP_UNIT [0x5593cd4a30] loss/recv:-5823.90/ 0.10 SEI|SPS|PPS|NI|I: 0.00|0.10|0.00|0.00|0.00
  27. [05/07 00:00:00.469] D/: aaaaaaaaaaaaaaa
  28. [05/07 00:00:00.469] D/: bbbbbbbbbbbbbb
  29. [05/07 00:00:00.469] D/: aaaaaaaaaaaaaaa
  30. [05/07 00:00:00.469] D/: bbbbbbbbbbbbbb
  31. [05/07 00:00:00.470] W/: (onTransmitIn in unit_rtp_h264_unpack.cpp:64): rtp lost one packet ... mDebugCntRtpLost: 7305 > 7307
  32. [05/07 00:00:00.659] D/: aaaaaaaaaaaaaaa
  33. [05/07 00:00:00.659] D/: bbbbbbbbbbbbbb
  34. [05/07 00:00:00.779] D/: aaaaaaaaaaaaaaa
复制代码

回复

使用道具 举报

shadowhtx

中级会员

积分
226
7#
发表于 2020-5-7 18:44:41 | 显示全部楼层
jefferyzhang 发表于 2020-5-7 15:00
这步给你们封装的操作多了去了,包含了解码、格式转换、buffer转换。
看这样子像是没解码出来。
你的板子 ...

rk3399pro+fedora,系统是用论坛提供的固件刷的,板子在京东风火轮店买的;

刚用c++版的rtsp代码解成功了,但是python的一直有问题

  1. [toybrick@toybrick ~]$ cat /proc/version
  2. Linux version 4.4.167 (kfx@inno) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05) ) #78 SMP Wed Aug 21 09:15:51 CST 2019
  3. [toybrick@toybrick ~]$ uname -a
  4. Linux toybrick.fc28 4.4.167 #78 SMP Wed Aug 21 09:15:51 CST 2019 aarch64 aarch64 aarch64 GNU/Linux
复制代码
回复

使用道具 举报

shadowhtx

中级会员

积分
226
8#
发表于 2020-5-8 10:21:14 | 显示全部楼层
jefferyzhang 发表于 2020-5-7 20:53
python不是官方写的

好的,谢谢版主,我暂时先用C++版的,python版的会继续关注。
回复

使用道具 举报

shadowhtx

中级会员

积分
226
9#
发表于 2020-5-14 15:02:04 | 显示全部楼层
版主你好,刚买的toybrick的rk3399pro的板子,执行解码报错,麻烦帮忙看看?

fedora系统+python3-toybrick-0.2-12.aarch64.rpm+toybrick-0.3.0-py3-none-any.whl

  1. Open file(/boot/toybrick-release) failed
  2. Traceback (most recent call last):
  3.   File "test_rtsp.py", line 3, in <module>
  4.     import toybrick as toy
  5.   File "/usr/local/lib/python3.6/site-packages/toybrick/__init__.py", line 24, in <module>
  6.     from toybrick import graphic_buffer
  7.   File "/usr/local/lib/python3.6/site-packages/toybrick/graphic_buffer.py", line 1, in <module>
  8.     from . import rkbuffer
  9. SystemError: initialization of rkbuffer did not return an extension module
复制代码

回复

使用道具 举报

shadowhtx

中级会员

积分
226
10#
发表于 2020-5-14 15:31:35 | 显示全部楼层
jefferyzhang 发表于 2020-5-14 15:28
可能的情况:
1. 你不是toybrick的板子,你买到了假货
2. 你kernel不是我们的

不会吧?论坛购买链接过去买的,第一个金百顺智能开源平台
回复

使用道具 举报

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

本版积分规则

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


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