入门 | 直播协议简述

作者:图鸭科技    微信公众号:tucodec

随着当下互联网视频化的迅速发展,各类网络直播产品如雨后春笋般成长起来,涵盖了秀场直播、游戏直播、教育直播、演唱会直播和监控直播等多个直播生态圈。这些生态圈成长的背后,是视频直播相关技术的不断发展,例如互联网带宽的增加、视频压缩标准的不断完善、视频云技术的出现等。

直播过程中涉及到的模块众多,主要有采集、前处理、音视频编解码、流媒体协议、系统架构、CDN、播放控制、交互技术等。

此次图鸭君主要给大家介绍直播协议模块,希望大家读完对该模块有一个系统性的了解。

流媒体协议

直播常用到的流媒体协议有rtmp、http、hls、rtsp。

下面简单说一下这几种协议的优劣:


协议名称


优势


劣势


rtmp


l  实时性高:一般能做到3秒内。

l  支持加密:rtmpe和rtmps为加密协议。

l  稳定性高:在PC平台上flash播放的最稳定方式是rtmp,如果做CDN或者大中型集群分发,选择稳定性高的协议一定是必要的。

l  主流编码器都支持该协议。


l  协议复杂:开发者写起来会比较累,效率也不行。

l  Cache麻烦:流协议做缓存不方便。


http


l  性能很高:http的性能好,协议简单,高性能服务器也完善。如果分发量特别大,譬如点播视频网站,没有直播的实时性要求,http协议是最好选择。

l  没有碎片:http相比hls没有碎片。

l  穿墙:http协议是互联网唯一肯定会开放的协议,所以不存在封端问题。


l  实时性差:延迟10s起步。

l  原生支持不好:PC上flash对于http流支持还可以,但是移动端对于http的支持不是很完善


hls


l  性能好:如http。

l  穿墙:如http。

l  原生支持很好:iOS上支持完美,Android上支持相对差些。PC/flash上现在也有各种as插件支持HLS。


l  实时性差:与ts切片长度有关,大约3个切片长度时间的延迟,基本上HLS的延迟在10秒以上。

l  文件碎片:若分发HLS,码流低,切片较小时,会导致太多的文件碎片


rtsp


l  延迟低,通常能做到500ms。

l  带宽好,时效率高。

l  倍速播放,主要是回放的时候提供的功能。

l  控制精准,任意选择播放点。


l  服务端实现复杂。

l  代理服务器弱:数量少,优化少。

l  无路由器防火墙穿透

l  管流分离:需要1-3个通道。

看了以上这些协议的对比介绍,想必各位都注意到了一个问题,那就是延迟。所有协议中都提到了延迟,延迟最低的也有500ms。那么为什么会出现这样的情况呢?接下来就给大家说明“延迟”的相关信息。

简说延迟

在这里简单说一下rtmp和rtsp的延迟,我们先谈rtmp的延迟。圈内有人整理了一张直播延迟(rtmp)的图片,图鸭君直接上个真相。

看完上图你大概就能明白了,rtmp的延迟是和Gop挂钩的。

那么,为什么rtsp延迟会比rtmp低呢?因为,它是精确控制的,可以跳出以Gop组为单位的控制。

rtsp延迟已经是上述四个协议里最低的了,那么延迟还有降低的空间吗?

如何降低延迟时间

图鸭君经过多次测试,发现udp直接发裸流,可以将延迟控制在80ms到170ms的范围。

既然udp直接发裸流延迟那么低,为什么不流行?

原因很简单: udp是个不可靠传输,存在丢包、乱序的情况。而且直接裸流稳定性也差,兼容性更不用谈,在没有编码器对接的情况下,这就是一个钢丝上骑自行车的活,高难度动作,能干这行的,必须得是艺高人胆大。

直播涉及到的技术模块非常多,本文主要介绍了直播中用得较多的几种协议。而对于流媒体传输,现在出现了越来越多的私有协议,这些私有协议通常延迟都比较低,如大家用的微信视频就是使用的私有协议。大家体验后会发现,私有协议的延迟远远低于rtsp的500ms。但通常这些私有协议只支持端而不支持web开发,这是因为一般协议都是用c/c++写的socket通信。

 

总结

就直播发展而言,最近几年直播的发展势头,用“迅猛”二字来形容绝不为过。自14年习主席提出“网络强国”战略和李总理提出“互联网+”的新思路新理念后,各大小直播平台如雨后春笋般涌现,甚至2016年被授予了一个特殊称号——“网络直播元年”。2017年2月19日,央视新闻移动网正式上线,为广大记者打造了移动直播系统——“正直播”。这些都标志着大数据时代、新媒体时代已经到来,媒体行业将面临新一轮的挑战和转型,这将是传媒史上一次对新闻直播技术的革新,也将成为新闻直播样态的一次革命性创举。

附流媒体技术图,仅供参考

(注:直播技术图,来源于CSDN)

时间: 2024-10-08 23:26:38

入门 | 直播协议简述的相关文章

直播协议的选择:RTMP vs. HLS

