实时流煤体协议概述流媒体传输类型:流媒体传输分两类:实时流媒体和顺序流媒体一般来说,如果视频为现场直播,或使用专用的流媒体服务器,或应用如RTSP等专用实时协议,即为实时流媒体传输;如果使用普通的HTTP服务器,将音视频数据以从头至尾方式发送,则为顺序流媒体传输。实时流传输既可传输实况直播,也可传输完整的音视频文件(专用协议流式)。顺序流媒体不可用于实况直播,仅能传输完整的音视频文件(HTTP渐进式)。区别实时流顺序流音视频数据源实时从录制设备上采集,或(使用专用协议传输的)文件可播放的音视频文件服务器类型专用流媒体服务器,如:QuickTimeStreamingServerRealServerWindowsMediaServerFlashMediaServer普通的HTTP服务器,或FTP服务器传输协议专用协议HLS或RTMP等一般的HTTP协议,与传输网页的协议相同跳播可随机访问任意片段在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的部分主流流媒体协议主流的流媒体协议主要有:RTMP,HLS,RTSP等。区别RTMPHLSRTSP全称RealTimeMessageProtocolHttpLiveStreamRealTimeStreamingProtocol上层协议TCP或HTTPHTTPRTP,RTCP软件模型C\SB\SC\S研发主要来自AdobeAppleMicrosoft针对客户端支持Flash类产品的浏览器支持HTML5的浏览器支持HTML5的浏览器播放器视频格式要求FLV,F4VMP4无服务器要求专用Flash服务器FlashMediaServerRed5普通HTTP服务器专用RTSP流媒体服务器实况直播要求专用编码器上传FlashMediaEncoder专用编码器上传Apple开发工具与服务器相关,自定义上传文件播放要求Flv,F4V文件即可,服务器会自动分解为F4f数据文件f4x索引文件Ts数据文件,M3u8索引文件与服务器相关,与播放器相关协议原理一,http渐进式下载原理(仅支持文件播放)http边下载边播放,严格意义上讲,不是直播协议。他的原理是先下载文件的基本信息,音频视频的时间戳,再下载音视频数据,以播放mp4为例,先下载文件头,根据文件头指引下载文件尾,然后再下载文件的音视频数据。播放方式:浏览器调用系统播放器播放;使HTML5的Video标签,浏览器支持直接播放。二,苹果支持的hls原理(实况直播文件点播)服务器端有三个组件:其一:编码器(mediaencoder),用于将设备输出的格式转为H264和AAC,并封装为MPEG-2传输流;其二:流分段器(streamsegmenter),用于实况直播,将MPEG-2流分割为多个小片段后输出;其三:文件分段器(filesegmenter),用于文件点播,将文件分隔为多个小片段后输出;分发原理数据经以上三部分处理后为.ts文件(媒体数据)及.m3u8文件(媒体数据索引)存在于服务器之上。客户端访问.m3u8后按索引下载.ts文件进行播放。下面为某m3u8文件内容:#EXTM3U#EXT-X-TARGETDURATION:30#EXTINF:30,:30,:30,根据这个文件,播放器会依次下载sample_100k-1.ts,sample_100k-2.ts,sample_100k-3.tsHLS的文件点播1.使用苹果开发工具“文件分段器”将基于H264和AAC或MP3的MPEG4分段,生成.ts和.m3u8文件,存储于普通服务器上。2.苹果应用程序或苹果浏览器可以通过访问.m3u8文件获取到索引,并下载所需要的数据片段来播放。HLS的实况直播1.使用苹果开发工具“流分段器”将基于H264、AAC、MP3的MPEG2传输流分段,可使用其它工具将MPEG4音视频文件加载到MPEG2传输流当中。生成.ts和.m3u8文件,存储于普通服务器上。2.三,AdobeFlash支持的RTMP协议(支持文件播放和实况直播)必须采用Flash服务器FMS(FlashMediaServer)或RED5.FMS的文件点播1.服务器将F4v或Flv文件转化为RTMP流或HTTP流2.客户端获取RTMP流,提取相应的Flv或F4v文件片段进行播放。FMS的实况直播1.设备端将数据转化为F4v片段,通过RTMP流上传到服务器2.服务器转发RTMP流到客户端3.客户端获取RTMP流,提取数据片段播放。四,RTSP协议RTSP为纯粹的传输控制协议。RTSP协议本身不与它负载的媒体数据相关。RTSP协议需要自定义客户端向服务器发送RTSP命令。