位置:编程技术网 > 产品设计 > 正文 >

一对一直播软件开发中,如何进行推流?

2019年10月18日 14:43来源:未知手机版

5233塞班论坛,英雄三才阵,移栽香樟

推流环节对直播链路的影响非常大,如果推流网络不稳定,就算前期在音视频处理、编码和封装上做何种优化,用户体验都会很糟糕。因此接下来,小编就以一对一直播软件开发为例,为大家讲述下推流过程中涉及的协议、实现方案等。
一、推流的定义推流实际上就是在把封装好的视频和音频传输到服务器的过程。换句话说,就是将现场的视频信号传到网络的过程。此外,推流这个环节对网络的要求比较高,如果网络不稳定,直播的效果就会很差,像是遇到卡顿、延时等情况。二、推送协议种类根据使用案例,一对一直播软件开发中,接触到的推送协议有以下几个:评论


1、RTMPRTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT、RTMPS、RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash平台和支持RTMP协议的流媒体之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server、Ultrant Media Server、red5等。RTMP是目前主流的流媒体传输协议,广泛用于直播领域,可以说市面上大多数的直播平台都应用了这个协议。优点:CDN厂商基本都支持此协议,兼容性强,且在各平台上实现容易。缺点:传输成本高,在弱网环境下比较容易丢包;不支持浏览器推送;最重要的一点是RTMP是Adobe的私有协议,但是Adobe已经不再更新。评论
2、WebRTCWebRTC,即网页即时通信的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它目前已经开源并且在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。相对于一对一直播软件,它更多的是广泛应用在各种视频会议中。此协议的优点是:由于是纳入W3C标准,主流浏览器对它的支持逐渐提高,相比起RTMP来讲,它在弱网情况下的空间优化较大,而且支持点对点通信,从而降低了整体延迟。但是缺点也比较棘手,就是目前传统CDN中没有类似的服务提供。评论


3、基于UDP的私有协议有些一对一直播软件开发商会使用UDP作为底层协议开发自己的私有协议,因为UDP在弱网环境下,通过一些定制化的调优可以达到比较好的弱网优化效果,但同样因为是私有协议也势必会有现实问题:开发成本高,往往需要自建CDN或者和CDN达成协议,另外由于兼容性较差,在面对升级时可能得不到技术支持。三、推流实现方案举例1、在推流传输方面全部由开发商自己搭建,花费较大,总体来说不太现实。2、在直播软件开发中,可以和一些主流CDN厂商或者云视频服务商合作,它们往往会提供推流的“一条龙”服务。3、大多数直播平台都会同时接入多个视频云服务提供商,这样可以做拉流线路互备,对推流后视频集群再进行优化也可提高直播的流畅性和稳定性。以上,就是一对一直播软件开发中,一些关于推流的简单介绍。如果您对此还有疑问,欢迎给小编留言。

本文地址:http://www.reviewcode.cn/chanpinsheji/83586.html 转载请注明出处!

今日热点资讯