IPTV影音服务之设计与实作

时间:2022-09-17 04:38:30

IPTV影音服务之设计与实作

摘 要: 由于数位化及互动化的需求,IP技术也自然导入到 TV的领域,演变成所谓 IPTV服务。视讯资料需具有实时性及高带宽的需求,所以各国在发展宽带网路的过程,都把IPTV服务的成功视为重要技术的突破。影音服务的丰富度及展现性是IPTV产业成功的重要因素,所以以串流影音区段播放、前台页面广播消息侦测、封锁特定IP使用者及限制最大上线人数、影片播放状态侦测等技术,以实践影音内容快速重组机制以呈现特定主题之影音服务,影音及视讯强制广播功能,以及在线人数及带宽有效掌握等影音服务。整体系统是架构在Media Service 9, Microsoft Visual Studio 2008, SQL Server 2000等环境开发。

关键词: IPTV; SMIL; 时序数据库; 影音控制; 多媒体随选

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2013)08?0079?05

1 研究动机与目的

由于数位化及互动化的需求,IP技术自然而然地导入到 TV的领域,演变成所谓的 IPTV[1]。由于视讯资料需具有实时性(real?time)及高带宽的需求,所以各国在发展宽带网路的过程,莫不把IPTV服务的成功视为重要的技术突破。台湾的中华电信在2003年10月正式宣告MOD(Multimedia on Demand)的服务,历经近九年的时间,目前(截至2012年4月底)已突破百万用户的规模;有线电信业者也在许多区域进行IPTV的服务测试,这些都有助于将视讯服务的对象,由传统TV族群,扩及到计算机网路族群。

影音服务的丰富度及展现性,是IPTV产业成功的重要因素。因此本文发展了串流影音区段播放、前台页面广播消息侦测、封锁特定IP使用者及限制最大上线人数、影片播放状态侦测等技术,让内容提供商在数字版权的不可重制性及破坏性的前提下[2],将影音内容快速重组以呈现特定主题之影音服务;除了传统的点播服务外,亦能提供影音及视频强制广播功能;同时又能有效掌握在线人数及带宽。本文以W3C定义的SMIL(Synchronized Multimedia Integration Language)技术来达到影音内容组合及分割的区段播放功能;由于.NET的Application及Session物件的变量存取,在前台页面判断后台的广播消息;在后台以IP位置及联机数来达到封锁特定IP及设定最大在线影音观看人数;通过Windows Media Player之播放属性,来判断前台影音目前的播放状态,达到影音的播放控制。

整体系统是在架构在Windows Server 2003,结合了Media Service 9, Microsoft Visual Studio 2008, SQL Server 2000等开发环境。经测试,系统确能有效达成上述之功能,使IPTV的影音服务更具弹性及丰富度。

2 文献探讨

2.1 微软开发环境

MMS(Microsoft Media Server)为一种串流媒体传送的通信协议,若用户在任何计算机的Windows Media Player中开启一个URL以连接影音内容,则必须使用MMS协议引用该串流。微软Windows Media Services指定某个文件夹为影片目录来源,以作为影音服务器设定MMS的发行端点。由于播放来源可能是一个影片档案或是播放列表,因此可以设定2个MMS发行端点,让其中一个目录文件夹专门存放完整的影片档案;另一个则存放影片播放列表。SMIL为一种XML语言[3] ,而wsx (WCF service extension)是微软Media Services特有的文件格式,为一种 XML 档,可以使用SMIL定义播放列表中的内容,以及播放列表应有的行为表现。wsx 文件支持各种项目和属性(Attribute),以加强对媒体播放的控制,而不只是单纯地作播放视频。wsx档案必须存放在Windows Media Service专属的playlist目录夹,并且利用语法clipBegin及clipEnd将影片做区段播放[4?5]。

