直播知识整理
目录
直播为何这么火
- 网络水平大幅提升,4G+WIFI使得网络传输畅通
- 软硬件水平提升
- 游戏行业直播的加持与培养
- 流行的弹幕
- 人的窥探欲,虚荣心等
- 能够满足实时互动的需求
直播的盈利点
- 打赏抽成
- 商品交易分红
- 付费直播,如体育赛事等
- 会员增值服务
- 广告收入
直播系统
推流端
采集
- 采集分为音频采集和图像采集
音频采集
音频采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,单位赫兹(Hz)
位宽,一般为8位,16位,用来记录采样点的位数,位数越大,记录的数据越精细,效果越真实
声道数,单通道,双声道等
音频帧,无确定大小,一般以一段时间大小的数据为一帧,与视频帧的概念有一定区别
图像采集
分辨率,图像的像素大小
帧率,每秒的帧数
采集格式,一般为YUV格式
传输通道,一般为单通道,特殊的如VR可为多通道(多角度)
采集源
可从摄像头,屏幕录制,麦克风,文件推流等采集数据
各平台采集方式
Android:MediaRecorder
iOS:AVFoundation.framework
PC:mjpeg-streamer
前处理
视频
美颜 (美白:识别皮肤,调整色值;磨皮:模糊处理,均值模糊,高斯模糊,中值滤波)
滤镜 (GPUImage)
水印
音频
混音 (音频信号的叠加,采样值溢出的处理)
降噪 (傅里叶变换)
特效(音色,音调改变,SoundTouch)
编码原理
- 空间冗余(相邻像素之间的相关性)
- 时间冗余(相邻图像之间的内容相似)
- 编码冗余(像素值出现的概率不同)
- 视觉冗余(视觉对细节的不敏感性)
流媒体协议
- RTMP: CDN支持良好,协议简单易实现,基于TCP,传输成本高,Adobe私有协议
- WebRTC: W3C标准,基于UDP,CDN支持较差
- UDP自定义协议:订制化空间大,开发成本高,CDN不友好
服务端
转码
适应不同的网络带宽,不同的终端处理能力和不同的用户需求
录制
国家规定直播需要录制保存一定时间,以备查验
可以作为后续点播来源
常见的拉流协议
- RTMP HTTP-FLV HLS
rtmp,http-flv:即时性要求较高或有互动需求
hls:有回放需求,或跨平台需求
辅助工具
推流端工具–OBS Studio
支持桌面和文件推流
支持多画面多音频混合推流
支持录制
开源播放端–CUTV测试工具
流信息展示丰富
可设置缓冲时间
在线网页版- 流媒体服务–nginx-rtmp-module
- Softe AAC Converter
- H264BSAnalyzer
- FlvParse
- yuvplayer
- vlc
直播优化方案
- 保证音频传输,即时看不到画面,也可以听到声音
- 调整码率
- 适当降低fps
- 适当降低分辨率
- 想尽办法减少传输数据
直播SDK
参考
- 本文主要是根据慕课网视频记录笔记整理形成。