系列文章目录
前言
使用gstreamer中自带的rtsp服务器,就能快速的以管道的形式搭建rtsp服务器推流
提示:以下是本篇文章正文内容,下面案例可供参考
下载gst-rtsp-server
在gstreamer官网下载相关版本源码包。首先查看自己系统gstreamer的版本。比如我使用的ubuntu20.04的gstreamer是1.16.2版本:
这里下载1.16.2.tar.xz就行了。
解压后进入目录。./configurer 然后make编译。进入examples目录就能看到已经编译好的各种示例程序以及源码。
推流测试
test-launch
下面演示test-launch测试。
- 推流usb摄像头JPEG格式视频同时显示
./test-launch “( v4l2src device=/dev/video0 ! image/jpeg,width=1280,height=720,framerate=30/1 ! jpegdec ! timeoverlay ! tee name=vsrc vsrc. ! queue ! videoconvert ! ximagesink vsrc. ! queue ! x264enc tune=zerolatency ! rtph264pay name=pay0 pt=96 )”
-
推流videotestsrc
为了方便演示,我这里使用videotestsrc来推流
./test-launch “( videotestsrc ! video/x-raw,width=640,height=480,framerate=30/1 ! timeoverlay ! tee name=vsrc vsrc. ! queue ! videoconvert ! ximagesink vsrc. ! queue ! x264enc tune=zerolatency ! rtph264pay name=pay0 pt=96 )”
程序运行会有提示本地回环rtsp地址 。使用vlc拉流
其中左边视频显示窗口是推流端显示窗口。右边是vlc拉流端显示窗口。通过叠加一个计时器timeoverlay可以比较拉流显示的延迟时间。在外部使用推流端IP地址拉流同样可以拉流。这里虚拟机的ip地址是192.168.31.36。使用windows端的vlc中使用 rtsp://192.168.31.36:8554/test 同样可以拉流成功。
其他使用方式
在example目录下还有许多其他测试程序。比如test-appsrc。源代码中是使用appsrc方式送入一张RGB16格式不断黑白交替的图片进入gstreamer管道中,再经过rtsp推流。我们也可以在此基础上将自己需要的的外部数据送进gstreamer管道内推流。其他的示例程序就不再一一讲述了。有兴趣的朋友可以留言私下交流讨论。
总结
gst-rtsp-server可以结合gstreamer建立管道可以更加快速、灵活的推流。
2021.11.23 晚上