在微软的开发环境下,可以使用Application及Session物件,在同一个Web网站间传递和保存不同用户端的资料。同一个Web应用程序和不同用户端的数据传递和保存,可以去存取Application变量,例如:在线人数统计、网站浏览次数。同一个Web应用程序和相同用户端的数据传递和保存,可以去存取自己专属的Session变量,例如:使用者个人资料及设定。Global.asax档案定义了Application或Session物件起始或结束时需要执行的动作,以响应Application或Session的事件[6]。ActiveX是微软Component Object Model的技术之一,可以在Web网页中插入多媒体效果、并产生互动及执行复杂程序。ActiveX提供了许多ActiveX控件(ActiveX controls),微软Windows的应用软件就利用ActiveX将这些应用软件的某些功能封装成ActiveX控件,使用内嵌方式嵌入到其他的应用程序。Windows Media Player是以Object元素内嵌在Web网页。object元素中包含param元素,可以指定Windows Media Player 的ActiveX控件、操作按钮,以及其他内容。Windows Media Player 9 Series SDK定义了许多ActiveX控件的属性(Property)、事件(Event)和方法(Method)。JavaScript可以控制这些属性、事件和方法。与串流播放有直接关系的属性为PlayState,其值可以代表播放器运作的情况。例如,playState的值为1代表影片状态为停止;值为2代表影片状态为暂停;值为3代表影片状态为播放。在要引用此属性时,必须要先知道网页中Windows Media Player物件的id名称,例如id为MPlyr的话,语法MPlyr. playState就可以得知目前播放器播放之状况。

2.2 Smart?iTV系统

Smart?iTV系统为本研究室与台湾梦工场科技及中华电信MOD合作8年的开发平台。Smart?iTV是一个IPTV影音播放平台,影音服务的相关内容是由管理员先在后台管理系统,将文字、缩图及影音的meta?data(影片名称、影片来源、主题类别、影片描述、提供者)等数据建立于数据库中。前台服务页面再从数据库中读取这些信息,将内容呈现给观众[7?10]。系统是架构在Windows Server 2003,结合了Media Service 9, Microsoft Visual Studio 2008, SQL Server 2000等环境来开发。

3 使用情境及系统架构

3.1 影音内容快速重组机制以呈现特定主题之影音服务

本文的时序数据库(Time Code Database),纪录不同影音内容的组合时序及分割时序之meta?data。所以影音服务的播放对象,不是影音内容本身,而是由时序数据库的meta?data所组合的SMIL档案。以总长120 min的球类介绍影片(档名为Sport.wmv),其中包含6个不同的主题段落:0~20 min为篮球的历史发展,20~40 min为篮球的比赛规则;40~60 min为排球的历史发展,60~80 min为排球的比赛规则;80~100 min为桌球的历史发展,100~120 min为桌球的比赛规则。

由于影片都是节目内容商所制作提供,所以学校外购的影片有时候很难符合各老师的教学需求。比如有A,B,C三位体育老师,A老师想规划的课程单元是篮球介绍,B老师想规划的是各球类的比赛规则,而C老师想规划的则是各球类的发展历史。所以上述的Sport.wmv就会被这3位老师的课程规划需求而被以时间区段形成的meta?data来作区隔。课程规划单元及时间区段则如图1所示。三位体育老师想播放的区段中,有部分是重迭的。若现在按照传统方式使用影音软件剪辑,不但耗时且有影片著作权等问题。加上会有多个影片档案的产生,对于片段的重复,更会浪费系统服务器上的储存空间[9]。

三位体育老师的不同课程规划,可以在Smart?iTV后台管理页面(如图2中的步骤1所示),将Sport.wmv这部影片依照各自的课程规划,设定不同的区段播放时间(如图2中的步骤2),这些meta?data会记录在Time Code Database中(如图2中的步骤3)。学生只要联机至前台服务页面,透过微软Media Service的串流功能,自动从Time Code Database中读取时间段落信息,就可以呈现不同课程单元之影音区段给学生点播(如图2中的步骤4)。同样的Sport.wmv影音档,却可同时提供3种课程单元,对课程规划的弹性及丰富度,确实有很大的帮助。

以上位体育老师将Sport.wmv依照自己的课程规划,分割成不同段落,这些段落的开始时间及结束时间是记录于Time Code Database中的。如表1所示,其中s1是老师A设定;s2,s3,s4是老师B所设定;s5,s6,s7是老师C所设定。由于老师C只想在前台服务页面呈现一个各球类历史发展的按钮选项, 因此s5,s6,s7为此选项相对应之区段影音。

表1 3位老师规划不同时间区段需求纪录于

Time Code Database,影音檔名同为Sport.wmv

当3位老师于Smart?iTV后台管理页面设定完每一个影音区段后,前台服务页面就会自动产生一个相对应之点播选项;若老师想要使用一个点播选项包含所有影音段的话,这时可以将所需要之影音段落全部写入到wsx的程序代码中。以老师C规划之各球类历史发展课程为例,前台服务页面产生之点播选项只有一个,其wsx的程序代码如图3所示。

