开花结果 / 传输协议 / 实时流煤体协议概述

分享

   

实时流煤体协议概述

2016-10-14  开花结果

                             

流媒体传输类型:

       流媒体传输分两类:实时流媒体 顺序流媒体

 

       一般来说,如果视频为现场直播,或使用专用的流媒体服务器,或应用如RTSP等专用实时协议,即为实时流媒体传输;

       如果使用普通的HTTP服务器,将音视频数据以从头至尾方式发送,则为顺序流媒体传输。

 

       实时流传输既可传输实况直播,也可传输完整的音视频文件(专用协议流式)。

       顺序流媒体不可用于实况直播,仅能传输完整的音视频文件(HTTP渐进式)。

 

区别

实时流

顺序流

音视频数据源

实时从录制设备上采集,

或(使用专用协议传输的)文件

可播放的音视频文件

服务器类型

专用流媒体服务器,如:

QuickTime Streaming Server

Real Server

Windows Media Server

Flash Media Server

普通的HTTP服务器,

FTP服务器

传输协议

专用协议

HLSRTMP

一般的HTTP协议,

与传输网页的协议相同

跳播

可随机访问任意片段

在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的部分

 

主流流媒体协议

主流的流媒体协议主要有: RTMP HLS RTSP等。

 

区别

RTMP

HLS

RTSP

全称

Real Time Message Protocol

Http Live Stream

Real Time Streaming Protocol

上层协议

TCPHTTP

HTTP

RTPRTCP

软件模型

C\S

B\S

C\S

研发主要来自

Adobe

Apple

Microsoft

针对客户端

支持Flash类产品

的浏览器

支持HTML5的浏览器

支持HTML5的浏览器

播放器

视频格式要求

FLV F4V

MP4

服务器要求

专用Flash服务器

Flash Media Server

Red5

普通HTTP服务器

专用RTSP流媒体服务器

实况直播要求

专用编码器上传

Flash Media Encoder

专用编码器上传

Apple开发工具

与服务器相关,

自定义上传

文件播放要求

Flv F4V文件即可,

服务器会自动分解为

F4f 数据文件

f4x索引文件

Ts数据文件,

M3u8索引文件

与服务器相关,

与播放器相关

 

协议原理

一,http渐进式下载原理(仅支持文件播放)

http边下载边播放,严格意义上讲,不是直播协议。他的原理是先下载文件的基本信息,音频视频的时间戳,再下载音视频数据,以播放mp4为例,先下载文件头,根据文件头指引下载文件尾,然后再下载文件的音视频数据。

播放方式:浏览器调用系统播放器播放;

                使HTML5Video标签,浏览器支持直接播放。

 

二,苹果支持的hls原理(实况直播 文件点播)

服务器端有三个组件:

其一:编码器(media encoder, 用于将设备输出的格式转为H264AAC,并封装为MPEG-2传输流;

其二:流分段器(stream segmenter, 用于实况直播,将MPEG-2流分割为多个小片段后输出;

其三:文件分段器(file segmenter, 用于文件点播,将文件分隔为多个小片段后输出;

分发原理

数据经以上三部分处理后为.ts文件(媒体数据)及.m3u8文件(媒体数据索引)存在于服务器之上。 客户端访问.m3u8后按索引下载.ts文件进行播放。

 

下面为某m3u8文件内容:

#EXTM3U

#EXT-X-TARGETDURATION:30

#EXTINF:30,

http://192.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.tssample_100k-2.tssample_100k-3.ts

 

    HLS的文件点播

1.使用苹果开发工具“文件分段器”将基于H264和AAC或MP3的MPEG4分段,

生成.ts和.m3u8文件,存储于普通服务器上。

2.苹果应用程序或苹果浏览器可以通过访问.m3u8文件获取到索引,

并下载所需要的数据片段来播放。

    HLS的实况直播

1.  使用苹果开发工具“流分段器”将基于H264AACMP3MPEG2传输流分段,

可使用其它工具将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命令。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多

    ×
    ×

    ¥.00

    微信或支付宝扫码支付:

    开通即同意《个图VIP服务协议》

    全部>>