直播技术总结

直播现状

直播平台200+,用户规模3.25亿,市场规模已到90亿。

基础条件成熟

4G+Wifi 软硬件水平提升,游戏行业的培养,弹幕文化。

人性的驱动

窥探,炫耀,虚荣,色。

实时互动

文字,图片,视频。

赢利点

  1. 直播打赏抽成 观众送直播礼物
  2. 商品交易分红 真实的商品展示
  3. 付费直播提成 独家资源的直播
  4. 会员增值服务 广告收入

直播基本流程

推流端

采集,前处理,编码,推流

服务端

转码,录制,截图,鉴黄

播放端

拉流 解码 渲染

互动系统

聊天 礼物 点赞

直播流程之采集(一)

音频采集

PCM 原始数据
采样率,位宽,声道数,音频帧
音频帧大小计算

例如 采样率 8KHZ ,双通道,位宽 16bit ,20ms为一帧
一个音频帧大小为:
8000 * 2 * 16 * 0.02=5120bit=640Byte

图像采集

YUV 原始数据
分辨率,采样频率,采集格式,传输通道

采集源

摄像头 屏幕录制 文件推流

直播流程之采集(二)

Android 端采集

视频

Camera setPreviewCallback

音频

MediaRecorder 原始PCM

主要工作量机型适配

IOS 采集

AVFoundation.framework

PC采集

mjpeg-streamer 摄像头

直播流程前处理(一)

视频处理内容

美颜,滤镜,水印

音频处理内容

混音,降噪,特效

直播流程之前处理原理(二)

  1. 美白——识别皮肤,调整色值
  2. 磨皮——模糊处理 均值模糊,高斯模糊,中值滤波
  3. 水印——图像与水印图片的合并
  4. 滤镜——GPUImage

直播流程之前处理原理(三)

  1. 混音——音频信号的叠加,采样值溢出的处理
  2. 降噪——傅里叶变换
  3. 变声——音色,音调 SoundTouch

直播流程之编码和封装(一)

编码的必要性

压缩数据存储空间,减少传输时间

编码的原理

  • 空间冗余:相邻像素之间的相关性
  • 时间冗余:相邻图像之间的内容相似
  • 编码冗余:像素值出现的概率不同
  • 视觉冗余:视觉对细节的不敏感性
分辨率=1280*720  视频格式:yuv420sp  fps=30帧/s
一秒的数据量 1280 * 720 * 1.5bit*30=5M

常见的图像编码器

H264, H265, VP8, VP9

H264 编码知识

  • NALU:网络提取层单元
  • SPS:包括了一个图像序列的所有信息
  • PPS:包括了一个图像所有片的信息
  • I帧:帧内编码帧
  • P帧:前向预测编码帧
  • B帧:双向预测编码帧
  • GOP:Group of Picture 两个I帧之间的图像组

常见的音频编码器

AAC,PCM,WAV,OGG

常见的封装格式

FLV,TS,AVI 等。

直播流程之推流与优化(一)

RTMP

实时消息传输协议,CDN支持良好,协议简单易实现。
基于TCP,传输成本高,Adobe 私有协议,不支持浏览器推送

WebRTC

w3c标准,基于UDP,CDN较差

UDP自定义协议

定制化空间大,协议私有化,缺点:开发成本高,CDN不友好。

直播流程之推流与优化(二)

优化思路

  1. 保证音频的传输
  2. 调整码率,FPS,分辨率
效果 码率 FPS
流畅度 负相关 正相关
清晰度 正相关 负相关

3. 减少传输的数据
I帧丢失,P帧不传输。

直播流程之服务端

转码

适应不同的网络带宽,不同的终端处理能力和不同的用户需求为直播平台提供很多增值服务

录制,截图

录制用于回放,截图用于封面

鉴黄

基于深度学习的图片识别技术,对直播流进行控制

直播流程之播放(一)

常见的拉流协议

RTMP,HTTP-FLV,HLS
RTMP,HTTP-FLV 延迟较小,1-3s,HLS 延迟较大,适用于回看。

直播流程之播放(二)

解码

编码的逆过程,从音视频的数据中提取原始数据

渲染

视频画面的显示,声音的播放

直播流程之交互系统

聊天

用户和主播互动的主要方式和群聊功能类似

礼物

增强了用户和主播之间的互动交流
平台主要的收入来源

直播开发辅助工具

推流端

OBS Studio

开源,支持桌面和文件推流,支持多画面,多音频混合推流,支持录制

播放端

  1. VLC,INA
  2. Softe AAC Converter——转化为aac音频
  3. H264BSAnalyzer——分析H264视频格式
  4. FLVParse——分析FLV文件
  5. yuvplayer——播放yuv文件

直播SDK 对比

功能点 阿里云 腾讯云 欢聚云 金山云 UCloud 七牛云 声网
采集 麦克风,摄像头
前处理 美颜,连麦 美颜混合连麦 美颜美声水印连麦动态贴纸 美颜混音动态贴纸 美颜水印
编码 H.264 AAC
推流
转码
录制 支持 支持 第三方 支持 支持
截图 支持 支持 第三方 支持 支持
鉴黄 支持 第三方 支持 支持
播放 支持 支持 支持 支持 支持 支持 支持

你可能感兴趣的:(Android,音视频开发专题)