赞
踩
如今网络的发展已经从1G,2G,3G,4G逐渐过渡到5G,5G网络的出现,音视频的使用就变得越来越广。从以前的泛娱乐过渡到了更深次的领域,比如在线教育,在线会议…然而,要想有完美的视屏体验,还是要从很多方面考虑的。只有综合考虑这些潜在的影响因素,才能有更好的用户体验。其中推流和拉流就是其中很重要的一环。
竟然设计到视频的推流和拉流,那么就要设计到网络通信,而视频的网络通信是有多种方式的,分别适用于不同的场景。今天我们来介绍四种常用的协议:rtmp、http-flv、hls。下面分别简单讲一下这几种协议的特点。
rtmp
rtmp是实时消息传输协议,英文是Real Time Messaging Protocol,是 Adobe公司为 Flash 播放器和服务器之间音视频和数据传输开发的开放协议。协议基于tcp协议进行传输,实质上也是传输的flv格式的数据,不仅可以拉流,也可以推流。正常情况下拉流延迟在3s左右。
http-flv
它直接基于http协议, 实际上就是将音视频数据封装成flv格式通过http协议进行传输。http-flv协议传送的数据可以看做一个无限大的flv文件,原理是服务器回复客户端请求的时候不加content-length字段。http-flv的延迟也比较小,一般在3s以内。
相比rtmp拉流,由于是直接基于http协议,http-flv有更多的优点,它可以很好的穿越防火墙,可以支持302跳转,可以使用https的加密,移动端支持的也比较好。
hls
全称为Http Living Stream,是Apple开发的协议,也是基于http协议的。它的最大特点就是直播播放器获取到的并不是一个完整的视频流。hls协议在服务端将直播数据切片封装成ts段,形成无数小的ts文件。播放器在请求播放数据的时候,首先得到一个m3u8文件,该文件内部会有一个playlist,客户端按照顺序依次请求并播放ts文件数据。它的特点导致了实时性比较差,播放延迟很大,这个延迟是由切片长度决定的,一般大于10s。另外,hls也是基于http协议的,所以穿透性比较好,不容易被墙。
协议 | rtmp | http-flv | hls |
---|---|---|---|
传输 | tcp | http | http |
视频格式 | flv | flv | ts |
延时 | 低 | 低 | 高 |
数据分析 | 连续 | 连续 | 切片数据 |
h5播放 | 不支持 | 不支持 | 支持 |
通常,推流端会选用rtmp协议,客户端会选择http-flv来拉流,而h5则会选择hls协议进行拉流。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。