一、直播的本质
实时推送/拉取音视频数据
二、视频直播流程
视频直播的流程可以分为如下几步:
(1)收集
(2)处理
(3)编码和封装
(4)推流到服务器
(5)服务器流分发
(6)播映器流播映
1、收集
视频的收集涉及两方面数据的收集:音频收集和图画收集,它们分别对应两种完全不同的输入源和数据格局。
(1)两个传感器:
CCD:图画传感器,用于图画收集和处理,把图画转换为电信号
拾音器:声响传感器,用于声响收集和处理,把声响转换为电信号
(2)格局:
视频采样数据 : 一般都是 YUV 或 RGB 格局
音频采样数据 :一般都是PCM格局
因为所收集的内容非常大,所以需要进行紧缩。常见的音频紧缩格局有:MP3,AAC,HE-AAC,Opus,FLAC,Vorbis (Ogg),Speex 和 AMR等。视频编码紧缩成 H.264 等格局的数据分发出去。常见的视频封装格局有:MP4、3GP、AVI、MKV、WMV、MPG、VOB、FLV、SWF、MOV、RMVB 和 WebM 等。
2、处理
视频或者音频完成收集之后得到原始数据,为了增强一些现场作用或者加上一些额定的作用,咱们一般会在将其编码紧缩前进行处理,例如:美颜及水印。各种美颜和视频增加的App都是根据GPUImage结构实现。
3、编码和封装
视频编码的含义:原始视频数据存储空间大。中心思维就是去除冗余信息。
常见的视频编码器:
(1)H.264/AVC
(2)HEVC/H.265
(3)VP8
(4)VP9
(5)FFmpeg :是一个跨平台的开源视频结构,能实现如视频编码,解码,转码,串流,播映等丰富的功用。其支撑的视频格局以及播映协议非常丰富,简直包含了所有音视频编解码、封装格局以及播映协议。
封装:是把编码器生成的多媒体内容(视频,音频,字幕,章节信息等)混合封装在一起的规范。
常见的封装格局:
(1)AVI 格局(后缀为 .avi)
(2)DV-AVI 格局(后缀为 .avi)
(3)QuickTime File Format 格局(后缀为 .mov)
(4)MPEG 格局(文件后缀可所以 .mpg .mpeg .mpe .dat .vob .asf .3gp .mp4等)
(5)WMV 格局(后缀为.wmv .asf)
(6)Real Video 格局(后缀为 .rm .rmvb)
(7)Flash Video 格局(后缀为 .flv)
(8)Matroska 格局(后缀为 .mkv)
(9)MPEG2-TS 格局 (后缀为 .ts)