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