一般来说视频流是这样工作的:
- 摄像头捕获视频
- 通过编码器将视频流传输到视频平台服务器
- 视频平台处理视频流
- 通过CDN分发到离用户最近的服务器上
- 最后视频流就能成功的到达用户设备
那么这个环节中RTMP就起到了非常重要的作用,在视频从摄像头到服务器的过程中,RTMP将大量数据分割成小块并跨多个虚拟通道传输,在视频源和 RTMP 服务器之间提供了稳定和流畅的视频流。
RTMP 最大的缺点是它与 HTML5 播放器不兼容,这样的话必须使用另一种协议,例如 HLS来传输视频文件到达用户的设备,此外,RTMP 容易受到带宽问题的影响。
RTSP- 英文全称:Real Time Streaming Protocol
- 中文意思:实时流协议
- 底层协议:TCP 和 UDP
- 网络控制协议
- 视频编解码器:H.265
- 音频编解码器:AAC
- 延迟:2 秒
RTSP 1996年诞生,由 RealNetworks、Netscape 和哥伦比亚大学的专家联合开发,用于控制 VHS 式视频流的娱乐和通信系统,RTSP 使用高效的 RTP 协议,将流数据分解成更小的块,这样可以更快地传递。
RTSP 支持可靠的分段流,这意味着用户可以在仍在下载流的同时继续观看流。
Android 和 iOS 设备没有开箱即用的 RTSP 兼容播放器,所以普及度并不高,但 RTSP 在许多监控 和闭路电视 (CCTV) 应用非常广泛,远程摄像头、在线教育和互联网直播等,都用的比较频繁。
上面提到RTSP使用RTP协议进行分解视频块的,这里我们来讲一下RTP协议。
RTP协议,英文全称:Real-time Transport Protocol,中文就是实时传输协议,它的底层其实就是UDP,这样一来就可以实现低延迟。
除了RTP协议,为确保流畅和一致的流传输,RTSP 还使用另外两种网络通信协议:
- TCP 收发控制命令(例如播放或停止请求)
- UDP 传送音频、视频和数据。
这个怎么理解呢?
TCP可靠传输,比如用户按下播放或者停止播放的时候,这个是个准确的请求,这个需要保证可靠性,这个时候TCP作用就体现了。
UDP是低延迟的协议,那么用于传送音频、视频和数据可以达到非常高效的效果。
RTSP 工作原理 ⭐- 用户设备向视频流平台发送 RTSP 请求
- 视频流平台返回可以操作的请求列表,比如播放、暂停等
- 用户设备向视频流平台发送具体的请求,比如播放
- 视频流平台解析请求并调用指定机制启动视频流处理
由于 RTSP 依赖于专用服务器,并且依赖于 RTP,因此该协议不支持加密视频内容或重传丢失的数据包。
RTMP 与 RTSP 区别1、延迟- RTMP:3-30秒
- RTSP:2-5秒
- RTMP:AAC、AAC-LC、HE-AAC v1 & v2、MP3、Speex、Opus、Vorbis
- RTSP:AAC、AAC-LC、HE-AAC v1 & v2、MP3、Speex、Opus、Vorbis
- RTMP:H.264, VP8, VP6, Sorenson Spark®, Screen Video v1 & v2
- RTSP:H.265 (preview), H.264, VP9, VP8