公司是搞视频类的互联网公司,本人虽为开发人员,但因为业务相关,因此也要懂得视频和流媒体方面的知识,于是把公司图书阁里的《流媒体技术入门与提高》借回来看。我手上的是第二版。
流式技术解决方案
所谓流式技术解决方案,即流媒体应用系统,典型的系统有:一、Real Networks;二、Windows Media;三、Adobe Flash;四、Apple QuickTime。
流媒体服务器使用特别的协议。HTTP 不是特别地适合流媒体,它内部有大量的数据构件,并缺少控制渠道,这就是为什么不能快速地做到前进或者后退流数据的原因。
Real System 在系统中率先实现了 RSTP(Real Time Streaming Protocol,即时串流传输协定) 通信。RTSP 通信是一种有状体的通信,在语法上与 HTTP/1.1 很相似,但仍有许多方面区别比较大。Real System 被认为是窄带网上最优秀的流媒体传输系统,
QiuckTime 凭借优秀的跨平台特性,较小的存储空间要求、技术细节的独立性以及系统的高度开放性,得到业界的广泛认可。ISO 选择 QuickTime 文件格式作为开发 MPEG-4 规范的统一数字媒体存储格式。
AVI、VOB、MEPG、RM、MKV 都属于多媒体容器,不是一种压缩格式,而是一种多媒体封装格式,所以不同于 DivX、XviD、MP3、Ogg 编码格式。但最开放的是 MKV(Matroska)。
流媒体编码、解码技术
压缩编码基于一定的压缩算法,例如 Real Video 基于小波变换算法,Windows Media 基于 MPEG-4 的压缩算法。
国际上通行的标准主要有两大系列:ISO/IEC JTC 制定的 MPEG系列标准;ITU 针对多媒体通信制定 H.26x 视频系统 和 G.7 系列音频编码。国产的是 自主知识产权的 AVS。
MPEG-1 就是 VCD,MPEG-2 解决了清晰度等问题,是“高清版的 MPEG-1”,MPEG-2 = DVD。但 DVD 要求容量太大,难以实现网络的实时传播,于是有 MEPG-4,适合低比特率下的通信。
另外, MPEG4 的意义,是在视频编码发展史上第一次把编码对象从图像帧拓展到具有实际意义的任意形状视频对象(VO),实现了从基于像素的传统编码向基于对象和内容的现代编码转变。
开源 MPEG 4 编码器: DivX(伪开源)和 XviD(真开源)。
HTML 5 所使用的编码就是 h.264(mp4),但因 h264 因某些专利所以较 Firefox 所支持 Ogg 格式来说不那么开放。
流媒体传送和相关协议
无论哪一种系统,其基本原理多是一样的:首先通过采用高效的压缩算法(在降低文件大小的同时伴随质量的损失),让庞大的多媒体数据文件变得小一些以适合流式传输,然后通过假设流媒体服务器,修改 MIME 表示,通过各种实时协议传输流数据。常见的协议有:RTP、RTCP、RTSP、RSVP、MMSP。
RTSP 协议
RTSP 明智的采用 HTTP 观念,使得结构可以重用。结构包括 Internet 内容选择平台,明文报码的文本协议,并使用网页安全机制,可由标准 HTTP 或 MIME 解析器解析。可使用 UDP OR RDP 传输。使用 RTSP 时,Client 和 Server 都是发出请求,即 RSTP 可以是双向,双工的。HTTP 请求有客户端发出,服务器做出响应。 HTTP 传送HTML,而 RTP 传送的是多媒体数据。
MMSP 协议
当使用 MSS 协议链接到发布点时,MMS协议按照下列顺序自动查找流媒体的最佳传输途径:
(1)UDP(用户数据报协议)
(2)TCP(传输控制协议)
(3)HTTP(超文本传输协议)
UDP 协议是无链接的传输层协议,因为不保证传送,因而对于实时媒体是一种理想的协议。虽然这听起来似乎是一个缺点而不是优点,但它是非常适用于流媒体的一种特性。流媒体数据与文件、电子邮件数据不同:文件、电子邮件等数据必须作为整体进行传送,不管传输时间的长短;而流媒体数据的价值受时间限制,如果视频帧丢失,由于无法在正确的时间帧内到达,所以就无价值可言,再次传说该数据就是浪费带宽。指定仅将 UDP 用作传输协议时有可能的。为此可以使用下列做法:
mmsu://servername/filename.asf
这里 mmsu 表示 MMS 协议结合 UDP 协议进行数据传送。
UDP 的缺点是不能通过公司的防火墙。或者需要你的网管去打开。如果 mmsu 链接不成功,而服务器试图使用 mmst,即是用 MMS 协议结合 TCP。TCP 是主流的 Internet 传输协议,其缺点是会设法重新传输数据,而且也有可能无法通过公司的防火墙。指定仅将 TCP 用作传输协议的语法为:
mmst://servername/filename.asf
最后一个选择是 HTTP。虽然 HTTP 是应用程序层的协议而非传输层的协议,并且不失为流媒体专门设计的,但是它可以通过防火墙,任何能够浏览 Web 的人都可以通过 HTTP 协议接受流文件。指定仅将 TCP 用作传输协议的语法为:
http://servername/filename.asf
P2P 协议
对等网络P2P 是为了解决 C/S 模式下服务器负荷加剧的问题而生的。P2P主要应用到了分布式网络,其中分布式网络又可以分为结构化网络和非结构和网络。
在非结构化P2P中1,对等机通过与相邻对等机之间的连接遍历整个网络(这种查找方式称为泛洪式 flooding 的查找)。每个对等机在功能上都是相似的,没有专门的服务器,而对等级必须依靠它们所在的分布式网络来查找文件和定位其他对等机上的资源。
在结构式P2P中,网络节点按照一定的方式分配一个唯一节点标识符,所有有关查找和选路的操作都是基于 DHT(Distributed Hash Table)的分布式发现和路由算法在 Overlay 层面进行的。其本质就是在查找文件和单位其他客户端的时候引入了重定向机制,核心:DHT。
P2P 直播
P2P直播室最能体现P2P价值的表现,用户在观看同一节目,内容趋同。在线用户可以接近无限。
网状多播模式被誉为流媒体直播方面的里程碑,应用例子 PPLive 和 PPStream(无结构网络协议)
点播
相对直播发展较慢,期望大规模分布式数字版权保护(DRM)和底层编码技术的发展为P2P点播系统的实施铺平道路。
P2P 网络结构
两大类:基于树(Tree-based)he 数据驱动随机化的覆盖网络结构。
BT 典型的无结构网络协议,还有 Gnutella 和 KaZaA(但存在一种“超级节点”,相似的方案还有 Skype)
http://wenku.baidu.com/view/7e816ecfa1c7aa00b52acbfb.html
http://pda.c114.net/32/c4558.html