趣谈网络协议---流媒体协议:如何在直播里看到美女帅哥?

视频是快速播放一连串连续的图片。

视频中的图片压缩:
在这里插入图片描述
视频编码的两大流派

  • ITU(International Telecommunications Union)的VCEG(Video Codding Experts Group)。侧重传输。
  • ISO(International Standards Organization)的MPEG(Moving Picture Experts Group)。侧重存储。

后来,ITU-T(ITU Telecommunication Standardization Sector)与MPEG联合制定了H.264/MPEG-4 AVC。

经过编码后 ,图像便成为二进制。

如何在直播里看到帅哥美女?
在这里插入图片描述

  • 网络协议将编码好的视频流,从主播段推送到服务器,服务器上有运行同样协议的服务端接收网络包,得到视频流,该过程为接流。
  • 服务端接流后,可对视频流进行处理,如转码。
  • 服务端处理完流后,观众的客户端请求流,该过程为拉流。
  • 为降低服务器压力,需要一个视频分发网络,将视频预先加载到就近的边缘节点。
  • 客户端拉流后,进行解码,将二进制转为图片,播放。

过程详解
1、编码:如何将丰富多彩的图片变成二进制流?

视频序列分3种帧:

  • I 帧,也称关键帧。里面是完整的图片,只需要本帧数据,就可以完成解码。
  • P帧,前向预测编码帧。记录此帧与前一帧的差别,解码需要之前缓存的画面。
  • B帧,双向预测内插编码帧。记录本帧与前后两帧的差别。

压缩后帧的序列,应该是在 IBBP 的间隔出现的。
在这里插入图片描述
一个帧分成多个片,片分成多个宏块,宏分成多个子块,方便进行空间上的编码。

编码后,需压缩成流,是一个个的网络提取层单元(NALU,Network Abstraction Layer Unit),方便网络上的传输,因为网络传输默认是包。
在这里插入图片描述
NALU起始标识符标识NALU之间的间隔;NALU头里配置了类型;Payload里是承载的数据。

NALU头里,主要的内容是类型NAL Type。

  • 0x07 表示 SPS,序列参数集,包括图像序列的所有信息,如图像尺寸、视频格式等。
  • 0x08 表示 PPS,图像参数集,包括图像的所有分片的相关信息,如图像类型、序列号等。

传输视频流之前,先传输这两类参数,用于解密。为保证容错性,每个 I 帧前都会传输两类参数。

如果NALU Header里表示的类型是SPS或PPS,则Payload里就是真正参数集的内容;如果类型是帧,则Payload里是真正的视频数据。保存的是帧里的一片,每片是I帧还是P帧,在片结构里的Header里的类型说明,然后是片的内容。

2、推流:如何把数据流打包传输到对端?

使用RTMP协议。RTMP基于TCP,双方需要建立一个TCP的连接。

RTMP为什么需要建立一个单独的连接?因为需要商量一些事情,保证之后传输的正常进行。主要商量版本号和时间戳。握手之后,双方传递一些控制信息,如Chunk块的大小 、窗口大小等。

真正传输数据的时候,还需要创建一个流Stream,然后通过Stream推流publish。

推流的过程,就是将NALU放在Message里传送,称RTMP packet包。Message的格式如下图所示。

在这里插入图片描述

发送时,去掉NALU的起始标识符。将SPS和PPS参数集封装称一个RTMP包发送,然后发送一个个片的NALU。

RTMP收发数据时,将Message拆分成Chunk发送,每个Chunk中带Message ID。

推流过程如下图所示:
在这里插入图片描述

3、为降低服务器压力,需要有分发网络。

分发网络分为中心和边缘两层。边缘层离用户比较近。中心层时流媒体服务集群,负责内容的转发、转码。智能负载均衡系统,根据用户的地理位置信息,就近选择边缘服务器,为用户提供推/拉流服务。

在这里插入图片描述
4、拉流:观众的客户端如何看到视频?

客户端通过RTMP拉流过程如下图所示:
在这里插入图片描述
先读到的是H.264的解码参数,如SPS和PPS,然后对收到的NALU组成一个个帧,进行解码,交给播放器播放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值