74

我正在考虑开发流媒体服务器,我有以下问题,请通过 RTSP(示例 url:)rtsp://192.168.0.184/myvideo.mpgRTP(示例 url:)rtp://192.168.0.184

据我了解,RTSP服务器主要用于流式传输已经存在的文件,即非实时文件。RTP服务器用于广播。

如果我错了,有人纠正我,对吗?

我想开发一个服务器在电脑屏幕上播放直播内容,也就是在流媒体播放的时候显示。

4

8 回答 8

118

你搞错了... RTSP是一个实时流协议。这意味着,您可以实时传输您想要的任何内容。因此,您可以使用它来流式传输 LIVE 内容(无论是什么,视频、音频、文本、演示文稿......)。RTP是一种传输协议,用于传输通过 RTSP 协商的媒体数据。

您使用 RTSP 来控制 RTP 上的媒体传输。您可以使用它来设置、播放、暂停、拆除流...

因此,如果您希望您的服务器在请求 URL 时开始流式传输,您可以实现某种 RTP-only 服务器。但是如果你想要更多的控制并且如果你正在流式传输实时视频,你必须使用 RTSP,因为它传输 SDP 和其他重要的解码数据。

阅读我在此处链接的文档,它们是一个很好的起点。

于 2010-11-29T12:11:17.587 回答
19

AFAIK,RTSP根本不传输流,它只是一个带外控制协议,具有播放和停止等功能。

原始 UDP 或 UDP 上的 RTP 是流的传输协议,就像原始 TCP 或 TCP 上的 HTTP 一样。

为了能够通过给定的传输协议流式传输某个程序,必须为您的容器格式定义封装方法。例如,TS 容器可以通过 UDP 传输,但 Matroska 不能。

几乎所有东西都可以通过 TCP 传输。

(您使用哪种编解码器这一事实也间接影响了您可以使用的容器格式。)

于 2011-03-02T10:26:54.797 回答
13

一些基础知识:

RTSP 服务器可用于死源和活源。RTSP 协议为您提供命令(如您的 VCR 遥控器),功能取决于您的实现。

RTP 是用于实时传输音频和视频的实时协议。使用的传输可以是单播、多播或广播,具体取决于传输地址和端口。除了传输 RTP 还可以为您做很多事情,例如打包、重新排序、抖动控制、QoS、支持唇形同步......

在您的情况下,如果您想要广播流媒体服务器,那么您需要 RTSP(用于控制)和 RTP(广播音频和视频)

首先,您可以通过live555提供的示例代码

于 2010-11-29T12:27:50.730 回答
8

我听到你的痛苦。我现在正在经历这个(多年后)。根据我的了解,您可以将 RTSP 视为“VCR 控制器”,该协议允许您指定要播放的流(演示文稿),然后它会向您发送媒体描述,然后您可以使用 RTSP 播放、停止、暂停和录制远程流。媒体本身通过 RTP。RTSP 通常在不同的套接字或通信层上实现。尽管它只是一个协议,但大多数情况下它是由服务器通过套接字实现的。对于直播流,您请求的 RTSP 流只是流的名称。它不需要引用服务器上的文件,服务器的 RTSP 实现可以解析该流,组合一个实时图,然后为该流名称提供 SDP(描述)。但,这当然特定于 RTSP 服务器的实现方式。对于“实时”流,仅使用 RTP 可能更简单,但您需要一种将 SDP 从 RTP 服务器传输到想要播放该流的客户端的方法。

于 2015-09-03T05:40:09.887 回答
4

我认为那是正确的。RTSP 可以在内部使用 RTP。

于 2010-11-29T11:58:17.340 回答
0

RTSP 广泛用于 IP 摄像机,在摄像机中作为 RTSP 服务器运行,以便用户可以从摄像机播放(拉取)RTSP 流。这是一种低成本的解决方案,因为我们不需要中央媒体服务器(想想数千个摄像机流)。拱形如下:

IP Camera      ----RTSP(pull)--->    Player
(RTSP server)                      (User Agent)

RTSP协议实际上包含:

  • 通过 TCP 的信令,在端口 554,用于交换有关媒体功能的 SDP(也用于 WebRTC)。
  • UDP/TCP 通过多个端口流式传输,通常是两个端口,一个用于 RTCP,一个用于 RTP(也用于 WebRTC)。

与现在在 H5 中可用的 WebRTC 相比:

  • 通过 HTTP/WebSocket 或通过任何其他协议交换的信号,用于交换 SDP。
  • 通过一个或多个端口的 UDP 流 (RTP/RTCP),通常绑定到一个端口,以使云服务负载均衡器满意。

从协议上看,RTSP 和 WebRTC 是类似的,但是使用场景有很大的不同,因为跑题了,我们粗略的简化一下,WebRTC 是为网络会议设计的,而 RTSP 是为 IP 摄像头系统设计的。

所以很明显,RTSP 和 WebRTC 都是解决方案和协议,用于不同的场景。虽然 RTP 是传输协议,但它也可以用于 WebRTC 的实时流媒体。

注意:RTSP 不适用于 H5 或互联网直播,但我们可以通过 FFmpeg 和网关服务器对其进行转换,请参阅此处

于 2021-12-18T04:47:52.167 回答
0

RTP是实时数据的传输协议。它提供时间戳、序列号和其他方法来处理实时数据传输中的时间问题。

RTSP是一种控制协议,它启动和指导来自媒体服务器的流式多媒体数据的传送。它是“互联网录像机远程控制协议”。它的作用是提供遥控器;然而,实际的数据传输是单独完成的,很可能是由 RTP 完成的。

此外,RTCP是 RTP 的控制部分,有助于服务质量和成员管理。

这三个相关的协议用于 Internet 上的实时多媒体数据。在此链接阅读出色的完整文档:RTP、RTCP 和 RTSP

于 2021-07-05T16:14:54.283 回答
-2

RTSP(实际上是 RTP)可用于流式视频,也可用于许多其他类型的媒体,包括现场演示。Rtsp 只是用于设置 RTP 会话的协议。

有关所有详细信息,您可以在以下地址查看我的开源 RTSP 服务器实现:https ://net7mma.codeplex.com/

或者我的文章@http ://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

它支持重新获取流以及流的动态创建,实现了各种 RFC,并且该库比 FFMPEG 和传输层中的任何其他解决方案实现了更好的性能和更少的内存,因此使其成为一个很好的候选者用作大多数情况下的集中访问点。

于 2013-03-12T01:49:33.953 回答