基于Windows Media技术的流媒体系统的设计与实现
摘要:本文在简介流媒体技术及其中的Windows Media技术的基础上,结合实际简述了Windows Media服务器的安装、ASF文件的制作以及“点播单播发布点”、“广播单播发布点”、“多播广播站”的创建,并通过网页链接等方式进行了相关测试,从实践角度阐述了在中实现流媒体服务的技术和方法。 关键词:Windows Media 流媒体 网络视频 笔者利用Windows 2000 Server自带的Windows Media Service搭建了一个环境,经过一番努力,终于实现了流媒体服务。欣喜之余,谨愿将这些探索并经验与读者共享;
1.流媒体技术概述
流媒体简单地说就是流式传输技术在Internet/Intranet上传输的连续时基媒体,如:音频、视频或多媒体文件。流式媒体在播放前并不下载整个文件,只将开始部分存入内存,流式媒体的数据流随时传送随时播放,只是在开始时有一些延迟。流媒体实现的关键技术就是流式传输。流式传输主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet将影视节目传送到PC机。流媒体技术是包含了采集、编码、传输、储存、解码等多项技术的综合技术。
2. Windows Media技术简介
2.1 特点
Microsoft公司推出的Windows Media技术具有方便性、先进性、集成性、低费用等特点,而且其制作、发布和播放软件与Windows NT/2000/9x集成在一起,不需要额外购买。Microsoft的流视频解决方案在Microsoft视窗平台上是免费的,制作端与播放器的视音频质量都上佳,而且易于使用。
2.2 Windows Media播放方式
Windows Media播放方式包括单播、多播、点播与广播,并可组合为点播单播、广播单播、广播多播等播放方式。它们的含义如下表所示:
播放方式 含义
单播 是客户端与服务器之间的点到点连接。在客户端媒体服务器之间建立一个单独的数据通道,1台服务器送出的每个数据包只能传送给1个客户机。
多播 是通过启用多播的网络传递内容流,网络中的所有客户端共享同一流。由多播技术构建的网络,允许路由器一次将数据包复制到多个通道上。采用多播方式,媒体服务器只需要发送一个信息包,所有发出请求的客户端即可同时收到连续的数据流而无延时。多播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽,是理想的播放方式。
点播 是客户端与服务器之间的主动的连接。用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽。
广播 指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流。例如,用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要。此种传输方式会非常浪费网络带宽。 组合播放方式 含义
点播单播 客户端连接到服务器以接收特定内容,而该内容也只传往一个客户端。用户可以控制流。
广播单播 客户端通过发布点上的别名访问流。用户可单击 Web 网页上的链接或获得该别名的 URL,从而连接到流。每个连接到流的用户都有其自己的连接和来自服务器的流。
广播多播 被动的用户通过监视特定的 IP 地址接收多播 ASF 流(与以特定频率从收音机或电视台接收信号类似)。 2.3 Windows Media视频技术组成
Windows Media视频服务器系统包括以下几个部分:Windows Media服务器组件、Windows Media工具、Windows Media Player。
2.4 Windows Media编码器
Windows Media编码器用于转换实时和存储的视频和音频内容为ASF流,然后通过Windows Media服务器在网络中传送。
2.5 Windows Media Player
Windows Media客户端软件称为Windows Media Player,由Windows Media服务器接收并播放流内容。Windows Media服务使用Windows Media Player以播放包含视频、音频、图像、URL和脚本内容的ASF流。Windows Media Player 9系列是最新版本。
2.6 Microsoft高级流格式ASF简介
Microsoft公司的Windows Media的核心是ASF(Advanced Stream Format)。 Microsoft将ASF定义为“同步媒体的统一容器文件格式”。ASF是一种数据格式,音频、视频、图像以及控制命令脚本等多媒体信息通过这种格式,以网络数据包的形式传输,实现流式多媒体内容发布。
3. Windows Media校园流媒体系统的设计
3.1 网络结构设计
Windows Media流媒体系统包括服务器端和用户端两部分。服务器端包括Windows Media服务器、制作机。Windows Media服务器用于存储和发布流媒体信息。制作计算机安装视频采集卡、声卡及摄像机,用于制作流媒体文件。用户端安装Windows Media Player软件。数据传输依托校园网。
3.2 软硬件要求
3.2.1服务器
服务器硬件配置一般是PIII400以上CPU,内存在128~512M左右。操作系统Windows 2000 Server及Windows Media服务组件。
3.2.2制作计算机
制作计算机硬件配置一般是PIII400以上CPU,内存在128~512M,需要声卡、视频采集卡以及VCD或录像机。软件为Windows 98或Windows 2000 Professional,安装Windows Media编辑工具。 4. Windows Media校园流媒体系统的实现
4.1 Media服务器的安装
笔者所用微机(P4 1.8G,256M)已连入校园网,并能上因特网,操作系统为Windows 2000 Server,并添加了“Windows Media服务”和“Internet信息服务(IIS)”。
由于学校条件所限,笔者所用的Media服务器和制作机暂时为1台微机。网上下载并安装Windows Media 9系列的中文版播放器和编码器,下载网址为:http://www.microsoft.com/windows/windowsmedia/download/default.asp
4.2 ASF文件的制作
笔者在微机上安装了Broadway视频采集卡,并通过录像机采集了两段AVI格式的录像,分别命名为LX1.AVI和LX2.AVI。通过Windows 2000 Server自带的编码器Windows Media Encoder可以很容易地将两个AVI文件转换为ASF文件:LX1. ASF、 LX2. ASF。在F盘上建立文件夹ASF,将两个ASF文件存入(为表述方便,文中所用文件名、路径、计算机名称、IP等,皆为笔者实际实验过程所用,读者可根据自己实际环境确定这些)。也可用Windows Media编码器9系列存为WMV格式文件,但要求客户端播放器必须为7.0以上版本4.3 使用“快速启动向导”创建“点播单播发布点”
在F盘上建立文件夹“asx”并设为共享,以便在后续操作中放置“.asx”通知文件。
在 Windows Media 管理器菜单框中单击“单播发布点”,出现“单播发布点”页。确保选择了“使用向导创建新的点播单播发布点”复选框,单击“点播”,然后单击“新建”, 出现“配置和发布单播点播流快速启动向导”。
在“选择一个发布点”屏幕中,选择“创建一个发布点”。在“创建一个新的发布点”屏幕中,在“别名”框中键入别名为“asf”。在“路径”框中,键入“F:\\asf\\”。在"查找目标 .asf 文件"屏幕,输入“F:\\asf\\lx1.asf”。在“选择发布”屏,选择“MMS协议”和“创建一个.asx文件”,然后选择 “下一步”。在“准备发布”屏幕中,选择 “完成”。
将“lx1.asx”通知文件保存到“F:\\asx\\”里面。在“发布完成”屏幕中,单击“测试 URL”、“测试 .asx”可以在 Windows Media Player 中传递点播单播发布点的流式化内容“lx1.asf”。
4.4 “广播单播发布点”的创建
4.4.1启动“Windows Media编码器9系列”的广播功能,步骤如下:
打开视频采集设备,启动“Windows Media编码器9系列”。在“新建会话”窗口中选择“广播实况事件”,按“确定”。
在“新建会话向导”窗口的“设备选项”屏中,“视频”选择“Broadway MPEG Capture/compression”(笔者的微机视频采集卡型号),“音频”选择“Realtek AC97 Audio”(笔者的微机声卡型号),按“下一步”。在“广播方法”屏中,选择“自编码器拉传递”,按“下一步”。在“广播连接”屏中,HTTP端口设为“8080”,按“下一步”。在“编码选项”屏中,选择“多比特率视频和音频”,按“下一步”。在“存档文件”屏中,按“下一步”。在“包括视频文件”屏中,按“下一步”。在“显示信息”屏中,随便输点东西(最好有意义),按“下一步”。在“设置检查”屏中,按“完成”。
在“Windows Media编码器9系列”程序窗口中,按“开始编码”,“Windows Media编码器9系列”开始工作,在窗口中可看到其采集画面和相关信息。
4.4.2使用“快速启动向导”创建“广播单播发布点”
在 Windows Media 管理器菜单框中单击“单播发布点”,会出现“单播发布点”页。确保已选择了“使用向导创建新的广播单播发布点”复选框,单击“广播”,然后单击“新建”,会出现“配置和发布单播广播流快速启动向导”。
在“选择发布点”屏幕中,选择“创建一个广播发布点”。在“指定源”屏幕中,为广播内容选择源为“Windows Media 编码器”。在“配置和发布单播流”屏幕中,在“别名”框中键入一个别名“test”。然后在“路径”框中键入路径“http://mediaserver”(笔者的计算机名为mediaserver,IP为10.10.214.161), “端口”框中的值设为“8080”。在“选择发布方法”屏,选择“MMS协议”和“创建一个.asx文件”,然后选择 “下一步”。在“准备发布”屏幕中,选择 “完成”。
将“test.asx”通知文件保存到“F:\\asx\\”里面。在“发布完成”屏幕中,单击“测试 URL”、“测试 .asx”,可以在 Windows Media Player 中传递广播单播发布点的流式化内容。
4.5 使用“快速启动向导”创建“多播广播站”
在F盘上建立文件夹“nsc”并设为共享,以便在后续操作中放置“.nsc”广播站信息文件。
在 Windows Media 管理器菜单框架中,单击“多播站”,相应显示为多播广播站页。确保已选择了“使用向导创建新广播站”复选框,单击“广播站”,然后单击“新建”,出现“配置和发布多播流快速启动向导”。
在“选择一个广播站”屏幕上,选择“创建新的广播站”。在“创建新的广播站”屏幕上,键入广播站的名称“guangbo1”和说明(随便填),然后选择“分发模式”为“多播和分发”,按“下一步”。在“指定节目和流名称”屏幕上,在“节目名称”中键入节目的名称“myProgram1”,在“流名称”中键入流的名称“myStream1”。 在“指定流对象来源”屏幕上,选择流的来源为“高级流格式(.asf)文件”。在“指定流对象来源 URL”屏幕上,键入流的来源 URL“mms:// mediaserver /asf/lx2.asf”。在“指定流格式信息”屏幕上,指定流来源的路径为“F:\\asf\\lx2.asf”,以便将流格式信息添加到广播站定义中。
将多播广播站信息文件(guangbo1.nsc)存储到 Microsoft Windows Media Player 可以访问的位置。在“广播站信息文件的导出路径”屏幕上,键入“F:\\nsc\\guangbo1.nsc”。在“广播站信息文件 URL”屏幕上,选择“使用一个到广播站信息文件的共享路径”并输入“\\\\ mediaserver \\nsc\\guangbo1.nsc”。 在“选择发布方法”屏幕上,按“下一步”。在“准备发布”屏幕中,按“完成”。
将guangbo1.asx保存到F:\\asx里面。在“发布完毕”屏幕上,单击“测试 .asx”,开始在 Windows Media Player 中播放由广播站发送的内容流。
4.6 建立默认Web站点虚拟目录
启动“Internet信息服务”窗口,点开服务器名“mediaserver”前的“+”号,再右击“默认Web站点”,打开其快捷菜单。在快捷菜单中,点“新建”中的“虚拟目录”,启动“虚拟目录”创建向导,按“下一步”。在“虚拟目录别名”屏中,输入别名“asx”,按“下一步”。在“Web站点内容目录”屏中,输入“F:\\asx”,按“下一步”。在“访问权限”屏中,按“下一步”。在“Web站点内容目录”屏中,输入“F:\\asx”,按“下一步”,再按“完成”,结束向导。
4.7使用网页链接进行测试
启动“Microsoft Frontpage”程序窗口。将网页保存到“F:\\asx”里面,起名为“index.htm”。
插入一个九行两列的表格。在第一行输入“1.请测试“点播单播发布点”:”,在第二行第一列输入“点播单播一”,链接到http://mediaserver/asx/lx1.asx;在第二行第二列输入“点播单播二”,链接到http://10.10.214.161/asx/lx1.asx;在第三行第一列输入“点播单播三”,链接到mms://mediaserver/asf/lx1.asf;在第三行第二列输入“点播单播四”,链接到mms://10.10.214.161/asf/lx1.asf。分别试验四种访问方法在第四行输入“2.请测试“广播单播发布点”(要先启动“Windows Media编码器9系列”的广播功能):”,在第五行第一列输入“广播单播一”,链接到http:// mediaserver /asx/test.asx;在第五行第二列输入“广播单播二”,链接到http://10.10.214.161/asx/test.asx;在第六行第一列输入“广播单播三”,链接到mms:// mediaserver /test;在第六行第二列输入“广播单播四”,链接到mms://10.10.214.161/test。分别试验四种访问方法。
在第七行输入“3.请测试“多播广播站”(要在“多播广播站”中先启动节目):”,在第八行第一列输入“广播多播一”,链接到http:// mediaserver /asx/guangbo1.asx;在第八行第二列输入“广播多播二”,链接到http://10.10.214.161/asx/guangbo1.asx。分别试验两种访问方法。
在任一台联入校园网的微机上输入http://10.10.214.161/asx/index.htm,均可访问该网页。通过点击,可访问“点播单播”、“广播单播”、“广播多播”等媒体流。提请读者注意,笔者的IP只在淄博市内使用,在没有启用多播和路由访问的网络中,以上媒体流可能会访问不到。
4.8 实验效果
在笔者所在学校的校园网环境中(近50台微机,主干网100M,桌面10M),每一台微机均能访问笔者所做的流媒体服务器并能较流畅地播放“点播单播”、“广播单播”、“多播广播”等媒体流,并发访问的客户端在20台以内为宜。学校拍摄的许多教学录像,经笔者进行处理并通过流媒体服务器提供对全校的播放服务,受到了全校师生的欢迎,取得了很好的效果。
[1]Microsoft Corportion, “Windows 2000 Server 配置服务器帮助”, 2000.
[2]吴国勇、邱学刚、万燕仔编著,《网络视频流媒体技术与》,北京邮电大学出版社,2001.
[3]刘晓平、孔明光、吴斌编著,《Windows2000中文版实用教程----Server篇》,水利水电出版社,2000