1.采集
对于采集的话,iOS是比较简单的,Android则要做些机型适配工作,PC最麻烦,需要各种系统驱动的支持,出了问题特别不好处理,建议放弃PC只支持手机直播,目前几个新进的直播平台都是这样的。
2.前处理
现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要用到GPU编程,需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。难点不在于美颜效果,而在于GPU占用和美颜效果之间找平衡。GPU虽然性能好,但是也是有功耗的,GPU占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧,因此尽量准备一台专门用来直播的手机,并保证该手机的内存和运行速度能跟得上需求。
3.编码
肯定要采用硬编码,编码要在分辨率,帧率,码率,GOP等参数上找到最佳平衡点。
4.传输
传输需要交给专业的CDN服务商,成本方面,假设2W PCU大约每月带宽费用100万左右,因为清晰流畅的720p要1.5mbps左右。CDN只提供了带宽和服务器间传输,发送和接收端的网络连接抖动缓冲还是要自己保证的。
5.解码
也肯定要硬解码,目前手机普遍支持硬解了。
6.渲染
这个难点不在于绘制,而在于音画同步。此外音频还有一些流程要点,比如降噪,音频编码器的选择,各种蓝牙耳机,各种播放模式的适配等,如果你想做主播和观众连线聊天,还有个回声消除问题。