gst-rtsp-server 开源包的说明

本文档介绍了GStreamer的RTSP服务器库,包括其基本用法和如何构建简单的服务器应用。服务器依赖GStreamer的RTSP基础设施,提供了一个小型、易理解和扩展的框架。主要内容涉及服务器初始化、创建服务器、配置URL挂载点、媒体控制和会话管理等方面,适合开发者参考以搭建和定制RTSP服务器。

gst-rtsp-server 开源包提供了一份 readme 文件,以下是相关内容的整理:

说明:相关内容更新于2013年7月15日(周一),版本0.11.90.1

本 HOWTO 介绍 GStreamer RTSP 库的基本用法以及如何可以用它构建简单的服务器应用程序。

0. 概述

服务器严重依赖 GStreamer 的 RTSP 基础设施。这包括所有的媒体采集、解码、编码、付费和 UDP/TCP 流。我们将 rtpbin 元素用于所有会话管理。服务器中的大多数 RTSP 消息解析和构造都是使用gst插件库附带的 RTSP 库完成的。

结果是服务器非常小(只有11000行代码),并且易于理解和扩展。在它目前的发展状态下,事物变化很快,API 和 ABI 都是不稳定的。我们鼓励人们将其用于各种用例,并通过建议更改/特性来参与。

大多数服务器构建为一个库,其中包含一堆 GObject 对象,这些对象提供合理的默认功能,但有相当数量的钩子来覆盖默认行为。

服务器目前与 glib mainloop 很好地集成。它目前不打算在高负载场景中使用,因为还没有进行安全审计,所以您可能不应该将它放在公共 IP 地址上。

1. 初始化

在使用任何RTSP服务器函数之前,需要初始化 GStreamer。

   #include <gst/gst.h>

   int
   main (int argc, char *argv[])
   {
   
   
     gst_init (&argc, &argv);

     ...
   }

服务器本身目前没有任何特定的初始化功能,但将来可能会发生变化。

2. 创建服务器

您要做的第一件事是创建一个新的GstRTSPServer对象。一旦这个对象被添加到GMainLoop中,它将处理到服务器的所有新客户端连接。您可以创建如下所示的新服务器对象:

   #include <gst/rtsp-server/rtsp-server.h>

   GstRTSPServer *server;

   server = gst_rtsp_server_new ();

默认情况下,服务器将在端口8554上侦听新连接。这可以通过调用 gst_rtsp_server_set_service() 或使用 'service' GObject 属性来更改。这使得在一台机器上运行多个服务器实例监听多个端口成为可能。

我们可以通过将服务器连接到一个 mainloop,使其开始侦听其默认端口。下面的示例显示了如何执行此操作,并将在默认8554端口上启动服务器。对于我们发出的任何请求,我们都会得到一个未找到的错误代码,因为我们需要在服务器变得有用之前配置更多的东西。

   #include <gst/gst.h>
   #include <gst/rtsp-server/rtsp-server.h>

   int
   main (int argc, char *argv[])
   
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许野平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值