RTMP & HLS

今天讲述这两个协议,也是为了自己的视频网站打基础,现有的视频播放协议,主要的就是这两种。博主也打算一边学习,一边进行记录。

 一、HLS

HTS(HTTP LIVE STREAMING),是苹果公司专门针对ios设备所提供的一种协议,它专门提供点播及直播功能。HTS基于HTTP协议进行开发。

HTS采集推送端的视频流存储到服务端,并且隔一小段时间就将视频流生成一个个的ts文件,与此同时生成一个m3u8索引来维护最新的ts文件,以保证新进来的用户也可以看到最新的视频内容。其中客户端通过不断的获取ts文件来对视频进行播放,进而会造成一定的延时。

因为HTS基于HTTP协议,而我们都知道HTTP协议是由TCP与服务端进行连接,当我们利用HTS时,会造成多次连接,进而会有资源损耗。

不过HTS也是有好处的,它是苹果所开发出来的,所以我们可以直接利用苹果公司的AVPlayer进行视频播放。其次它利用HTTP协议,可以屏蔽很多防火墙。最后,它因为是一个一个ts进行播放的,所以它也很好的提供了平滑切换码率,可以有效适应当前带宽。

二、RTMP

RTMP(real time messagings protocol )实时消息传输协议。它是Adobe Systems公司为flash播放器与服务器之间的视频、音频、数据传输所定义的开放协议。协议基于 TCP,是一个协议族,包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。它用于FLASH/ALR平台和支持RTMP协议的流媒体/交互服务器中音频数据传输。

它基于HTTP的长链接,所以不需要一直重复的连接和释放连接,资源消耗小。它通过采集推送端的流数据,直接发送到流服务器,服务器直接进行推送转发到相应平台中,延时率较低,服务器中不存在任何数据文件。它通过将流数据封装成FLV进行转发,这样也导致了ios端无法直接解析FLV文件,也不支持RTMP协议。这就需要开发支持相关的播放器。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容