什么是用于流式传输的 RTSP 和 WebRTC?
What is RTSP and WebRTC for streaming?
我是流媒体的新手。但我必须用网络摄像机做一个基于用户的流媒体系统。就像安全摄像头一样。一个用户将有一个流。我的团队考虑使用 RTSP。他们想知道我们将如何做以及什么是 rtsp、webrtc、rtp。我正在研究,我想问你。那么究竟什么是 RTSP?一些网络摄像机说支持 WebRTC,这是什么?这与 RTSP 兼容吗?哪个是基于用户的流式传输的最佳协议?
RTSP 是一种流媒体控制协议,用于控制流媒体服务器(whoami 在另一个答案中的远程控制类比是一种很好的思考方式)。它定义了如何打包数据以流式传输数据以及连接的两端应如何表现以支持该协议。
需要说明的是,它实际上并不传输媒体数据本身——RTP(实时传输)协议负责处理。
更复杂的是,还存在 RTCP(Real Tine 控制协议)- 尽管名称如此,但其主要目的是收集 RTP 会话的统计信息。
SDP(会话描述协议)在此上下文中也很有用 - 它包含有关流会话参数的信息,并由 RTSP 等使用。示例参数包括会话名称、会话可用时间, URI 等
WebRTC 是一个项目和一组 IETF 草案,为浏览器提供一组 API 以支持 'Rich' 网络通信。
用非常简单的术语来说,WebRTC 可能会提供 API 以允许 Web 程序员(即使用 Javascript 创建基于浏览器的客户端的人)使用像 RTP 这样的协议来传输数据。
注意上面的 'might' 这个词——目前 WebRTC 目前不支持与 RTSP 的直接交互,尽管围绕它进行了一些讨论:
让我尽我所能解释。如果我有任何错误,请纠正我。
流媒体数据:
您正在将媒体数据(音频/视频)从一端传输到另一端。
RTSP/RTP/UDP, RTCP
RTSP 是一种Streaming 协议,它的作用类似于遥控器。想想你可以用遥控器做什么。播放、暂停……等,这就是 RTSP 实现和处理的内容。好吧,那么谁在传输数据?这里 RTP 出现了。 RTP 是 RTSP 使用的传输协议。 RTP 使用 UDP。啊..我知道什么是UDP/TCP,所有RTP来自哪里?我们关心的 UDP 和 TCP 之间有一个核心区别。在 UDP 中,您无法跟踪是否存在数据包丢失,因此无法跟踪 RTP。 RTP 在 UDP 上工作,但提供了跟踪丢失数据包的功能,以便接收方可以采取相应的行动。例如,如果 h.264 数据包传输在接收端发生丢包,他可以要求发送方提供完整的 'I' 帧。您可以假设 RTCP 只是一种控制协议,它与 RTP 一起用于 QoS 度量。
好的,到目前为止一切顺利。现在,我们的脑海中出现了几个问题。现在一切都在浏览器中。是的,我们可以将媒体流式传输到浏览器吗?是的,这就是 WebRTC 的用武之地。 WebRTC 再次使用 RTP 协议。
所以,webRTC 是一个标准,有助于媒体流 from/to 浏览器。
此外,它还具有下面提到的其他功能。
1) 基于浏览器。
2) 一个很大的区别是在 TURN/STURN 服务器的帮助下促进了对等网络连接。
3) 构建编解码器支持。
4) 也支持任意数据传输。 ;)
希望它能提供一些基本概念。
我是流媒体的新手。但我必须用网络摄像机做一个基于用户的流媒体系统。就像安全摄像头一样。一个用户将有一个流。我的团队考虑使用 RTSP。他们想知道我们将如何做以及什么是 rtsp、webrtc、rtp。我正在研究,我想问你。那么究竟什么是 RTSP?一些网络摄像机说支持 WebRTC,这是什么?这与 RTSP 兼容吗?哪个是基于用户的流式传输的最佳协议?
RTSP 是一种流媒体控制协议,用于控制流媒体服务器(whoami 在另一个答案中的远程控制类比是一种很好的思考方式)。它定义了如何打包数据以流式传输数据以及连接的两端应如何表现以支持该协议。
需要说明的是,它实际上并不传输媒体数据本身——RTP(实时传输)协议负责处理。
更复杂的是,还存在 RTCP(Real Tine 控制协议)- 尽管名称如此,但其主要目的是收集 RTP 会话的统计信息。
SDP(会话描述协议)在此上下文中也很有用 - 它包含有关流会话参数的信息,并由 RTSP 等使用。示例参数包括会话名称、会话可用时间, URI 等
WebRTC 是一个项目和一组 IETF 草案,为浏览器提供一组 API 以支持 'Rich' 网络通信。
用非常简单的术语来说,WebRTC 可能会提供 API 以允许 Web 程序员(即使用 Javascript 创建基于浏览器的客户端的人)使用像 RTP 这样的协议来传输数据。
注意上面的 'might' 这个词——目前 WebRTC 目前不支持与 RTSP 的直接交互,尽管围绕它进行了一些讨论:
让我尽我所能解释。如果我有任何错误,请纠正我。
流媒体数据:
您正在将媒体数据(音频/视频)从一端传输到另一端。
RTSP/RTP/UDP, RTCP
RTSP 是一种Streaming 协议,它的作用类似于遥控器。想想你可以用遥控器做什么。播放、暂停……等,这就是 RTSP 实现和处理的内容。好吧,那么谁在传输数据?这里 RTP 出现了。 RTP 是 RTSP 使用的传输协议。 RTP 使用 UDP。啊..我知道什么是UDP/TCP,所有RTP来自哪里?我们关心的 UDP 和 TCP 之间有一个核心区别。在 UDP 中,您无法跟踪是否存在数据包丢失,因此无法跟踪 RTP。 RTP 在 UDP 上工作,但提供了跟踪丢失数据包的功能,以便接收方可以采取相应的行动。例如,如果 h.264 数据包传输在接收端发生丢包,他可以要求发送方提供完整的 'I' 帧。您可以假设 RTCP 只是一种控制协议,它与 RTP 一起用于 QoS 度量。
好的,到目前为止一切顺利。现在,我们的脑海中出现了几个问题。现在一切都在浏览器中。是的,我们可以将媒体流式传输到浏览器吗?是的,这就是 WebRTC 的用武之地。 WebRTC 再次使用 RTP 协议。 所以,webRTC 是一个标准,有助于媒体流 from/to 浏览器。 此外,它还具有下面提到的其他功能。
1) 基于浏览器。
2) 一个很大的区别是在 TURN/STURN 服务器的帮助下促进了对等网络连接。
3) 构建编解码器支持。
4) 也支持任意数据传输。 ;)
希望它能提供一些基本概念。