Toybrick

楼主: jefferyzhang

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

 

shadowhtx

中级会员

积分
226
121#
发表于 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
复制代码



回复

使用道具 举报

jefferyzhang

版主

积分
13574
122#
 楼主| 发表于 2020-5-7 11:16:14 | 只看该作者
hhhjjjwww 发表于 2020-5-7 09:12
frame = rtsp.read_rgb(640, 360) 请问怎么将这个opengl的图像格式转成opencv图像格式? ...

.numpy() 我记得是 还是 as_array() 我忘了,你稍微查下
回复

使用道具 举报

jefferyzhang

版主

积分
13574
123#
 楼主| 发表于 2020-5-7 11:17:24 | 只看该作者
shadowhtx 发表于 2020-5-7 09:36
版主早,确认了下防火墙确实关了,还是卡在相同的位置,我把verbose打开 rtsp = toy.input.createRtspCli ...

看过去是都收到了,偶尔丢一俩包而已。
回复

使用道具 举报

shadowhtx

中级会员

积分
226
124#
发表于 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
复制代码

回复

使用道具 举报

jefferyzhang

版主

积分
13574
125#
 楼主| 发表于 2020-5-7 15:00:49 | 只看该作者
shadowhtx 发表于 2020-5-7 12:06
主要是卡在frame = rtsp.read_rgb(1280, 720)这一步,下面一条测试语句frame一直打印不出来 ...

这步给你们封装的操作多了去了,包含了解码、格式转换、buffer转换。
看这样子像是没解码出来。
你的板子和系统是什么
回复

使用道具 举报

shadowhtx

中级会员

积分
226
126#
发表于 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
复制代码
回复

使用道具 举报

jefferyzhang

版主

积分
13574
127#
 楼主| 发表于 2020-5-7 20:53:47 | 只看该作者
shadowhtx 发表于 2020-5-7 18:44
rk3399pro+fedora,系统是用论坛提供的固件刷的,板子在京东风火轮店买的;

刚用c++版的rtsp代码解成功 ...

python不是官方写的
回复

使用道具 举报

shadowhtx

中级会员

积分
226
128#
发表于 2020-5-8 10:21:14 | 只看该作者
jefferyzhang 发表于 2020-5-7 20:53
python不是官方写的

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

使用道具 举报

1881949

注册会员

积分
98
129#
发表于 2020-5-8 17:32:54 | 只看该作者
hhhjjjwww 发表于 2020-5-7 09:12
frame = rtsp.read_rgb(640, 360) 请问怎么将这个opengl的图像格式转成opencv图像格式? ...

你好,你这个解决了吗?
回复

使用道具 举报

林迪生

注册会员

积分
102
130#
发表于 2020-5-12 11:07:47 | 只看该作者
请问while rtsp.is_opened():
        frame = rtsp.read_rgb(640, 360)中frame能不能转opencv格式呢
回复

使用道具 举报

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

本版积分规则

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


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