Android 直播与音视频通话有什么区别? - chuwuwang/ReadingNote GitHub Wiki
直播
直播是1个主播 + N个观众(支持千万级)组成的在线直播。
- 主播将音视频数据上传到推流服务器。
- 推流服务器和拉流服务器都是处于内网,推流服务器将主播的流传输到拉流服务器。
- 观众最后从拉流服务器下载音视频数据。(观众端进行拉流)
直播需要经过下列过程:
总结一下:
直播中服务器起着转发视频流的角色,如果中途服务器挂了,直播将会中止。
那么音视频通话呢?
音视频通话
音视频通话就是客户端A和客户端B进行音视频交流。
音视频通话流程(A和B都通过长连接与IM服务器保持联系)
- A将呼叫B的请求(携带B在服务器中的唯一字符)通过长连接发送给服务器。
- 服务根据唯一字符查找到与B的长连接,告诉B有人想与你视频通话,你接不接受。
- B接受后,A和B直接建立音视频点对点通信,视频流不再走服务器。
总结一下:
音视频服务器起着介绍的角色,主要是在最开始用来查找连接的作用。当A与B建立点对点通信时,就不再需要服务器了,意味着服务器挂了,也不会影响通话。
面试时直播和音视频最大区别:
直播需要服务器转发视频流,而音视频通话不需要转发数据流。