腾讯、阿里音视频技术解读,深入拆解微信、钉钉音视频通话技术
正文开始之前我们先来看一道腾讯面试题:
面试官: 直播与音视频通话有什么区别?
心理分析:面试官想考的是你对音视频开发有没有全面的了解,以及直播与通话整套实现体系的区别(客户端到服务端)
直播是1个主播+N个观众(支持千万级)组成的在线直播
主播将音视频数据上传到推流服务器 推流服务器和拉流服务器都是处于内网,推流服务器将主播的流传输到拉流服务器。 观众最后从拉流服务器下载音视频数据(观众端进行拉流)
直播需要经过下列过程:
总结一下:
直播中服务器起着转发视频流的角色,如果中途服务器挂了,直播将会中止
那么音视频通话呢?
音视频通话就是客户端A和客户端B进行音视频交流
音视频通话流程(A和B都通过长连接与IM服务器保持联系)
A将呼叫B的请求(携带B在服务器中的唯一字符)通过长连接发送给服务器 服务根据唯一字符查找到与B的长连接,告诉B有人想与你视频通话,你接不接受 B接受后,A和B直接建立音视频点对点通信,视频流不再走服务器
总结一下:
音视频服务器起着介绍的角色,主要是在最开始用来查找连接的作用。当A与B建立点对点通信时,就不再需要服务器了,意味着服务器挂了 也不会影响通话
面试时直播和音视频最大区别:
直播需要服务器转发视频流,而音视频通话不需要转发数据流
顺着这个思路回答,面试官不服都不行~
而这关过了,薪资想要低点都很难
音视频开发者比普通开发高出不少,Android只要是跟音视频沾边的岗位,薪资都比普通Android开发高出30%
直播、点播、视频会议等等都是这些年才兴起的项目,岗位众多但开发者却少得可怕
目前市场行情就是几家头部公司互相挖人,对人才的竞争属于存量搏杀,现在企业想要音视频人才基本上是内部培养,因为新人入场的真的太少了……
也就导致了目前市场上,很多HR都面临着30-60k高薪还招不到合适的音视频人才
其根本原因有下面两点:
音视频知识庞杂,通俗易懂的资料非常少; 网上博客,视频充斥着大量的错误信息,使得很多初学者掉到坑里就爬不出来了。
所以我们到底该如何学习音视频技术呢?
我特别邀请到了前华为、OPPO 、阿里资深架构师 David,为大家带来《音视频通话与音视频会议》系列直播分享,将带大家从H264编码核心原理入手,从零实现微信一对一视频通话,手写钉钉视频会议。
评论