首先第一步,采集,iOS是比较简单的,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC只支持手机主播,目前几个新进的直播平台都是这样的。

第二步,前处理,现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜演算法需要用到GPU编程,需要懂图像处理演算法的人,没有好的开源实现,要自己参考论文去研究。难点不在于美颜效果,而在于GPU占用和美颜效果之间找平衡。GPU虽然性能好,但是也是有功耗的,GPU占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧,iPhone6尤其明显,因为iPhone6的CPU和前置摄像头很近。

第三步,编码,肯定要采用硬编码,软编码720p完全没希望,勉强能编码也会导致CPU过热烫到摄像头。硬编码兼容性又是一个大坑,android上要有人去填。编码要在解析度,帧率,码率,GOP等参数设计上找到最佳平衡点。

第四步,传输,自己做不现实,交给CDN服务商吧,也就是贵了点,相信有志于做直播平台改变世界的你不差钱。假设2W PCU大约每月带宽费用100万左右,因为清晰流畅的720p要1.5mbps左右。CDN只提供了带宽和伺服器间传输,发送和接收端的网路连接抖动缓冲还是要自己写的。不想要卡顿,必然要加大缓冲,会导致延迟高,延迟高影响互动性,要做权衡。

要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于移动直播这种实时性要求非常高的场景,RTMP也成为移动直播中最常用的流传输协议。最后通过一定的Qos演算法将音视频流数据推送到网路断,通过CDN进行分发。在直播场景中,网路不稳定是非常常见的,这时就需要Qos来保证网路不稳情况下的用户观看直播的体验,通常是通过主播端和播放端设置缓存,让码率均匀。另外,针对实时变化的网路状况,动态码率和帧率也是最常用的策略。

当然,在网路传输方面全部自己来做基本不现实,找提供推流服务的CDN服务商提供解决方案是最好的选择。据了解,阿里云是国内唯一能自研CDN缓存伺服器的厂商,性能非常有保障。当然,大多数直播平台都会同时接入多个视频云服务提供商,这样可以做拉流线路互备,对推流后视频集群再进行优化也可提高直播的流畅性和稳定性。

那么如何选择一个靠谱的源码公司呢?

1.技术

2.安全、稳定、流畅、

3.性价比

对于直播源码的开发有著很大的经验与保障。个人自建一个直播平台几乎是不可能完成的,一个直播系统的搭建需要各部分技术人员互相配合完成的,个人自建的需要付出很大的时间精力和财力,而且难以保证后期平台运营的稳定。专业的团队会有更稳定的保障。

推荐阅读:

相关文章