视频直播技术的相关协议

首先,了解了一下视频直播相关的概念。经常使用的几种视频协议是:RTMPHTTP-FLVHLSRTP/RTCP协议。nginx

而后咱们会在说明一下直播总体的流程和相关的技术。浏览器

视频直播协议服务器

在直播领域大概能够分类两种类型的在直播:一种是交互式直播,另一种是非交互式直播。微信

非交互式直播(如:阅兵直播、NBA直播、欧冠直播等)交互性不强,容许延迟10秒或者10秒以上,特色是源比较少,适合作多路转码(用户能够根据网络条件观看)。网络

交互式直播的典型场景有:秀场直播、游戏直播等。这些直播由于对主播和观众的互动性要求比较高,因此要求延迟在5s之内。交互式直播的特色是:源比较多,不适合作多路转码,中间服务器只做为中转角色。优化

直播内容传输的介质是网络,而网络中传播视频或者音频时须要使用对应的协议,目前适合直播场景的经常使用协议有以下几种。spa

1.RTMP协议 (HTML 5不支持,Flash支持)插件

RTMP是一种流媒体协议,是Adobe的专利协议。基于TCP,在国内的使用流行度很高。视频

流行缘由:开源软件和开源库的支持稳定完整,最经常使用的推流和拉流的解决方案基本上可以很稳定的运行。如:开源的librtmp推流库,服务端有nginx-rtmp插件,拉流有ijkPlayer播放库。游戏

2.HTTP-FLV协议 (HTML 5 不支持,Flash支持)

即便用HTTP协议流式的传输媒体内容。相对于RTMPHTTP更简单和广为人知。内容延迟一样能够作到2~5秒,打开速度更快,由于HTTP自己没有复杂的状态交互。因此从延迟角度来看,HTTP-FLV要优于RTMP

3.HLS协议 (HTML 支持,Flash支持)

Http Live Streaming,是由苹果提出基于HTTP的流媒体传输协议。HLS有一个很是大的优势:HTML5能够直接打开播放;这个意味着能够把一个直播连接经过微信等转发分享,不须要安装任何独立的APP,有浏览器便可,因此流行度很高。社交直播APPHLS能够说是刚需 。基于HLS的直播流URL是一个m3u8的文件,里面包含了最近若干个小视频TS(一种视频封装格式,这里就不扩展介绍)文件。这种播放形式的延时比较高(与TS文件的大小有关系),同城网络下可以作到5~7秒的延时。

4.RTP/RTCP协议

Real-time Transport Protocol,用于Internet上针对多媒体数据流的一种传输层协议。RTCP传输交互控制的信令,RTP传输实际的媒体数据。

RTP在视频监控、视频会议、IP电话上有普遍的应用,由于视频会议、IP电话的一个重要的使用体验:内容实时性强。

对比上述3种协议,RTP和它们有一个重要的区别就是默认是使用UDP协议来传输数据,而RTMPHTTP是基于TCP协议传输。

使用场景分析:实时音视频流的场景不须要可靠保障,所以也不须要有重传的机制,实时的看到图像声音,网络抖动时丢了一些内容,画面模糊和花屏,彻底不重要。TCP为了重传会形成延迟与不一样步,如某一截内容由于重传,致使1秒之后才到,那么整个对话就延迟了1秒,随着网络抖动,延迟还会增长成2秒、3秒,若是客户端播放是不加以处理将严重影响直播的体验。如何进行优化,会在后面的文章中进行讲解。

总结:在直播协议的选择中,若是选择是RTMPHTTP-FLV则意味着有2~5秒的内容延迟,可是就打开延迟来讲,HTTP-FLV 要优于RTMPHLS则有5~7秒的内容延迟。选择RTP进行直播则能够作到1秒内的直播延迟。但就目前所了解,各大CDN厂商没有支持基于RTP直播的,因此目前国内主流仍是RTMPHTTP-FLV

  图玩智能做为直播专业领域的服务商,为企业实现直播平台的二次开发,搭建更具完善的直播系统,欢迎随时沟通www.toivan.com.

相关文章
相关标签/搜索