之前的内容,我们研究了用GStreamer 实现对USB相机的截图、录像、显示等操作,已经后续的压缩,解压缩,硬件加速实现的办法。但是我们在实际使用中,越来越多的前端接入其实是RTSP码流的网络相机偏多,尤其是前端可能使用海康、大华等大厂的网络相机,所以接下来我们主要研究如果实现RTSP网络流相机的接入的一些操作实现。
目录
1、硬件环境说明
参考文章:
【GStreamer 】5-1 gstreamer实现RTSP相机显示_机器人虎哥的博客-CSDN博客
2、RTSP相机链接播放显示
#playbin 插件播放 需要显示器支持
gst-launch-1.0 playbin uri= rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream
在nomachine 终端执行命令的效果为:

无报错了,屏幕显示内容也一致。
如果想测试自码流,只需要更换后面的URL即可。
#子码流取流:
#playbin 插件播放 需要显示器支持
gst-launch-1.0 playbin uri= rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/sub/av_stream
3、将RTSP码流转jpg图片保存
保存每一帧照片
#rtspsrc 指定数据来源,类似之前的v4l2 Receive data over the network via RTSP (RFC 2326)
#location 数据来源URL,需要可以使用playbin能播放
#rtph264depay 从RTSP数据流转接成H264 video Extracts H264 video from RTP packets (RFC 3984)
#avdec_h264 H.264解码 不是所有平台都有,先要查一下自己平台是否有这个插件
#h264parse 分析和缓冲H.264数据流 Parses H.264 streams
#videorate 调整帧率,优化视频流 Drops/duplicates/adjusts timestamps on video frames to make a perfect stream
#jpegenc 编码
#multifilesink 保存缓冲数据,按照一个连续命名文件 Write buffers to a sequentially named set of files
gst-launch-1.0 rtspsrc \
location="rtsp://admin:abcd1234@192.168.11.68:554/h264/ch1/main/av_stream" \
! rtph264depay ! h264parse ! avdec_h264 \
! videorate ! jpegenc ! multifilesink location="img_%06.jpg"
执行结果是保存了连续很多图片:

这条命令很适合我们连续采集照片,基本是按照帧率在采集照片。
只保存一帧照片
#rtspsrc 指定数据来源,类似之前的v4l2 Receive data over the network via RTSP (RFC 2326)
#location 数据来源URL,需要可以使用playbin能播放
#rtph264depay 从RTSP数据流

本文详细介绍了如何使用GStreamer工具链处理RTSP网络摄像头流,包括连接播放、帧级图片保存与一次性抓取。涉及的关键组件如rtspsrc、rtph264depay、h264parse和videorate在实际应用中的配置和功能解析。
最低0.47元/天 解锁文章
9608

被折叠的 条评论
为什么被折叠?



