直播-流媒体-音视频技术学习笔记整理

直播的原理:
主播端采集,渲染,编码,封装–>网络传输到流媒体推流器–>CDN—>观众端解码播放
其中每个过程相关的技术整理如下:(仅个人总结一些要点,还有很多文章详细介绍原理或名称可自行百度)

过程相关技术
采集[1-视频]视频采集–CCD 成本高-质量好,CMOS成本低质量差,采集的原始视频数据是YUV或RGB格式,文件很大
采集[2-音频]音频采集-拾音器-声电转换装置(咪头),音频放大电路,采集的原始音频数据是PCM
渲染滤镜,美颜,磨皮,OpenGL渲染
编码[1-码率]码率选择-CBR 固定码率会造成马赛克, VBR 可变码率适合存储不适合传输,ABR 适合网络传输,CVBR静止时码率降低运动时码率升高
编码[2-视频]1)视频编码格式H264,H265,H265压缩率更高,码率更低,更节省带宽,但对播放器要求较高,解码复杂度升高, 2)封装格式有TS,AVI,MP4等,3)视频编码原理-目的是减少码率,利于传输和存储,一般使用混合编码,变换编码,运动估计和运动补偿,熵编码,(变换编码消除帧内冗余,运动估计和运动补偿去除帧间冗余,熵编码进一步提高压缩效率)
编码[3-音频]1)音频编码格式AAC,opus等,2)封装格式MP3,AAC等,3)编码原理-将每个声道中的采样信号映射到频域中,计算掩蔽门限值,决定从公共比特池中分配给该声道中不同频率域中多少比特数,再进行量化和编码,最后加入控制参数和辅助数据.
传输传输协议rtmp,hls, http-flv, 控制信令-sip,snmp; 对比- 1)rtmp(基于TCP长链接,每个时刻收到数据后立刻转发,延时1-3秒,web-H5需要插件,跨平台较差),2)hls 基于HTTP短链接, 10秒一切片,并更新秒M3u8索引,延时5-20秒,支持H5, 不会被墙,可以平滑切换码率适应带宽,iOS平台天然支持, 3)HTTP-flv, 基于HTTP长链接,收到立刻转发,延时1-3秒,H5需要插件,跨平台较差,且拖动体验差
CDN分发源站, CDN节点, 网状拓扑结构, P2P分发
播放原理: 数据流- 解协议(去掉播放,暂停信令) - 解封装(将flv分离成MP4,AVI压缩数据) - 音视频解码- (解成原始的视频YUV/RGB,音频PCM)- 音视频同步;(本地无需解协议,直接解封装-解码音视频-音视频同步)
常用工具FFmpeg,ffplay, ffprobe,可以分析流参数,wireshak抓包
画面质量因素色调,饱和度,锐化,亮度, 清晰度,码率,帧率, 音画同步
稳定性策略 [1-推流]采集时码率,帧率根据网络自适应,转码时转不同码率,CDN分发时就近分发, 动态码率,追帧,丢帧策略
稳定性策略[2-拉流播放]软硬解结合, 系统播放器,flash播放器,定制播放器结合,协议定制,控制程序包大小, 拉流时分辨率可选
保证直播的质量[1-分发质量]1)分发内容保证- 直播源站,推流器内容分发之前进行存储,主备,分发后实时检查源站质量并进行切换,2)分发流畅保证: 分布式CDN架构和智能调度,确保分发的流畅,可基于AI流量预测进行预调度
保证直播的质量[2-画面质量]根据不同硬件配置和网络动态调整最佳分辨率,帧率,码率,提高硬件利用率,合理分配帧间码率和帧内码率.
保证直播的质量[3-播放质量]获知服务器慢速比,卡顿率,可用性监控,定时定位失败原因,软硬解码结合
保证推流稳定性[1-稳定性]1)收流稳定性 - 采取多线收流,主备转码器,多线专线等策略,2) 降级方案提前演练,开关,脚本提前准备 3) 容灾- 多机房容灾部署,采用多流合并,媒体处理环节-转码,录制,切片,回访等做好扩容方案,异常时秒级切换,重点直播间双路备份.
保证推流稳定性[2-压测]1)基本压测找出瓶颈,2)全链路压测 3)摸清容量,增加机器
保证推流稳定性[3-监控]1)在线人数,系统压力可视化 2)直播间,消息通道全链路可用性监控,每一路流实行秒级监控,异常时秒级切换3)内容监控-鉴黄,非法信息审核4)业务数据监控-QPS,load获取在线用户数,在线人数,消息量记录
保证推流稳定性[4-消息处理]1)消息投递先过滤,队列削峰填谷,2)多线程处理消息,3)房间分桶降低下行压力
常见问题排查[1-卡顿]画面卡顿根本原因是-帧率小于10,可能的原因有,推流端性能不足编码帧率下降,播放端性能不足解码帧率下降,带宽不足数据包阻塞等
常见问题排查[2-花屏]花屏根本原因是渲染未完成或数据包重复乱序.
测试音视频质量的算法PEVQ算法,PEAQ算法,PESQ算法,
RTC和IM的区别区别: IM是即时通信要求可靠(采用TCP), RTC是实时通信要求低延迟和接通率(采用UDP)
附上比较详细的一些讲解文章

各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
直播技术学习笔记(直播协议+流媒体服务器+音视频处理+FFmpeg)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值