前言 随着直播业务的兴起,越来越多的直播平台开始涌现,这火热的程度好像一个应用不带上直播业务出来都不好意思跟人打招呼.想要做一个直播业务,主要包括三个部分:采集推流端.流媒体服务端.播放端.这里不多说,就主要结合 iOS 平台,从观看端出发,介绍一下对直播协议的选择. 通常在 iOS 平台做直播业务,会有两种协议可供选择:HLS 和 RMTP. HLS,是苹果公司实现的基于 HTTP 的流媒体传输协议,全称 HTTP Live Streaming,可支持流媒体的直播和点播,主要应用在 iOS 系

调用Live555接收RTSP直播流,转换为Http Live Streaming(iOS直播)协议

Live555接收RTSP直播流,转换Http Live Streaming(iOS直播)协议 RTSP协议也是广泛使用的直播/点播流媒体协议,之前实现过一个通过live555接收RTSP协议,然后转换为HLS(Http Live Streaming)直播协议文件的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为HLS协议文件,以实现iPhone或iPad等设备观看RTSP直播源的需求.现在把实现的思路分享如下. 要点分析 首先,程序的主要目的,是从多路RTSP输入源中提取

从Html5直播到互动直播,看直播协议的选择

目前,国内主流的直播协议有HLS.RTMP.HTTP FLV,适用于不同的直播场景. 一.HLS.RTMP与HTTP FLV 1.HLS HLS 全称是 HTTP Live Streaming, 是一个由 Apple 公司实现的基于 HTTP 的媒体流传输协议. 它跟 DASH 协议的原理非常类似. 通过将整条流切割成一个小的可以通过 HTTP 下载的媒体文件, 然后提供一个配套的媒体列 表文件, 提供给客户端, 让客户端顺序地拉取这些媒体文件播放, 来实现看上去是在播放一条流的效果. △HLS

IOS开发语言Swift入门连载---协议

IOS开发语言Swift入门连载-协议 协议(Protocol) 协议(Protocol)用于定义完成某项任务或功能所必须的方法和属性,协议实际上并不提供这些功能或任务的具体实现(Implementation) –而只用来描述这些实现应该是什么样的.类,结构体,枚举通过提供协议所要求的方法,属性的具体实现来采用(adopt) 协议.任意能够满足协议要求的类型被称为协议的遵循者. 协议可以要求其遵循者提供特定的实例属性,实例方法,类方法,操作符或下标脚本等. 协议的语法 协议 的定义方式与类,结构

201503121644_《ios直播协议相关》

一.基础知识: 1.视频格式H.264,音频格式AAC; 2.传统直播协议有RTMP,RTSP,MMS... ... 3.苹果系统协议是HLS,苹果视频格式是M3U8格式:通过该协议将资源视频分割成很小的视频供直播端不停地下载,小视频格式是MPEG-TS格式: 二.技术步骤 1.采集视频源和音频源的数据(DirectShow(或其他)技术) 2.对原始数据进行H264编码和AAC编码(调用libx264和libfaac) 3.视频和音频数据封装为MPEG-TS包 4.HLS分段生成策略及m3u8

浅析低延迟直播协议设计:RTP/RTCP

转自:http://blog.csdn.net/dj0379/article/details/51960237 如今的直播市场非常火爆,有很多直播云服务的提供商可供产品选择.同时视频直播产品喷涌而出,比如大家耳熟能详的映客.YY,还有最近特别火爆的一直播. 基于TCP的协议延迟不够低 众所周知,直播中通用CDN大部分提供的是RTMP的方案以及HLS的方案.HLS在手机H5里面的兼容性非常好,而RTMP是Adobe的协议,它在延迟.稳定性和分发质量方面平衡得很不错.但是当涉及会议场景时,基于TCP

SQL 基础使用入门(一): SQL简述及DDL语句

SQL 简述 SQL 是 Structure Query Language(结构化查询语言)的缩写,它是关系模型数据库的一门应用语言.经长期发展,SQL语言标准日趋完善,SQL已然成为一种十分受欢迎的多平台交互底层会话语言. SQL语句主要可以划分为以下三个类别: DDL(Data Definition Language)数据定义语言:用于定义不同的数据段.数据库.表.视图.索引等数据库对象.常用语句关键字主要包括create.drop.alter等. DML(Data Manipulation

国内站群专用挂游戏挂直播协议的国内多ip服务器

1个C段256个IP  加8核16G机器   20M独享带宽      4200 /BGP线路 1个C段256个IP  加8核16G机器  100M独享带宽     3500 /联通线路 1个C段256个IP  加8核16G机器   50M独享带宽      3200 /联通线路 量大更优惠,有量价格就低 现在很多直播平台的主播为了增加个人直播间的人气来吸引客户来观看来达到引流的作用和自己的经济排名的关系,会专门找一下一些 it 的开发人士,针对- -某一个直播平台 的开发一系列性的挂协议用的

主流开源协议简述

开源 ≠ 免费 开源 ≠ 免费 开源 ≠ 免费,重要的事情说三遍. 一.为何要了解开源协议 Java的强大与崛起,应当说强大的开源生态起了不小的作用.在编程的过程中也或多或少能接触到不少优秀的开源软件.框架, 况且我们又乐于找轮子,因此,了解经常见到的开源协议就有必要了.再者,不了解开源协议,随意使用一个带有限制的协议的开源软件甚至 使用没有任何协议的软件,这就像一颗定时炸弹,随时可能会要了你的命! 二.主流开源协议简介 1.Apache License, 2.0 (Apache-2.0 ) 1