什么是stream流式传输
流式传输定义很广泛,现在主要指通过网络传送流媒体(如视频、音频)的技术总称。其特定含义为通过Internet 将影视节目传送到PC机,移动端Pad,安卓手机,苹果手机及网络机顶盒(OTT-TV或IPTV的具体应用)。
我们也常见一个词“串流”,也就是流式传输的一种形象说法。就是指一连串的影像资料压缩后,经过网络分析分段传送资料,在网络上即时传输影音以供观赏的一种技术和过程;串流传输可传送现场live影音或预存与服务器上的影片,当观看者在收看这些影音档时,影音资料在传送至观赏者的电脑或手机上时立即由特定的播放器软件播放。 目前国内最为常见的网页播放所使用的播放器为Flash player。
从技术角度看,也就是用一个视频传送服务器把影音节目当成数据包发出,传送到网络上。用户通过观看设备对这些数据进行解压后,节目就会像发送前那样显示出来。这个过程的一系列相关的包称为“流”。流媒体实际指的是一种新的媒体传送方式,而非一种新的媒体。
实现流式传输有两种方法:实时流式传输(Realtime streaming)和顺序流式传输(progressive streaming)。
a. 顺序流式传输:
顺序下载,媒体在下载文件的同时,用户可以观看在线节目。在给定时刻,用户只能观看已经下载的那部分,而不能跳到还未下载的部分。顺序流式传输不像实时流式传输那样,可以在传输期间根据用户连接的速度进行调整。
b. 实时流式传输:
实时流式传输可保证媒体信号带宽与网络连接匹配,可实时观看节目。实时流与HTTP流式传输不同,它需要专用的流媒体服务器与传输协议。 目前整个互联网的流式传输基本都在使用实时流式传输方式来提供网络直播和网络点播服务。
支持Sream实时流式传输的流媒体专用服务器系统
1. 800Li Media Server
2. Adobe Media Server
实时流式传输常用协议
RTMP:
RTMP协议(Real Time Messaging Protocol)是被Flash用于对象,视频,音频的传输.这个协议建立在TCP协议或者轮询HTTP协议之上.
RTMP协议就像一个用来装数据包的容器,这些数据既可以是AMF格式的数据,也可以是FLV中的视/音频数据.一个单一的连接可以通过不同的通道传输多路网络流.这些通道中的包都是按照固定大小的包传输的.
RTSP:
即时串流协定(Real Time Streaming Protocol,RTSP)是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制
允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,更进而支持多方视讯会议(Video Conference)。
HLS: HTTP live streaming (M3U8)
HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备(如iPhone、iPad)提供音视频直播和点播方案。
HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小。
相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议等,HLS直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。
RTMFP:
RTMFP是Adobe公司开发的一套新的通信协议,全称Real Time Media Flow Protocol, 该协议可以让使用Adobe Flash Player的终端用户之间进行直接通信。用Adobe AIR框架开发的程序也可以用此协议来发布直播、实时信息。
通过使用RTMFP, 那些依赖直播、实时通信的应用,比如社区、音视频聊天和多人游戏就有能力来发布高质量的通信解决方案。RTMFP让终端用户可以直接连接并通信,可以使用麦克风和摄象头直接聊天。RTMFP将不支持文件和文档共享。此方案提升了目前Flash Player在网络交互方面的体验。