3.2 影音及实时视讯强制广播功能

当系统管理员想要主动将影音信息实时让观众收看,就必须使用广播。广播方式有2类,一类为影音档案广播;另一类为实时视频广播。假设学校每间教室都有装设Smart?iTV系统,平常提供师生点播影音内容。若今天学校想要做防灾影片倡导,点播方式无法保证每位师生都会去收看;因此将不同类的灾害,如:地震、火灾等,制作成一个影音档案,就可通过Smart?iTV后台管理页面,主动将影音档案实时广播。若今天因为台风因素,学校临时接获通知要向全校师生宣布停班停课,便可以在后台管理页面,通过摄影机,就可以将此信息以实时视频广播,快速让全校师生知道。当广播发生时,前台页面会暂停目前的服务,强制导入后台广播消息;当广播结束时,会自动导回原来的服务画面。当后台无广播事件发生时,前台页面正常提供点播服务,如图4所示;当要立即进行影音档案或live视频广播,学校可以在后台管理页面点选开始广播。这时无论前台服务页面的动作如何,都会被暂时中断并强制收看广播消息,如图5所示。此功能有别于点播方式,学校可以更实时主动地将影片播放给师生观看。影音档案本身是一个wsx档案,存放路径和点播的影音档案一样,都是放在playlist文件夹,通过MMS串流协议读取播放;而live视讯广播,需要外接一部摄影机,通过Windows Media Encoder进行编码,Smart?iTV再读取此串流影音的发行端点进行播放。

3.3 在线人数及带宽有效掌握

影音控制的目的,在于掌握服务器的影音带宽使用,并且可以设定在线最大联机数,降低服务器带宽的负担。系统管理员可以在后台页面查看所有在线用户的IP位置及设定最大在线影音观看人数。若发现有可疑的IP位置,可能会危害到系统本身效能,此时可以针对这些IP位置进行封锁动作,而被封锁的IP位置,就无法于前台页面播放影片。对于影音带宽的控制,主要是利用Application物件、Session物件来取得目前实时的用户信息,监控所有在线正在播放影音的使用者,同时也可以中断使用者影音的播放。若系统管理员在后台管理页面将IP位置为120.96.183.88的使用者加以封锁,并设定最大影音观看人数为300人。储存完成后,设定值会传送至前台服务页面。当前台服务页面有观众要点播影音时,页面会检查是否有被封锁的IP位置及影音观看人数是否超过设定值。如图6所示,第301位及IP位置为120.96.183.88的观众,就无法点播影音。

最大影音观看人数示意图

4 系统实作技术

4.1 影音内容快速重组机制以呈现特定主题之影音服务

为了呈现不同教学单元的需求,于Smart?iTV前台服务页面中,选单会依照3位老师的规划出现篮球介绍、各球类比赛规则介绍及各球类历史发展介绍的页面。以体育老师C为例,老师C将不同的影音区段合成同一个点播选项。当观赏者点选这些选项时,该影音段落就可以直接播放。

图7虽然是单选主题,影片其实都是来自同一个档案的3个不同的时间区段(见表1及图3),此3个时间区段对应的开始播放时间及结束播放时间分别记录在Time Code Database中,但前台服务页面则以单一wsx播放列表组合再一起(见图3),当用户点播时,则依序连续播放,如同播放单一影音服务一般。

后台管理页面设定的这些影音相关信息,都会写入到Smart?iTV的Time Code Database中,并自动产生wsx档案。当观众从前台服务页面播放影音时,系统会导入到镶嵌在Web网页中的Windows Media Player,并透过MMS串流协议连结相对应的wsx档,藉由wsx档案取得影音区段播放时间,开始做播放。以老师C的课程规划页面为例,如图8所示。

4.2 影音及实时视讯强制广播功能

前台服务页面每3 s就会自动侦测一次后台是否有广播事件发生。当影音或live视频广播事件发生时,前台服务页面会暂停所有动作,并强制导入到广播页面。广播页面导入后,前台页面中嵌入的Windows Media Player会依据广播类型的不同,让MMS串流协议读取的档案也不同。(影音广播是读取wsx档案;实时视频广播是读取一串URL)。无论使用何种广播方式,此时观众皆无法再进行任何指令操作。广播影音或实时视频结束后,前台页面会自动导回原来的点播画面,让观众继续使用。若要使用影音档案广播,可以在后台管理页面选择广播清单后,按下开始广播按钮。若要使用实时视频广播,可以将影音编码的发行端点,设定直播网址字段,如图9所示。前台服务页面一旦侦测到有广播消息,任何动作会被暂时中断,并强制导入广播影音内容。

