流媒体动态码率自适应方案
流控(动态码率调整)机制:
- 缓冲区(视频输入、网络收发)
- socket缓存监测
- MTU控制
- 丢帧处理与检测
- 调整码率(根据目前的网络丢帧状况,来决定码率降低幅度)
- I、P帧处理,如果发现收到的P帧不完整,立即丢掉该P帧;如果发现收到的I帧不完整,丢掉整个GOP。
根据网络实时状况,上层丢帧来降低码率;定时判定网络状况,根据多次定时的网络结果,来深层次调整码率。
一、实时根据网络状况来调整码率。
如果网络状况不好,采用上层降低码率方案。暂时抛掉部分原始帧,这些帧不参与编码;通过这种最上层的简单方式来降低码率。
二、深层次调整码率判定
分析一下,丢帧的程度与持续时间。
2.1 网络状况一般
维持目前的状况,不做特殊深层次处理。
2.2 网络状况较差
深层次降低码率方案
1)降低源头帧率(譬如采样帧率,由25变为20)。
2)降低目标分辨率(譬如480360的图像改为400300的码率)
降低幅度,由网络状况决定,不采用连续阶梯降码率。
2.3网络状况良好
在长时间内观测到网络状况良好时候,可以发一些重复测试图片或者无效测试数据来检测是否需要丢帧。如果会丢帧,则不再发送重复图片;否则,采用深层次调整码率的方案缓慢提升码率。
注意:对于降低码率而言,一般要快速、幅度大一些;对于提升码率而言,一般要缓慢、幅度小一下。提升码率比降低码率,更为慎重!
————————————————
版权声明:本文为CSDN博主「勇往直前之人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wghhdzwzqbx02/article/details/77775991
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】