音视频与直播
万人直播架构
直播产品种类
- 泛娱乐化直播
- 实时互动直播
泛娱乐化直播架构
实时互动直播架构
CDN网络
CDN网络为了解决用户访问网络资源慢而出现的。
为什么访问慢:
- 访问链路长,比如从中国北部到南部
- 人为因素,运营商切割,电信用电信,联通用联通
CDN构成
边缘节点:用户从边缘节点上获取数据,让用户访问链路变短
二级节点:主干网节点,主要用于缓存,减轻源站压力
源站:CP(内容供应方)将内容放到源站
CDN网络架构
搭建直播系统
常用工具
- ffmpeg
- webrtc
- ffplay:播放器
- flashplayer:播放rtmp
搭建流媒体服务
- 准备流媒体服务器
- 编译并安装 Nginx 服务
- 配置 RTMP 服务并启动 Nginx 服务
音频知识
声音三要素
- 音调:就是音频,男生 < 女生 < 儿童
- 音量:振动的幅度
- 音色:与材质有很大的关系,本质是谐波
音量与音调
音色(音品)
心里声学原理
人类听觉范围
音频压缩可以只留下可听声波数据
听觉/发生范围
人的正常说话,蝙蝠听不到。
音频量化与编码
音频量化过程
量化基本概念:
采样大小:一个采样用多少个bit存放,常用的是16bit
采样率:采样频率8k、16K、32K、44.1K、48K
声道数:单声道、双声道、多声道
码率计算
一个PCM音频流的码率:采样率 * 采样大小 * 声道数
例如:
采样率为44.1KHz,采样大小为16bit,双声道的 PCM 编码的WAV文件,
码率是:44.1K * 16 * 2 = 1411.2Kb/s
音频压缩
两种方法:
- 消除冗余数据(有损)
- 哈夫曼无损编码
音频冗余信息
压缩的主要方法是去除采集到的音频冗余信息,所谓冗余信息包括人耳听觉
范围外的音频信号,以及被掩蔽掉的音频信号
信号的掩蔽可以分为频域掩蔽
和时域掩蔽
频域掩蔽效应
时域掩蔽效应
音频编码过程
音频编解码器
常见的音频编解码器
- OPUS
- AAC
- Vorbis
- Speex:支持回音消除
- iLBC
- AMR
- G.711
RTMP不支持OPUS,但是支持AAC。
网上评测结果:OPUS > AAC > Vorbis
音频编码器性能对比
音频编码器选择
泛娱乐化直播选择AAC
实时互动直播选择OPUS
泛娱乐化和实时互动融合,则需要AAC和OPUS互转
实时互动和电话系统互联,则用到G.711、G.722
AAC(Advanced Audio Coding)
AAC的目的就是取代MP3格式。
MPEG-4标准出现后,AAC加入了SBR技术和PS技术
AAC优势
- 直播系统90%以上都使用AAC
- RTMP不支持OPUS,支持AAC
- AAC编解码质量非常高,可以做到音频高保真
AAC 规格
目前常用的规格有:AAC LC、AAC HE V1、AAC HE V2
- AAC LC(Low Complexity):低复杂度,码流128k
- AAC HE:AAC LC + SBR (Spectral Band Replication),码流64K
- AAC HE V2:AAC LC + SBR + PS(Parametric Stereo),码流32K
AAC格式
ADIF(Audio Data Interchange Format):这种格式只能从头开始解码,常用在磁盘文件中
ADTS(Audio Data Transport Stream):这种格式每一帧都有一个同步字(头),可以在音频流任何位置开始解码,它类似于数据流格式
AAC编码库
libfdk_AAC > ffmepg AAC > libfaac > libvo_aacenc
应该开始看 视频只是 https://www.imooc.com/video/16781
来源:https://www.cnblogs.com/minbo/p/12285772.html