【计算机】流媒体
流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程。如果不使用此技术,就必须在使用前下载整个媒体文件。
流式传输可传送现场影音或预存于服务器上的影片,当观看者在收看这些影音文件时,影音数据在送达观看者的计算机后立即由特定播放软件播放。
流媒体实际指的是一种新的媒体传送方式,有声音流、视频流、文本流、图像流、动画流等,而非一种新的媒体。
常见流媒体文件格式
在运用流媒体技术时,音视频文件要采用相应的格式,不同格式的文件需要用不同的播放器软件来播放。
流媒体文件格式是支持采用流式传输及播放的媒体格式,常用格式有:
- ASF:这类文件的扩展名是 .asf 和 .wmv,与它对应的播放器是微软公司的 Media Player。
- ReaIMedia:这类文件的扩展名是.rm、.ra、.rmvb,文件对应的播放器是 ReaIPlayer。
- QuickTime:这类文件扩展名通常是.mov,它所对应的播放器是 QuickTime。
- RA:实时声音;
- RM:实时视频或音频的实时媒体;
- RT:实时文本;
- RP:实时图像;
- SMII.:同步的多重数据类型综合设计文件;
- SWF:real flash 和 shockwavc flash 动面文件;
- RPM: HTMI。文件的插件;
- RAM:流媒体的源文件,是包含 RA、RM、SMIIJ 文件地址(URL 地址)的文本文件;
- CSF:一种类似媒体容器的文件格式,可以将非常多的媒体格式包含在其中,而不仅仅限于音、视频。
- aam 多媒体教学课件格式,可将 authorware 生成的文件压缩为 aam 和 aas 流式文件播放。
流媒体特征
内容主要是时间上连续的媒体数据(音频、视频、动画、多媒体等)。
内容可以不经过转换就采用流式传输技术传输。
具有较强的实时性,交互性。
启动延时大幅度缩短,缩短了用户的等待时间;用户不用等到所有内容都下载到硬盘上才能开始浏览,在经过一段启动延时后就能开始观看。
对系统缓存容量的要求大大降低。
Internet 是以包传输为基础进行的异步传输,数据被分解成许多包进行传输,由于每个包可能选择不同的路由,所以到达用户计算机的时间延迟就会不同。
在客户端需要缓存系统来弥补延迟和抖动的影响以及保证数据包传输的顺序。
流媒体文件的播放过程中,由于不再需要把所有的文件都下载到缓存,因此对缓存的要求很低。
流式传输方式
流式传输是指通过网络传送媒体(音频、视频等)技术的总称。实现流式传输主要有两种方式:顺序流式传输( progressive streaming)和实时流式传输( real time streaming)。
顺序流式传输
顺序流式传输是顺序下载,用户在观看在线媒体的同时下载文件,在这一过程中,用户只能观看下载完的部分,而不能直接观看未下载部分。
由于标准的 HTTP 服务器就可以发送这种形式的文件,它经常被称为 HTTP 流式传输。
技术要求
顺序流式文件是放在标准 HTTP 或 FTP 服务器上,易于管理,基本上与防火墙无关。
适用场景
由于顺序流式传输能够较好地保证节目播放的质量,因此比较适合在网站上发布的、可供用户点播的、高质量的视频。
顺序流式传输不适合长片段和有随机访问要求的视频,如:讲座、演说与演示。它也不支持现场广播。
实时流式传输
在观看过程中用户可以任意观看媒体前面或后面的内容。
实时流式传输必须保证匹配连接带宽,使媒体可以被实时观看到。如果网络传输状况不理想,则收到的图像质量就会比较差。
技术要求
实时流式传输需要特定服务器,如 Quick Time Streaming Server、 Realserver 或 Windows Media server。
系统设置、管理比标准 HTTP 服务器更复杂。
实时流式传输还需要特殊网络协议,如:RTSP( realtime streaming protocol)或 MMS(microsoft media server)。
在有防火墙时,有时会对这些协议进行屏蔽,导致用户不能看到一些地点的实时内容。
适用场景
实时流式传输总是实时传送,因此特别适合现场事件。
流媒体传输的网络协议
TCP 需要较多的开销,故不太适合传输实时数据;流式传输一般采用 HTTP/TCP(RTCP 来传输控制信息,而用 RTP/UDP(RTP)来传输实时声音数据。
实时传输控制协议 RTCP
实时传输控制协议 RTCP 和 RTP 一起提供流量控制和拥塞控制服务。
在 RTP 会话期间各参与者周期性地传送 RTCP 包;RTCP 包中含有已发送的数据包的数量、丢失的数据包数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。
RTP 和 RTCP 配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
实时传输协议 RTP
实时传输协议 RTP 被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。
RTP 通常使用 UDP 来传送数据;当应用程序开始一个 RTP 会话时将使用两个端口:一个给 RTP,一个给 RTCP。
RTP 本身并不能为按顺序传送数据包提供可靠的传送制,也不提供流量控制或拥塞控制,它依靠 RTCP 提供这些服务。
通常 RTP 算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。
实时流协议 RTSP
实时流协议 RTSP 定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。
RTSP 在体系结构上位于 RTP 和 RTCP 之上,它使用 TCP 或 RTP 完成数据传输。
点对点的手机可视通话,必须在手机终端实现 RTSP。
与 HTTP 的区别
HTTP 与 RTSP 相比,HTP 传送 HTML 超链接文档,而 RTSP 传送的是多媒体数据。
HTTP 请求由客户机发出,服务器做出响应;使用 RTSP 时,客户机和服务器都可以发出请求,即 RTSP 可以是双向的。