1 Overview
在流媒体技术中,播放列表是定义了一系列播放内容(比如音视频等)以及相应的播放行为(比如随机、重复播放等)的一个文件。不同的解决方案的区别主要在以下几个方面:
- 播放列表文件规范及所支持的功能等
- server端列表及client端列表
- 支持的流媒体协议
- VOD及Live
- 服务器及相关工具
参考文档:
http://msdn.microsoft.com/library/ms752512.aspx
http://msdn.microsoft.com/en-us/library/cc645037(VS.95).aspx
http://msdn.microsoft.com/en-us/library/cc251158(PROT.10).aspx
http://msdn.microsoft.com/en-us/library/aa914047.aspx
http://msdn.microsoft.com/en-us/library/cc251059(PROT.10).aspx
http://webhelp.ucs.ed.ac.uk/domsdemo/playlists.html
2 ASX (Advanced Stream Redirector)
ASX文件是存在于服务端以实现客户端的列表播放功能(client side playlist)。主要具有以下特性:
- 播放列表的解析、播放控制等完全由客户端完成
- ASX文件以HTTP response的形式传给客户端
- ASX的服务端仅仅依赖于HTTP web server
- 语法基于XML,解析十分方便
- 支持HTTP协议
ASX本身的语法就不介绍了,微软的文档已经十分详细。ASX是以HTTP response的形式传给客户端的。由于ASX是基于XML的, 所以可以采用DOM或SAX解析。个人推荐使用DOM方式,原因如下:
- 比SAX方式解析要方便一些
- ASX文件本身一般不会太大,所以时间和空间上的开销可以忽略
- 方便ASX文件的错误检查
另外一个需要注意的是ASX规范里说明element的名称、属性等不区分大小写,但是很多XML解析工具是区分大小的。
3 WSX
WSX文件是存在于服务端以实现基于服务端的列表播放功能(SSPL: server side playlist)。主要特性如下:
- 播放列表的解析、媒体内容的无缝切换等都由服务端完成
- 客户端仅仅把列表文件当成一个普通的媒体文件向服务端发出播放请求
- WSX依赖于微软Windows Media服务器
- 支持点播及广播模式,但不支持下载媒体文件到本地播放
- 语法基于SMIL(Synchronized Multimedia Integration Language),微软在此基础上进行了扩展
- 支持RTSP和MS-WMSP(即Windows Media HTTP)协议
3.1 RTSP
待补充。
3.2 MMSH
详细规范请参考MS-WMSP。主要的通信流程如下: