直播端网络传输的实现

编程

今天继续为大家简单介绍一下直播端网络传输的技术,图玩智能为企业提供直播平台的二次开发服务,专业搭建更具完善的直播系统,欢迎随时咨询www.toivan.com.

单对单模式主要是怎么通过路由路径优化手段达到两点之间最优,这方面 SKYPE 首先提出基于 P2P 的 Real-time Network 模型。而 单对多模式是一个分发树模型,各个客户端节点需要就近接入离自己最近的服务器,然后在服务器与服务器构建一个实时通信网络。

基础

推流

所谓推流,就是将我们已经编码好的音视频数据发往视频流服务器中。实时音视频系统都是一个客户端到其他一个或者多个客户端的通信行为,这就意味着需要将客户端编码后的音视频数据传输到其他实时音视频系统都是一个客户端到其他一个或者多个客户端的通信行为,这就意味着需要将客户端编码后的音视频数据传输到其他客户端上,一般做法是先将数据实时上传到服务器上,服务器再进行转发到其他客户端,客户端这个上传音视频数据行为称为推流。

我们可以通过 Nginx 的 RTMP 扩展方便地搭建推流服务器:

推流会受到客户端网络的影响,例如:wifi 信号衰减、4G 弱网、拥挤的宽带网络等。为了应对这个问题,实时音视频系统会设计一个基于拥塞控制和 QOS 策略的推流模块。

WebRTC

WebRTC 是一个开源项目,旨在使得浏览器能为实时通信(RTC)提供简单的 Java 接口。说的简单明了一点就是让浏览器提供 JS 的即时通信接口。这个接口所创立的信道并不是像 WebSocket 一样,打通一个浏览器与 WebSocket 服务器之间的通信,而是通过一系列的信令,建立一个浏览器与浏览器之间(peer-to-peer)的信道,这个信道可以发送任何数据,而不需要经过服务器。并且 WebRTC 通过实现 MediaStream,通过浏览器调用设备的摄像头、话筒,使得浏览器之间可以传递音频和视频。WebRTC 有三个重要的部分:MediaStream、RTCPeerConnection、RTCDataChannel:

  • MediaStream:通过设备的摄像头及话筒获得视频、音频的同步流
  • PeerConnection: 用于构建点对点之间稳定、高效的流传输的组件
  • DataChannel:能够使得浏览器之间(点对点)简历一个高吞吐量、低延时的信道,用于传输任何数据

以上是 直播端网络传输的实现 的全部内容, 来源链接: utcz.com/z/515406.html

回到顶部