小虾米资讯
AD1android:直播系统开发过程中,如何选择流媒体协议?
2020-12-09 15:38:02 / 我要吐槽AD2
在直播系统开发过程中,我们可能会遇到一些困惑。像是对于流媒体协议的选择,如HTTP-FLV、WebRTC,RTMP,HLS及其它私有协议等,到底哪个比较合适﹖哪种协议可以用在PC平台上?哪种协议在移动设备上效果比较好﹖接下来就先从各项协议的优缺点比较说起。一、常见的几种流媒体协议的优缺点∶RTMP ∶ Adobe公司为Flash/AIR与服务器之间传输音视频数据而开发的私有协议,也是目前最常用的流媒体传输协议。优点︰基于TCP长连接,不需要多次建连,延时低,通常只有1~3s;技术成熟,配套完善。缺点∶在PC浏览器中只能通过Flash使用,且无法在移动浏览器使用;鉴于Flash即将退出舞台,所以在网页播放端基本不会以RTMP做拉流。HLS:苹果公司提出的基于HTTP的流媒体网络传输协议。其工作原理是切片式传输,把直播流切成无数片,用户在观看视频时,每次客户端可以只下载一部分。优点∶基于HTTP协议,所以接入CDN较为容易,很少被防火墙拦下,且自带多码率自适应﹔作为苹果提出的协议,在macOS/iOS下有极大优势,Android中也提供了对应的支持;可以说此项协议用在移动设备上是再合适不过了。缺点∶延时较大,通常不低于10s。大量的TS片文件,会造成服务器存储和请求的压力。HTTP-FLV∶把音视频数据封装成FLV,然后通过HTTP连接传输,与RTMP相比只是传输协议变了。对于网页播放端,本来还是需要Flash才能播放,但「flv.js」的出现又弥补了这个缺陷。优点∶低延时,整体效果与RTMP非常接近;相较于RTMP协议,能有效避免防火墙和代理的影响。缺点︰它的传输特性会让流媒体资源缓存在本地客户端,也就是说保密性不怎么样;直到目前仍然不兼容iOS的浏览器。WebRTC:基于Google开源技术,在Web端上实现流媒体的协议。优点∶RTMP和HLS都是掌握在大企业手中的协议,而WebRTC已被纳入W3C标准;无需安装插件,支持的浏览器越来越多。缺点∶厂商对浏览器或系统的定制可能会导致可用性问题,且缺乏服务器端设计和部署方案﹔传输质量难以保证,优化手段有限;在安卓设备上的兼容性不好;另外,此项协议主要面向Web端,对原生开发支持不足。Powered By © 小虾米资讯 2015
(本站部分文章来源于网络或网友爆料,不代表本站观点,如有侵权请联系及时删除 )