之前的内容,我们研究了用GStreamer 实现对USB相机的截图、录像、显示等操作,已经后续的压缩,解压缩,硬件加速实现的办法。但是我们在实际使用中,越来越多的前端接入其实是RTSP码流的网络相机偏多,尤其是前端可能使用海康、大华等大厂的网络相机,所以接下来我们主要研究如果实现RTSP网络流相机的接入的一些操作实现。


目录

1、硬件环境说明

2、海康相机的RTSP链接测试(VLC)

举例说明:

3、RTSP相机链接播放显示

CPU等资源占用情况:


1、硬件环境说明

此次我测试的硬件环境如下图:

opencv从rtmp拉流 opencv gstreamer rtsp_opencv从rtmp拉流

        我们测试主板还是EdgeBox_EHub_tx1_tx2_E100,核心模块是nvidia Jeston TX1,关于此模块的信息请查看之前的内容: 

关乎软件环境:

opencv从rtmp拉流 opencv gstreamer rtsp_bc_02

 由于我们安装了英伟达官方推荐的所有套件,关于此内容,可以参考文章:

2、海康相机的RTSP链接测试(VLC)

RTSP格式如下:URL规定:

rtsp://username:password@<ipaddress>/<videotype>/ch<number>/<streamtype>

路径后面不能有空格、回车等符号,否则会连接失败。

举例说明:

#主码流取流:
rtsp://admin:12345@192.0.0.64:554/h264/ch1/main/av_stream
子码流取流:
#rtsp://admin:12345@192.0.0.64:554/h264/ch1/sub/av_stream

#我们测试摄像机密码是abcd1234,IP是192.168.11.68,RTSP端口默认554未做改动,是H.264编码,那么
#主码流取流:
rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream
#子码流取流:
rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/sub/av_stream
#【如果是H.265编码的,那么将H.264替换成H.265即可】

主码流:

opencv从rtmp拉流 opencv gstreamer rtsp_码流_03

 

子码流:

opencv从rtmp拉流 opencv gstreamer rtsp_ubuntu_04

 由于我的相机配置为混合流,还可以听到声音:

opencv从rtmp拉流 opencv gstreamer rtsp_码流_05

3、RTSP相机链接播放显示

#playbin 插件播放 需要显示器支持
gst-launch-1.0 playbin uri= rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream

如果无显示器支持,比如SSH链接的终端内执行:

opencv从rtmp拉流 opencv gstreamer rtsp_ubuntu_06

 插入HDMI显示器后,虽然命令是在SSH终端执行,但是显示器端其实已经显示。

opencv从rtmp拉流 opencv gstreamer rtsp_opencv从rtmp拉流_07

 

在nomachine 终端执行命令的效果为:

opencv从rtmp拉流 opencv gstreamer rtsp_边缘计算_08

 

无报错了,屏幕显示内容也一致。

如果想测试自码流,只需要更换后面的URL即可。

#子码流取流:
#playbin 插件播放 需要显示器支持
gst-launch-1.0 playbin uri= rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/sub/av_stream

CPU等资源占用情况:

opencv从rtmp拉流 opencv gstreamer rtsp_opencv从rtmp拉流_09

 在播放视频是,资源占用情况是这样的,可以看到,其实占用也不是很高。