直播协议的学习总结

2019-08-05  本文已影响0人  billzheng

一.RTMP的特点
RTMP (Real Time Messaging Protocol,实时消息传送协议) 
RTMP是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议
这个协议建立在TCP协议或者轮询HTTP协议之上。
RTMP本质上是流协议

二.HTTP的特点
Real Time Messaging Protocol(简称 RTMP)
是 Macromedia 开发的一套视频直播协议,现在属于 Adobe。
和 HLS 一样都可以应用于视频直播,但是实时性比 HLS 要好。
一般使用这种协议来上传视频流,也就是视频流推送到服务器。
HTTP说的是HTTP流,譬如各大视频网站的点播流,
HTTP本质上还是文件分发。

三.HLS的特点
HLS (HTTP Live Streaming) 是Apple的动态码率自适应技术。
主要用于PC和Apple终端的音视频服务。
包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。
 #EXTM3U                 m3u文件头
 #EXT-X-MEDIA-SEQUENCE   第一个TS分片的序列号
 #EXT-X-TARGETDURATION   每个分片TS的最大的时长
 #EXT-X-ALLOW-CACHE      是否允许cache
 #EXT-X-ENDLIST          m3u8文件结束符
 #EXTINF                 指定每个媒体段(ts)的持续时间(秒),仅对其后面的URI有效
 mystream-12.ts

image.png
四.协议分发方式的比较
互联网上的两种主要的分发方式:HLS和RTMP,
什么时候用谁,完全决定于应用场景。
还有其他的分发方式,这些分发方式不属于互联网常见和通用的方式,不予以比较:

1. UDP
譬如YY的实时应用,视频会议等等,或者RTSP之类。这类应用的特点就是实时性要求特别高,以毫秒计算。
TCP家族协议根本就满足不了要求,所以HTTP/TCP都不靠谱。这类应用没有通用的方案,必须自己实现分发(服务端)和播放(客户端)。
2. P2P
譬如RTMFP或者各家自己的协议。这类应用的特点是节省带宽。
目前PC/flash上的RTMFP比较成熟,Android上的P2P属于起步群雄纷争标准不一,IOS上P2P应该没有听说过。
3. RTSP
这种不是互联网上的主要应用,在其他领域譬如安防等有广泛应用。

另外,HTTP的也分为几种:

1. HTTP progressive
早期流媒体服务器分发http文件时,以普通的http文件分发,这种叫做渐进式下载,意思就是如果文件很大譬如1小时时长1GB大小,想从中间开始播放是不行的。但这种方式已经是作古了,很多http服务器支持http文件的seek,就是从中间开始播放。
2. HTTP stream
支持seek的HTTP流,譬如各家视频网站的点播分发方式。或者稍微复杂点的,譬如把一个大文件切几段之后分发。目前在pc/flash上点播国内的主流分发是这种方式。
3. HLS
这种是现在适配方式最广(除了flash, 需要额外的as库支持),在PC上有vlc,Android/IOS原生播放器就支持播放HLS,HTML5里面的url可以写HLS地址。总之,在移动端是以HLS为主。
4. HDS
adobe自己的HLS,和不好用。
5. DASH
各家提出的HLS,目前还没有广泛应用。

对比以下互联网上用的流媒体分发方式:


五.协议的应用方式

六.RTSP、 RTMP、HTTP的共同点及区别

文章部分摘自:
https://www.cnblogs.com/my_life/articles/5593892.html

上一篇 下一篇

猜你喜欢

热点阅读