📌  相关文章
📜  流式传输存储的视频

📅  最后修改于: 2022-05-13 01:57:02.612000             🧑  作者: Mango

流式传输存储的视频

视频流包括将预先录制的视频存储在服务器上。

  • 用户向这些服务器发送请求。
  • 用户可以从头到尾观看视频,并且可以随时暂停,向前或向后跳过,或者在他们想要的时候停止视频。

有 3 个视频流类别:

1. UDP Streaming
2. HTTP Streaming
3. Adaptive HTTP Streaming 

通常,今天的系统采用 HTTP 和自适应 HTTP 流。

这三种流技术的共同特点是广泛使用客户端缓冲

客户端缓冲的优点:

  1. 客户端缓冲区吸收服务器-客户端延迟的变化。直到客户端接收到延迟的数据包,才会播放接收到但尚未播放的视频。
  2. 即使带宽下降,用户也可以观看视频,直到缓冲区完全耗尽。

1.UDP流:
UDP 服务器根据客户端的消耗率向客户端发送视频块(块:包含控制信息或用户数据的信息单元)。它以与客户端的视频消耗速率相匹配的速率传输块,方法是在稳定状态下通过 UDP 输出视频块。

例如,

Video consumption rate = 2Mbps
Capacity of one UDP packet = 8000 bits

Therefore, 
Transmission rate = 8000 bits/2 Mbps = 4000 msec 

特性:

  • UDP 不使用拥塞控制机制。视频块在传输之前使用 RTT(实时传输)协议进行封装。
  • 维护额外的客户端-服务器路径以将客户端状态通知给服务器,例如暂停、恢复、跳过等。

缺点:

  • 带宽是不可预测的,并且在客户端和服务器之间变化。
  • UDP 流需要一个单独的媒体控制服务器,如 RTSP 服务器(实时流协议)来跟踪客户端状态(暂停、恢复等)。
  • 设备配置有防火墙以阻止 UDP 流量,从而阻止将 UDP 数据包接收到客户端。

2. HTTP 流:
视频作为具有唯一 URL 的简单普通文件存储在 HTTP 服务器中。客户端与服务器建立 TCP 连接并对该 URL 发出 HTTP GET 请求。服务器将视频文件与 HTTP RESPONSE 一起发送。现在客户端缓冲区抓取视频,然后显示在用户屏幕上。

好处:

  • 通过 TCP 使用 HTTP 可以让视频轻松穿越防火墙和 NAT。
  • 不需要任何媒体控制服务器,如 RTSP 服务器,从而降低了通过 Internet 进行大规模部署的成本。

缺点:

  • 录制和播放视频之间的延迟或延迟。这会使观众更加恼火和恼怒。只有几毫秒的延迟是可以接受的。
  • 提前预取视频,但是,如果用户提前停止播放视频怎么办?浪费数据是不受欢迎的。
  • 所有客户端都接收到相同的视频编码,尽管不同客户端和同一客户端的可用带宽量随时间变化很大。

    用途:
    Youtube 和 Netflix 使用 HTTP 流媒体机制。

    3. 自适应 HTTP 流:
    HTTP 流式传输的主要缺点导致开发基于 HTTP 的新型流式传输,称为 DASH(HTTP 上的动态自适应流式传输)。视频被编码成不同的比特率版本,具有不同的质量。主机从不同的位版本发出几秒长的动态视频请求。当带宽很高时,会接收到高比特率的块,因此在低带宽期间会收到类似的高质量低质量视频。

    好处:

    • DASH 使用用户在屏幕上切换不同质量的视频。
    • 客户端可以使用 HTTP 字节范围请求来精确控制本地缓冲的预取视频量。
    • DASH 还通过唯一的 URL 以不同的质量和不同的比特率存储不同版本的音频。

    因此客户端动态选择视频和音频块并在播放中本地同步。

    用途:
    COMCAST 使用 DASH 流式传输高质量的视频内容。