Android 直播与音视频通话有什么区别? - chuwuwang/ReadingNote GitHub Wiki

直播

直播是1个主播 + N个观众(支持千万级)组成的在线直播。

  • 主播将音视频数据上传到推流服务器。
  • 推流服务器和拉流服务器都是处于内网,推流服务器将主播的流传输到拉流服务器。
  • 观众最后从拉流服务器下载音视频数据。(观众端进行拉流) 直播需要经过下列过程:

总结一下:

直播中服务器起着转发视频流的角色,如果中途服务器挂了,直播将会中止。

那么音视频通话呢?

音视频通话

音视频通话就是客户端A和客户端B进行音视频交流。 音视频通话流程(A和B都通过长连接与IM服务器保持联系)

  • A将呼叫B的请求(携带B在服务器中的唯一字符)通过长连接发送给服务器。
  • 服务根据唯一字符查找到与B的长连接,告诉B有人想与你视频通话,你接不接受。
  • B接受后,A和B直接建立音视频点对点通信,视频流不再走服务器。

总结一下:

音视频服务器起着介绍的角色,主要是在最开始用来查找连接的作用。当A与B建立点对点通信时,就不再需要服务器了,意味着服务器挂了,也不会影响通话。

面试时直播和音视频最大区别:

直播需要服务器转发视频流,而音视频通话不需要转发数据流。