陈锦平
摘 要 视频直播、屏幕直播等网络直播技术是实现远程教育的关键技术。笔者结合开发与应用实践,介绍了基于Microsoft Windows Media Service 的视频直播、屏幕直播及节目录制系统的实现原理和方法。系统采用推传递传输数据。
关键词 流媒体,视频直播,屏幕直播,推传递
一、引言
系统采用微软公司的Windows Media 系列,包括编码器端、服务器端和客户端,编码器端采用Windows Media Encoder,客户端采用Windows Media Player,服务器端采用Windows Server 2003内集成的Windows Media服务器。编码器和播放器采用Windows Media 9系列版本。节目录制软件是根据Windows Media Encoder 9 SDK,用VB6.0开发的。系统支持节目的组播 (Multicast),满足大量用户收听收看教学节目的需求。为解决互联网对组播协议的不支持问题,系统可通过单播 (Unicast) 中继的形式将视频会议内容在互联网上进行传输,并以组播 (Multicast) 的方式在末端局域网进行发散,提高了整体应用的效率。
本文结合笔者开发和应用实践,首先介绍视频直播、屏幕直播等网络直播及录制系统的组成与基本原理,然后介绍用VB6.0开发网络直播系统的关键步骤。此系统应用于远程教学系统中,效果良好。
二、系统软件组成
视频编码计算机:Windows Media Encoder9,视频、音频输入设备驱动程序,直播系统软件(下面需要开发的);视频服务器:Windows Server 2003, Windows Media Service;客户机:嵌入Windows Media Player 9或以上版本的网页程序。
三、系统实现
实验中使用一台机器作为服务器和编码器。装好Windows 2003 Server,Windows Media Encoder9,VB 6.0,安装好USB摄像头,声卡。
1.服务器设置
启动Windows Server 2003管理工具中的Windows Media Service,设置机器IP地址为192.168.0.238,按照“新建”向导配置发布点,关键有两点:
(1)Windows media服务器属性设置“WMS HTTP控制协议启用”,WMS 发布点 ACL 授权添加Everyone的写入权限。也可启用“WMS IP 地址授权授权”,加入编码器机器IP的权限。
(2)按照“添加发布点(高级)”向导,源位置里输入“Push:*”,编码器(推)方式建立两个发布点例如:station0和station1。启用“WMS 多播数据写入器”。
发布点配置完成后,必须生成两个配置文件:station0.nsc 和station0.asx文件。其中.nsc文件是发布点配置文件,可用于多播,.asx是视频流发布文件,这两个文件应保存于服务器的www根目录下,便于客户端访问。注意在生成.nsc需要视频编码格式样本文件,可以通过Windows Media Encoder9录制一段作为样本。
2.客户端设置
客户端是嵌入Windows Media Player 9的网页文件,在IE浏览器中,Windows Media Player的ActiveX控件是通过Object标签嵌入的,其主要程序代码如下:
<OBJECT ID=”MediaPlayer” WIDTH=”410” HEIGHT=”370”
CLASSID=”CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6”>
<PARAM name=”volume” value=”80”>
<PARAM name=”url” value=”http://192.168.0.238/station0.nsc”>
</OBJECT>
其中url可以是mms:// 192.168.0.238/station0, mms:// 192.168.0.238/station1,执行单播访问。http://192.168.0.238/station0.nsc执行多播访问。
远程教育系统一般需要同时传输视频和屏幕,所以需要在同一个页面中显示两个视频源。网页中同时嵌入多个Windows Media Player的ActiveX控件则可以同时显示多个视频源信息。其参数url连接到不同的发布点。
四、网络直播系统的开发
网络直播系统是根据Windows Media Encoder 9 SDK提供的开发功能,使用VB6.0开发的。要使VB6.0支持Windows Media Encoder的方法,需要在“Project”的“References” 中添加Windows Media Encoder的对象库,包括:Windows Media Encoder,Windows Media Encoder Agent,Windows Media Encoder Agent Locator等,软件界面设计下图所示。因为系统要实现两路视频源的直播,所以需要定义两套WMEncoder object,例如Encoder和Encoder2。系统主要程序代码实现如下:
|