# 视频专题

返回:前端基础

# 流媒体协议 RTMP 与 RTSP

什么是流媒体协议

流媒体协议,英文学名 Streaming Protocol,用一句人话来解释:流媒体协议是一种用于通过 Web 传递多媒体的协议。

流媒体协议有很多,主要分为三大类:

  • 传统视频流协议
    • RTMP
    • RTSP
  • 基于 HTTP 的自适应协议
    • Apple HLS
    • Low-Latency HLS
    • MPEG-DASH
    • Adobe HDS
  • 新技术
    • SRT
    • WebRTC

RTMP 是基于 TCP 开发的,那么 RTSP 使用到了 UDP

TCP:Transmission Control Protocol,中文意思:传输控制协议

TCP 协议是位于应用层和网络层之间的传输控制协议,用于提供可靠的流传输服务,即以字节流的形式传输数据和以字节流的形式接收数据。TCP 使用确认机制来检查数据是否安全可靠地到达,在发送端进行复用,在接收端进行解复用。TCP 使用三个阶段来实现连接定向功能,如连接建立、数据传输和连接终止。

UDP:User Datagram Protocol ,中文意思:用户数据报协议

UDP 是一种无连接协议,即将数据从一端传输到另一端;无需建立连接。UDP 也位于应用层和网络层之间。它还以数据包的形式传递数据或信息;这些数据包称为用户数据报。UDP 使用多路复用来处理来自多个进程的传出用户数据报,并使用解复用来处理进入同一主机上不同进程的传入用户数据报。

  • TCP 与 UDP 区别
    • TCP 是面向连接的,而 UDP 是无连接的
    • TCP 是重量级的,而 UDP 是轻量级的
    • TCP 提供可靠的服务,而 UDP 不提供可靠的服务
    • TCP 支持重传机制,而 UDP 不支持
    • TCP 数据包按顺序到达接收器,而 UDP 无序
    • TCP 不支持广播,而 UDP 支持广播
    • TCP 连接是一个字节流,而 UDP 连接是消息流

# RTMP

  • 英文全称:Real Time Messaging Protocol
  • 中文意思:实时消息协议
  • 底层协议:TCP
  • 应用级视频流协议
  • 视频编解码器:H.264
  • 音频编解码器:AAC
  • 延迟:3 - 30 秒

RTMP 的最大优点是可以在服务器和客户端服务器之间保持稳定的连接,无论用户的互联网连接质量如何,它都可以无缝低延迟进行流媒体传输。这个技术主要通过将数据流分成相等的小部分(音频数据默认为 64 字节,视频数据默认为 128 字节)并将它们顺序传输到接收设备,然后将它们重新组合成视频流来实现的

# RTMP 工作原理

  • 摄像头捕获视频
  • 通过编码器将视频流传输到视频平台服务器
  • 视频平台处理视频流
  • 通过 CDN 分发到离用户最近的服务器上
  • 最后视频流就能成功的到达用户设备

RTMP 最大的缺点是它与 HTML5 播放器不兼容,这样的话必须使用另一种协议,例如 HLS 来传输视频文件到达用户的设备,此外,RTMP 容易受到带宽问题的影响。

# RTSP

  • 英文全称:Real Time Streaming Protocol
  • 中文意思:实时流协议
  • 底层协议:TCP 和 UDP
  • 网络控制协议
  • 视频编解码器:H.265
  • 音频编解码器:AAC
  • 延迟:2 秒

RTSP 1996 年诞生,由 RealNetworks、Netscape 和哥伦比亚大学的专家联合开发,用于控制 VHS 式视频流的娱乐和通信系统,RTSP 使用高效的 RTP 协议,将流数据分解成更小的块,这样可以更快地传递。

RTSP 支持可靠的分段流,这意味着用户可以在仍在下载流的同时继续观看流。

# RTMP 与 RTSP 区别

  • 延迟
    • 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
  • 优点
    • RTMP: 低延迟适应性灵活性不需要缓冲
    • RTSP: 低延迟分段流式传输
  • 缺点
    • RTMP: 带宽问题HTML5 不支持某些浏览器和设备的兼容性问题安全性有点低
    • RTSP:
      • HTTP 不兼容
      • 依赖于其他协议