直播源码时一对一直播开发的基石, 所以开发一套一对一直播系统基石就要靠直播源码打牢, 今天小编就给大家仔细讲一下直播源码开发中推流的问题, 因为这直接影响到用户对直播 App 的体验.
一对一直播源码开发推流端的设计要点
1. 帧率和码率自适应
举个简单的例子, 在推流过程中如果网络卡了怎么办呢? 可以先降低一点帧率或者码率, 使得流可以正常推上去, 以避免出现卡顿. 当然, 在码率自适应的时候, 是可以直接回馈给编码器的, 让编码器动态调整自己的码率从而保证质量无损, 传出来的视频码率下降, 视频平滑. 帧率的控制就比较简单了, 如果发现网络卡顿就会直接反馈给帧率控制模块. 在采集时也会做一些丢弃的操作, 主要目的为了将发送的带宽降低.
2. 软硬自适应
这里的软硬指的是 "软硬件编码", 比如硬件编码的优点就是手机不会发烫, 但是音视频很难同步, 如果用 MediaCodec 的话, 版本兼容就会出现问题. 软件编码优点就是码率低, 画质好, 除了 CPU 容易发烫以外. 目前市场上有非常多的热门机型都属于低端机型, 软编无法支撑就只好改成硬编. 毕竟硬编是个 "体力活", 所以适配的机型肯定是有限的, 谁都无法保证可以全平台, 全机型的适配硬编. 这个时候, 就可以采取自适应的办法, 将那些无法适配合的进行软编. 这样一来, 就可以达到 99% 以上的适配率了.
3. 算法自适应
我们所说的推流端, 它主要的任务是将更好的画质在网络环境有限的情况下退出来, 那么怎样才能做到呢? 相信大家肯定听说过 H.264 和 H.265 两种编码标准, h.265 相比起 h.264, 可以省掉 30% 的带宽. 虽然 30% 看起来并没有很多, 但是对于直播平台来说这可是节省了非常大的一笔带宽成本 (虽然主播更贵一些). 但是在移动端的推流还是存在不同的, 30% 是从 480P 到 720P 的变化. 可以理解为, 如果本来只能推 480P 的画质, 但是经过 H.265 这种编码后可以推到 720P 的画质. 对于直播平台来说大部分主播和用户的基本需求就是网络足够好, CPU 足够好, 所以在此场景下如果能做到算法自适应, 那么就可以推出更好的画质.
小编认为优质的一对一直播源码只是开发直播 App 成功的第一步, 过程中还有很多需要注意的问题, 还有很多不容忽视的开发细节, 推流就是其中重要的组成部分, 总之, 开发一对一直播系统, 各个方面都要严格对待.
来源: http://www.bubuko.com/infodetail-3092789.html