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[])

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

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



