一、流媒体
1、伪流媒体
1.1 边下载边播放;视频不是实时播放的,先把视频放在数据库,再供客户端访问,比如:优酷,爱奇艺等
1.2 特点:边下边存,文建会保存;遵守了http协议,但是没有遵守rtmp和hls协议,能够实现快进和快退的功能,实现简单,成本低;
2、实时流媒体
2.1真正的流媒体,边下边播,但不会保存下载的文件
2.2特点: 下载的文件不会保存,遵守了rtmp或者hls协议,只能实现实时播放,不能快进或者快退,实现成本较高,实现复杂
3、常见的流媒体协议:
3.1、hls协议:http live streaming 是苹果公司实现的基于http的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备提供音视频直播和点播方案。
3.2、直播原理:通过相关设备采集摄像头的视频和麦克风的音频,并实时进行h264视频编码和acc音频编码,并按照hls协议规范,转换为标准的ts文件以及m3u8索引文件。和其他的常见的直播协议(如:rtmp,rtsp,mms)不同,遵守hls协议的直播在客户端接收到的并不是完整的数据流,即hls协议的服务器将最新获取到的数据进行分割成新的片段,客户端不断的从服务器端获取最近的片段进行播放,由此可以说hls是一点播的形式实现的直播。
3.3、hls点播:就是对http进行分段播放,不同的就是在于对http进行的分段非常小,因此可以说,hls点播的重点是就是对http进行分段。
3.4、hls的特点:由于数据是通过http传输的,所以不用考虑防火墙和代理的问题,由于分割的时长很短,所以客户端可以很快的实现码率切换,以适应不同的带宽,hls协议的延迟一般会高于其他协议的流媒体直播。
3.5、hls实现步骤采取视频源和音频源数据对原始数据进行h264和acc编码视频和音频数据封装为mpeg-ts包hls分段生成策略以及m3u8索引文件http传输协议;hls分段策略的分段时长以10s为最好。
二、rtmp协议�(rtmp实时消息传输协议,是现在比较常用的协议)
1、rtmp使用原理,首先推六道rtmp服务器,然后再由rtmp服务器提供rtmp视频服务。(rtmp也提供hls,将音视频切为ts流,然后用户可以直接播放m3u8流媒体。)
2、rtmp协议规定
2.1、建立一个网络链接(只能建立一个网络链接)
2.2、建立一个网络流(发送多媒体的通道,可以建立多个网络流)
3、rtmp协议使用步骤
3.1、握手:rtmp协议都是以握手开始的。 客户端先发送c0,c1两个数据块,服务器收到c1或者c2块的时候开始发送s0和s1,客户端收到s0和s1的时候开始发送c2,当服务器收到c0和c1的时候开始发送s2,当客户端收到s2,同时服务器收到c2的时候,握手完成
3.2、建立连接:建立客户端与服务器的网络连接
3.3、建立流:建立客户端和服务器端的流链接
3.4、传输播放音视频数据