stream媒体服务器中的RTP或RTSP有什么区别?
我想开发stream媒体服务器,我有以下问题,通过RTSP(例如url: rtsp://192.168.0.184/myvideo.mpg
)或RTP
(例如url: rtp://192.168.0.184
)。
据我所知, RTSP
服务器主要用于stream式传输已经存在的文件,即不存在的文件。 RTP
服务器用于广播。
有人纠正我,如果我错了,对吗?
我想开发一个服务器来在电脑屏幕上直播内容,也就是在stream媒体播放的时候显示的内容。
你错了… RTSP是一个实时stream媒体协议。 意思是,你可以实时stream出任何你想要的东西。 因此,您可以使用它来传送实况内容(不pipe它是什么,video,audio,文本,演示文稿…)。 RTP是一种传输协议,用于传输通过RTSP协商的媒体数据。
您使用RTSP来控制RTP上的媒体传输。 你用它来设置,播放,暂停,拆卸stream…
因此,如果您希望服务器在请求URL时才开始stream式传输,则可以实现某种仅RTP服务器。 但是如果你想要更多的控制,而且如果你正在stream媒体直播video,你必须使用RTSP,因为它传输SDP和其他重要的解码数据。
阅读我在这里链接的文件,他们是一个很好的起点。
AFAIK,RTSP根本不传输数据stream,它只是带PLAY和STOPfunction的带外控制协议。
原始的UDP或UDP上的RTP是stream的传输协议,就像原始TCP或HTTP over TCP一样。
为了能够通过给定的传输协议传输某个程序,必须为你的容器格式定义一个封装方法 。 例如TS容器可以通过UDP传输,但Matroska不能。
几乎所有东西都可以通过TCP传输。
(你使用的编解码器的事实也是间接的,因为它限制了你可以使用的容器格式。)
一些基本知识:
RTSP服务器可用于死源和直播源。 RTSP协议为您提供命令(如您的VCR远程),function取决于您的实施。
RTP是实时传输audio和video的实时协议。 所使用的传输可以是单播,多播或广播,这取决于传输地址和端口。 除了传输RTP,你还可以做很多事情,比如打包,重新sorting,抖动控制,QoS,支持唇部同步等。
在你的情况下,如果你想广播stream媒体服务器,那么你需要RTSP(用于控制)以及RTP(广播audio和video)
首先你可以通过live555提供的示例代码
我认为这是正确的。 RTSP可能会在内部使用RTP。
我听到你的痛苦 我现在正在经历这个(几年后)。 从我所了解到的情况来看,您可以将RTSP视为“VCR控制器”,该协议允许您指定要播放的stream(演示文稿),然后向您发送媒体描述,然后就可以使用RTSP播放,停止,暂停和logging远程stream。 媒体本身通过RTP。 RTSP通常通过不同的套接字或通信层来实现。 尽pipe它只是一个协议,但通常它是由服务器通过套接字来实现的。 对于直播stream,您请求的RTSPstream只是一个stream的名称。 它不需要引用服务器上的文件,服务器的RTSP实现可以parsing该stream,组合一个活动graphics,然后提供该stream名称的SDP(描述)。 但是,这当然是特定于RTSP服务器的实施方式。 对于“实时”stream,使用RTP可能更简单,但是您需要将SDP从RTP服务器传输到想要播放该stream的客户端。
RTSP(实际上是RTP)可以用于stream式video,还可以用于许多其他types的媒体,包括现场演示。 Rtsp只是用来设置RTP会话的协议。
所有的细节,你可以看看我的开源RTSP服务器实现在以下地址: https : //net7mma.codeplex.com/
或者我的文章@ http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp
它支持重新采购stream以及stream的dynamic创build,实现了各种RFC,并且该库实现了更好的性能和更less的内存,然后FFMPEG和传输层中的任何其他解决scheme,从而使它成为一个很好的候选人使用大多数场景的集中访问点。