RTSP服务器可以同时独立地传送多个媒体流。RTSP服务器监听TCP/IP端口上的连接请求。RTSP客户端(如铅RTSP源过滤器)可以连接并向服务器发出RTSP命令。最常见的命令是:
服务器需要响应这些命令中的每一个。
使用术语“媒体流”是因为流媒体可以是文件或实时流。实时流可以来自捕获设备,通过UDP端口接收的MPEG-2传输流,或者来自另一个服务器的RTSP流。它也可以来自DVD映像——任何可以用来创建输出文件的东西也可以用作RTSP文件夹的源媒体流。
通常,RTSP服务器将流式传输某个文件夹中的所有文件。然而,并不是所有的压缩都被RTSP流技术支持,所以具有不兼容压缩的文件需要动态地进行转码。
目前,LEAD RTSP Sink Filter支持H264和H265视频压缩,支持AAC音频压缩。具有不同视频或音频压缩的文件需要转编码为rtsp支持的压缩。
有关RTSP规范的更多信息,请参阅“RFC 2326 -实时流协议(RTSP)”标准。
RTSP服务器提供了一种限制未经授权用户访问内容的方法。RTSP服务器可以选择使用身份验证来识别用户,然后只允许授权用户访问。认证方式有两种:基本和消化。在任何一种模式下,用户都必须输入用户名和密码才能访问媒体流。管理员可以采用不同的认证方式,对每个媒体流赋予不同的访问权限,也可以对所有媒体流赋予相同的访问权限。
LEADTOOLS多媒体SD188宝金博怎么下载K提供了高级对象,使实现RTSP服务器变得非常容易:
假设您想要一个RTSP服务器来传输来自“c:\MyFiles”的所有文件,并且您希望服务器在端口554(默认的RTSP端口)上监听地址127.0.0.1。此RTSP服务器处理所有RTSP url的格式为:rtsp: / / 127.0.0.1 / RelativeURL
,作为流式传输文件的请求c: \ myfile \ RelativeURL
。一个简单服务器的c#代码看起来像下面的代码:
//为简洁起见,此处不进行错误检查
RTSPServer _server;
无效SetupRTSPServer ()
{
//创建服务器实例
_server =新RTSPServer ();
//指定c:\MyFiles作为源文件夹
_server。SetSourceFolder (0,@“c: \ myfile”);
//将监听127.0.0.1
_server。TargetAddress =“127.0.0.1”;
//开始监听554端口
_server.StartServer (554);
}
下面是一些使用该服务器传输文件的示例,以及相应的url:
案例1:从源文件夹的根目录流文件
连接LEAD RTSP源和流c: \ myfile \ file1.mpg
使用以下网址:rtsp: / / 127.0.0.1 / file1.mpg
当LEAD RTSP服务器接收到这个URL时,它将查找file1。在所有的源文件夹中的MPG。在本例中,只有一个文件夹,因此它将查找c: \ myfile \ file1.mpg
案例2:流式传输文件
使用同一台服务器也可以从实时视频捕获设备进行流传输。所需要做的就是从视频和音频捕获中运行捕获,并将其写入DVR文件c: \ myfile
。最简单的方法是运行DVR演示,将输出文件设置为如下内容c: \ myfile \ LiveCapture2.lbl
。要做到这一点,使用RTSP源过滤器流式传输以下URL:rtsp: / / 127.0.0.1 / LiveCapture2.lbl
案例3:重流MPEG2 Transport UDP流
运行MPEG-2传输流并设置要使用的DVR设置c: \ myfile \ UDPStream3.lbl
。然后在RTSP源过滤器中使用以下URL:rtsp: / / 127.0.0.1 / UDPStream3.lbl
例4:从一个源文件夹的子文件夹流式传输文件
如果在RTSP URL中指定了子文件夹,服务器将自动在子文件夹中搜索。例如,您可能希望将DVR文件保存在不同的子文件夹中,或者您可能希望减少根文件夹中的文件数量。
流式传输文件c: \ myfile \ MySubfolder \ file4.avi
,使用以下RTSP URL:rtsp: / / 127.0.0.1 / MySubfolder / file4.avi
。注意,分隔源子文件夹和文件名的反斜杠在RTSP URL中被转换成正斜杠。
例5:将源文件夹之外的文件流式传输
假设您想要流式传输另一个磁盘上的文件(例如,f: \ abc \ def.mkv
).在本例中,创建一个名为c: \ myfile \ MyLink5.lnk
让它指向f: \ abc \ def.mkv
。接下来,使用以下URL:rtsp: / / 127.0.0.1 / MySubfolder / MyLink5.lnk
这也适用于dvd:你可以创建一个链接到d: \ VIDEO_TS \ VIDEO_TS。IFO
被称为c: \ myfile \ MyDvd5.lnk
。这使得可以使用以下URL进行流式传输:rtsp: / / 127.0.0.1 / MySubfolder / MyDvd5.lnk
。在这种情况下,请记住,DVD将在飞行中被重新压缩,并且DVD需要时间才能开始播放。因此,可能需要在RTSP URL上指定一个超时,以指示RTSP过滤器等待DVD开始转换。下面的URL将告诉RTSP服务器在放弃之前等待10秒:rtsp: / / 127.0.0.1 / MySubfolder / MyDvd5.lnk ?超时= 10
当高级RTSP对象正在流式传输不断增长的DVR文件时,它们将从实时位置开始流式传输。这使得使用RTSP服务器实现实时流成为可能。当流直播DVR,所有客户端看到相同的视频,不管多久以前他们连接到RTSP服务器。
如果您正在流式传输一个不再增长的DVR文件,客户端将从DVR缓冲区的开始播放视频。
当重新流式传输MPEG-2传输UDP流时,最好将其作为DVR文件流式传输,因为LEAD MPEG-2传输UDP源过滤器使用DVR文件来存储数据。