当前位置:   article > 正文

linux Gstreamer RTSP server学习_gst-launch-1.0 rtsp

gst-launch-1.0 rtsp

1. Gstremer RTSP Server 环境配置

        前面文章已经介绍过如何安装Gstreamer以及简单使用。接下来学习一下如何简单的使用Gstreaner RTSP推流和播放。

1. 1下载Gstreamer rtsp 源码

        这一步其实是在我们使用apt-get方式安装Gstreamer时才需要,如果我们是下载了整个源码的方式使用Gstreamer是不需要这一步的。因为Gstreamer rtsp已经包含在其中了。

        而我的目的只是想使用gst-rtsp服务,所以这边文章将在apt-get 安装gstreamer的基础上编译gst-rtsp-server来使用(因为rtsp-server不是以插件的方式存在的,所以我们需要自己下载源码编译才能使用它)。

        首先先安装Gstreamer 的基础功能部分,这个已在上编文章讲过,也可以参考官方文档:

https://gstreamer.freedesktop.org/documentation/installing/on-linux.html?gi-language=c

然后下载code:

git clone git://anongit.freedesktop.org/gstreamer/gst-rtsp-server

在切到对应分支上面 Ubuntu 18.04 应该切到 1.14分支。

然后编译code,编译方式与编译Gstreamer 源码一样

  1. cd gst-rtsp-server
  2. meson out -Dprefix=/home/用户/gst-rtsp-server/install
  3. ninja -C out install

        编译完成后会在install目录下有生成一些库文件。将这些生成的文件的路径加东环境变量里面。设置方法与上编文章相同,只是路径不同。然后就可以使用RTSP服务了。我们也可以在上面的编译命令中不指定-Dprefix让编译出来的库直接安装到/usr/local/lib include share下面。这样不用配置环境变量也可以直接使用。我们还可以直接将生成的那些文件直接链接或者拷贝到/usr/或者/usr/local目录下面。

当然如果你是下载了整个源码编译使用gstreamer的就不用单独下载rtsp的code了。

1.2 rtsp-server 测试程序编译

在rtsp-server git下面有一些测试bin,可以使用它快速测试。

它们是由上面的.c文件编译出来的。需要注意的是,编译想要单独编译这些.c文件必须要有gstreamer-rtsp-server-1.0库。但是我们apt安装方式并不带这个库,所以直接编译它肯定报错。

有两种方法可以编译它。一个是编译整个gst-rtsp-server 。它编译的bin会在out目录下面的对应目录下。第二个就是将编译gst-rtsp-server生成的install目录下面的lib添加到环境变量中。然后使用下面的命令编译.c文件。

gcc test-launch.c -o test-launch `pkg-config --cflags --libs gstreamer-rtsp-server-1.0 gstreamer-1.0`

然后就可以对Gstreamer rtsp做一些简单的测试了

2. Gstreamer rtsp server测试

首先先安装一下gstreamer1.0-rtsp,不安装这个我试的会有一些错误。

sudo apt-get install gstreamer1.0-rtsp

使用test-launch推流:

下面这个命名使用videotestsrc生成测试数据流。

  1. 推流:
  2. ./test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"
  3. 拉流播放:
  4. gst-launch-1.0 playbin uri=rtsp://127.0.0.1:8554/test

  1. 推流
  2. ./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 )"
  3. 播放:
  4. gst-launch-1.0 rtspsrc latency=20 location="rtsp://127.0.0.1:8554/test" ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink

这编文章其实还是在讲搭建环境。接下来准备开始学习写应用了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/611151
推荐阅读
相关标签
  

闽ICP备14008679号