android
直播基础知识ios
直播为何火算法
基础条件成熟浏览器
4G+wifi服务器
软硬件水平提高网络
游戏行业的培养工具
弹幕文化测试
实时互动优化
文字网站
图片
视频
人性的驱动
窥探欲
炫耀
虚荣
色
直播的特色
点播
视频网站看电视剧
文件存在服务器上
指定节目播放
直播
直播网站看主播
数据实时发送
内容能够更改
直播的流程
推流端
采集 8000*216*0.02 = bit /8 = byte
音频采集
采样率
模拟信号 转化为 数字的过程
越大 音频质量越高
例如 8kHz
位宽
通常8位
例如 16bit
声道数
单/双
例如:双
音频帧
2.5ms-60ms 约为一帧
例如20ms
图像采集
分辨率
长*宽
采样频率
采集格式
传输通道
采集源
摄像头
屏幕录制
文件推流
android采集
setPreviewCallback
MediaRecorder
机型适配
ios采集
AVFoundation.framework
pc采集
mjpeg-streamer
摄像头
前处理
视频处理
美颜
美白——算法识别皮肤轮廓,调整色值
磨皮——模糊处理 均值模糊、高斯模糊、中值模糊
滤镜
GPUImage
水印
图像与水印图片的合并
音频处理
混音
伴奏
音频信号的叠加,采样值溢出的处理
降噪
20Hz - 2000Hz
傅里叶变换、滤波法
特效
变声
改变音色、色调, SoundTouch
编码
必要性
压缩数据
减小传输时间
编码原理
空间冗余
相邻元素之间的相关性
时间冗余
相邻图像之间的内容类似
编码冗余
像素值出现的几率不一样
视觉冗余
视觉对细节的不敏感性
H264 编码
NALU:网络提取层单元
SPS:包括了一个图像序列的全部信息
PPS:包含了一个图像序列全部片的信息
I帧:帧内编码帧
P帧:前向预测编码帧
B帧:双向预测编码帧
AAC 音频
FLV,TS封装格式
推流
推流协议
RTMP
优势
CDN支持良好
协议简单易实现
缺点
基于TCP,传输成本高
不支持浏览器推送
Adobe私有协议
WebRTC
W3C标准
基于udp
CDN支持较差
UDP自定义协议
定制化空间大
协议私有化
开发成本高
CDN支持不太好
推流优化思路
保证音频的传输
调整码率、FPS、分辨率
减小传输的数据
服务端
转码
适应不一样网络带宽
适应不一样终端处理
适应不一样的用户需求
为直播平台提供增值服务
直播为实时转码,对图像计算要求较高,保证音画同步
录制
截图
制做封面
鉴黄
播放端
拉流
HTTP-FLV 即时性较高,互动性需求
HLS 回放需求,跨平台需求
RTMP 即时性较高,互动性需求
解码
编码的逆过程
从音频数据提取原始数据
硬解码
速度快
不易发热
软解码
渲染
视频画面的显示
声音的播放
音画一致
互动系统
聊天
弹幕
礼物
平台收入来源
增长画面感,提升互动效果
自定义消息
关注
点赞
直播开发的辅助工具
推流端OBS Studio
播放端 CUTV测试工具
流信息展现丰富
可设置缓冲时间
网页版
softe AAC Converter 转化为aac音频
H264BSAnalyzer 分析H264视频格式
FlvParse -分析FLV
yuvplayer -播放yuv文件