当在后台按下开始广播按钮后,后台broadcast_control.aspx页面会改变广播状态为playing,储存在Session物件的BroadStatus变量中;并将广播消息如影音广播、实时视频广播的文件名,储存在Application物件的broad_data变量中(对于影音广播来讲,例如:aaa.wmv;对于实时视频广播,例如:http://120.96.183.35:8080)。前台Default.aspx页面每3 s就会使用JavaScript呼叫一次broadcast_check.aspx页面(broadcast_check.aspx是以iframe方式嵌入在Default.aspx页面),该页面会从Session物件中读取广播状态,以及从Application物件中读取广播的文件名。若有广播事件发生,则会导入至前台msplayer.aspx播放页面,并从 Application变量值取得广播的文件名,透过微软MMS串流协议开始播放。如图10所示。

广播影片播放完毕后,系统自行导回至点播时的画面。前台播放器msplayer.aspx页面的JavaScript每1 s会呼叫一次media_time函式,去检查Windows Media Player的playState属性。如果playState等于0的话,代表影音广播或实时视频广播停止,就自动回到用户原来的画面。程序代码如图11所示。

4.3 在线人数及带宽有效掌握

当使用者上线时,若超过后台设定之最大在线人数,系统会显示已超过最大联机数的提示窗口,用户即无法再做影音播放;当使用者正在观赏影音,若使用的IP位置已被后台封锁,系统会显示此IP位置已被封锁的提示窗口,影音自动停止播放。当管理员将最大联机数的值设定完成后,此值会储存在后台的media_control.aspx页面的Session物件的max_user变量中;等到前台msplayer.aspx播放页面时,会从Session取得变量值,判断其值是否超过最大联机数。此外,管理员要中断某特定IP的使用者的影音播放,该IP将设定在Application物件的User_IP变量;而前台的msplayer.aspx页面的JavaScript每1 s执行media_check.aspx页面(media_check.aspx是以iframe方式嵌入msplayer页面),如图12所示。

media_check.aspx页面中使用JavaScript程序,让在线用户的IP位置与后台封锁的IP位置做比对。若相符,mediaObj变量会取得前台播放器id, 并让播放器停止播放,如图13所示。

是否被封锁之程序代码

5 结 语

本文以串流影音区段播放、前台页面广播消息侦测、封锁特定IP使用者及限制最大上线人数、影片播放状态侦测等技术,以实践影音内容快速重组机制以呈现特定主题之影音服务;影音及视频强制广播功能,以及在线人数及带宽有效掌握等影音服务。整体系统经测试,系统确能有效达成上述之功能,使IPTV的影音服务更具弹性及丰富度。

参考文献

[1] Anon. Research on China's IPTV industry [M]. [S.l.]: [s.n.], 2006.

[2] 国家版权局.中华人民共和国著作权法最新[EB/OL].[2001?10?27].http:///20011105/3008137.shtml.

[3] 吴建兴.下一代网页影音同步技术:SMIL[J].资策会信息尖兵,2001(7):9?11.

[4] 叶耀明.SMIL网络多媒体内容技术[EB/OL].[2008?09?11].数字电视与广播教学推动联盟中心.

[5] Anon. Synchronized multimedia integration language [EB/OL]. [2001?08?07]. http:///TR/SMIL.

[6] Microsoft Developer Network. Global.asax [EB/OL]. [2008?03?27]. http://.

[7] 李孟晃,黄奕诚,赖学渊.串流影音区段播放的架构与实作[R].台北:实践大学信息科技与管理学系专题计划报告,2012.

[8] 李孟晃,陈思妤.PC与IPTV影音服务选单之数字汇流技术开发[J].现代电子技术,2010,33(6):94?98.

[9] 孙浩然.IPTV之nPVR之设计与研发[D].台北:实践大学,2010.

[10] 黄圣凯,李孟晃.基于SMIL技术之IPTV影音服务之研究与建置[C].台北:第18届海峡两岸信息管理发展与策略学术研讨会论文,2012.

上一篇:融合是实现新一代门禁及电脑桌面登录安全性的... 下一篇:祭楼公楼婆仪式的调查研究