概述

将实况场景信息实时编码压缩后进行网络输出发布,用户播放分发后的流媒体数据的过程。

过程

  1. 经过输出设备得到原始的采样数据—视频数据和音频数据
  2. 使用硬编码(对应系统的API)或软编码(FFMpeg等)来编码压缩音视频数据
  3. 然后根据不同的封装格式(如FLV、TS、MPEG-TS)进行封装打包
  4. 通过不同的传输协议(如RTMP、RTP等)将流上传到服务器
  5. 服务器进行节点分发(CDN)
  6. 用户侧通过不同的传输协议(如RTMP、HLS、HTTP-FLV等)获取流数据
  7. 同步骤3、2反向解封装和解码音视频数据
  8. 进行渲染播放

从过程中可以看出,每一步对推流效果的影响都是很大的,比如选取好的采集设备获取更优质的原始数据。用高配置的电脑并采用最先进的编码策略(如HEVC,当然播放端也需要配合支持),推流协议选取延迟相对较低的(如RTMP、HTTP-FLV)

鉴于大部分内容属于多媒体领域通用的技术,本章节仅对直播部分(直播协议、服务等)做详细介绍,其它内容可参考其它大章。