博客列表 >在线直播源码实现直播业务需要它们的帮助才行

在线直播源码实现直播业务需要它们的帮助才行

一只可爱居的博客
一只可爱居的博客原创
2019年04月11日 15:52:02717浏览

对于直播业务来说,推流和传输是非常重要的部分。可能大部分人都认为,只要拥有一套优质的在线直播源码,就可以顺利进行开发和搭建等步骤了。但实际上,推流对于直播链路的影响是非常大的。如果说,推流的过程中网络十分不问题,那么不论我们怎样优化,最终开发出的app在运行过程中也会给用户带来糟糕的体验。本文主要分享开发时需要了解的几个推送协议。

1. RTMP

(1)定义

相信大家对这个协议一点都不陌生,它就是直播中最常用的实时传输协议。RTMP基于TCP是一个协议族(包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种)。RTMP是一种设计用来进行实时数据通信的网络协议,主要用于在Flash/AIR平台和支持RTMP协议的流媒体、交互服务器之间进行音视频和数据通信。

(2)优势

主要体现在CDN支持良好,大部分主流的CDN厂商都可以支持。并且协议相对简单,容易在各个平台上实现。

timg.jpg

(3)劣势

由于RTMP是基于TCP,传输成本较高。而且在弱网环境下丢包率较高的情况十分明显,不支持浏览器推送。

2.WebRTC

(1)定义

WebRTC名称源自网页即时通信,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。目前主要应用于视频会议和连麦中。

(2)优势

W3C的标准,支持主流浏览器的程度较高。底层基于SRTP和UDP,在弱网情况下优化的空间较大,能够实现点对点通信,通信时双方产生的延时较低。

(3)劣势

传统的CDN支持性较差。

3.基于UDP的私有协议

(1)简介

有的直播应用场景会使用UDP作为底层的协议,然后开发自己的私有协议。为什么呢?因为UDP在弱网环境下可以通过一些定制化的调优,从而达到较好的弱网优化效果。

timg (1).jpg

(2)优势

具备更多的空间进行定制化的优化。

(3)劣势

大家比较关心的一点就是,开发成本较高。CDN支持不太友好,需要自建CDN或者是和CDN达成协议。

其实在直播应用场景下推送出去的流媒体需要传输到用户端,这一个链路就是所谓的传输网络。如果在传输过程中出现网络拥塞的情况,就需要进行一定的智能调度,从而使得传输网络保持顺畅。所以说,拥有在线直播源码是软件开发过程中最基础的一步。要想实现直播业务,并且保证直播业务的流畅运行,在协议的选择上也要多下一番功夫。

本文声明原创,转载请注明出处。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议