近年来,视频点播VOD(Video on Demand)的姓名在媒体上呈现得越来越多。VOD技能使人们能够依据自己的爱好,不必凭借录像机、影碟机、有线电视而在电脑或电视上自在地点播节目库中的视频节目和信息,是能够对视频节目内容进行自在挑选的交互式体系。
VOD的实质是信息的运用者依据自己的需求主动取得多媒体信息,它差异于信息发布的最大不同:一是主动性、二是挑选性。从某种意义上说这是信息的接受者依据本身需求进行自我完善和自我发展的办法,这种办法在当今的信息社会中将越来越契合信息资源顾客的深层需求,能够说VOD是信息获取的未来干流办法在多媒体视音频方面的体现。VOD的概念将会在信息获取的范畴快速扩展,具有无限宽广的发展前景。
【布景】
笔者地点的单位建造有一个内部网站,为了进一步进步网络的可用性,完善网站的功用,决议在网络上供给视频点播功用。经过一段时间的探索和比较,笔者最终挑选了RealSystem公司的RealPlayer作为视频文件的播映工具,首要根据以下几点考虑:
1、 RealPlayer 支撑当今绝大多数的音视频流媒体格局,包含当时盛行的MP3等音频媒质;
2、 RealPlayer 默许的.rm格局在确保播映质量的一起,文件紧缩比高,使其更利于网络传输;
3、 RealPlayer在Internet上具有广泛的用户群和服务商支撑。
可供挑选的还有Microsoft的MediaPlayer、APPLE 的QuickTime等。详细请参看“搜新网”评测文章:《三大干流流媒体技能比照》(http://www.souxin.com/stream/txt/3_stream_comp/www.souxin.com.htm)
【播映办法的挑选】
一般来说,装置好RealPlayer之后,有两种办法可供挑选来衔接视频文件。一种是直接在Web页面上供给视频文件的URL地址,当用户点击链接时,RealPlayer主动识别并实时衔接进行播映;第二种办法是经过ActiveX控件办法在Web页面中嵌入RealPlayer目标,并经过DHTML为内嵌目标动态指定视频流URL,从而为视频播映供给了一个一致的友爱界面。
前一种办法关于规划者来说相比照较简略,只需求供给视频文件的播映途径。RealPlayer的娴熟用户,还能够经过自界说RealPlayer的播映办法、下载视觉插件、增加到收藏夹等办法进行视频办理。但这种办法也存在以下几点缺陷:
1、关于含有中文途径和中文名的视频文件,阅读器并不能很好支撑,常常呈现找不到文件等错误信息。
2、需求体系进行文件相关,假如文件相关犯错,阅读器将莫衷一是。
3、对终端用户来说,往往期望看到一致的播映界面,而不是弹出式播映。
经过Web嵌入式视频流办理,能够把用户端的操作恳求削减到最小(用户只需简略的装置RealPlayer播映器)。假如再辅以精心的美工规划,还能够依照规划者的志愿定制出精巧大方的播映界面。
【基本概念】
在进行规划之前,咱们先来了解一些相关的基本概念。
1、object>、embed>标签
object>是Microsoft在IE4.0之后推出的,用来代替embed>标签的目标界说标签(IE依然支撑embed>),经过classid特点界说相应的目标类型。embed>标签是Netscape阅读器支撑的目标界说标签。假如开发者需求一起取得IE和NetScape两种阅读器用户的支撑,最好运用embed>标签。
2、界说ram文件
ram格局文件同rm文件相同,也是RealPlayer所支撑的视频文件紧缩格局,所不同的是ram文件能够仅简略的包含视频文件的URL地址。也便是说,ram文件能够为简略的文本格局,每一行界说一个视频文件的URL地址。
笔者在测验时发现,嵌入式RealPlayer在播映视频文件时,一般选用把视频文件整个下载到本地然后进行播映。这关于较大的视频文件来说,速度让人难以忍受。处理这个问题的办法,一是把视频文件简略的切割成巨细适中的小文件分段播映(因为 REAL 公司对 RM 格局的实施“关闭办理”,所以 RM 到目前为止还不能像 MPEG 等视频文件相同用视频软件自在的修改);别的一种便是选用ram文件。RealPlayer简略的下载文本格局的ram文件,然后取出其间的实在地址,然后主动衔接到网络进行实时的点对点播映。其缺陷是增加了服务器担负。
相似的,Microsoft Media Player选用asx格局来界说asf文件。
3、DHTML
DHTML是Dynamic HTML的缩写,DHTML经过传统的HTML言语,运用CSS(Cascading Style Sheets,即样式表),并依托JavaScript使一贯停止不变的页面得以“动”起来。 Netscape 4.0和IE 4.0/5.0版别支撑DHTML,DHTML是一种彻底“客户端”技能,直接经过WEB页面完成页面与用户之间的交互性。DHTML的优异之处在于增强了Web页面的功用,在Web页面直接树立动画、游戏和应用软件等等,供给了阅读站点的全新办法,与Java、Flash等技能不同的是,用DHTML编制的页面不需求插件的支撑就能完好的完成。
【规划进程】
下面笔者以IE5.0为例,阐明一个嵌入式WEB视频点播体系的完成办法,其间用到了部分PHP和JavaScript技能,有疑问的读者请参看相关材料。
一、刺进RealPlayer ActiveX目标(假如要进行测验,需求先装置RealPlayer播映器)
假定以下代码包含在video.php文档中(该文件将在主页面中经过iframe>进行链接)。
object width=320 height=250 classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA>
param name=CONTROLS value=ImageWindow>
param name=CONSOLE value=Video>
param name=CENTER value=TRUE>
param name=MAINTAINSPECT value=TRUE>
/object> //界说播映界面
object width=320 height=30 classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA>
param name=CONTROLS value=StatusBar>
param name=CONSOLE value=Video>
/object> //界说状态栏
object width=320 height=30 classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA>
param name=CONTROLS value=ControlPanel>
param name=CONSOLE value=Video>
param name=SRC value=?php echo getsrc(); ?>>
param name=AUTOSTART value=TRUE>
param name=PREFETCH value=0>
param name=LOOP value=0>
param name=NUMLOOP value=0>
/object> //界说操控面板
其间,CONTROLS参数用来指定播映器的控件外观,能够用多个控件进行组合,并经过CONSOLE参数进行相关。
有关param参数,读者能够参看RealPlayer官方网站http://service.real.com/help/library/guides/production/htmfiles/control.htm。
这儿的SRC参数尤为重要,用来指定视频流文件的URL地址。这儿笔者运用PHP代码的办法动态的指定SRC,读者也能够运用其它如ASP,或彻底经过 JavaScript 完成。
二、运用DHTML动态操控RealPlayer控件的播映
小技巧:IFRAME>的妙用。因为为RealPlayer控件指定新的SRC需求改写页面,运用IFRAME>能够把RealPlayer控件嵌入到独自的页面中,这样,动态改写便是在IFRAME>内进行,不会影响用户观看页面其它内容。
以下代码包含在主页面中:
IFRAME id=iVideo SRC=video.php Width=500 Height=345 frameborder=0 SCROLLING=no>
/IFRAME>,其间,video.php文件用力显现RealPlayer控件。
下面咱们参加简略的JavaScript 代码用来操控视频的播映。
script language=JavaScript>
function play(filename){
top.document.all(iVideo).src = video.php?src=+filename;
} // iVideo 是刚刚界说的IFRAME 的标识符
/script>
咱们能够运用javascript操控RealPlayer插件更杂乱的功用,如提取视频的长宽、测验用户的网络速率、自界说播映事情等等。关于RealPlayer ActiveX开发的详细细节,请参看RealPlayer官方网站http://service.real.com/help/library/guides/extend/embed.htm
咱们假设有一个视频文件,其URL为http://YourURL/filename.ram,那么咱们就能够这样界说:
a href=JavaScript:play(‘http://YourURL/filename.ram’)>文件1/a>,假如文件是在本地,URL也能够为相对途径。
三、检测用户是否装置RealPlayer播映器
在页面的head>/head>部分参加以下JavaScript代码,用以检测用户是否装置RealPlayer播映器:
SCRIPT LANGUAGE=JavaScript>
!–
var RealMode=0;
var RealPlayer5=0;
var RealPlayer4=0;
var RealPlayerG2=0;
if (navigator.userAgent.indexOf(MSIE) 0 ){
numPlugins = navigator.plugins.length;
for (i = 0; i numPlugins; i++){
plugin = navigator.plugins[i];
if (plugin.name.substring(0,10)==RealPlayer){
RealMode=1;
}
}
}
// 以下代码经过VBScript的CreateObject()函数动态的创立RealPlayer目标
document.write(‘SCRIPT LANGUAGE=VBScript> n’);
document.write(‘on error resume next n’);
document.write(‘RealPlayerG2 = (NOT IsNull(CreateObject(rmocx.RealPlayer G2 Control)))n’);
document.write(‘RealPlayer5 = (NOT IsNull(CreateObject(RealPlayer.RealPlayer(tm) ActiveX Control (32-bit))))n’);
document.write(‘RealPlayer4 = (NOT IsNull(CreateObject(RealVideo.RealVideo(tm) ActiveX Control (32-bit))))n’);
document.write(‘/SCRIPT> n’);
if ( RealPlayerG2 || RealPlayer5 || RealPlayer4 ){
//能够在此处增加object>目标
}else if ( RealMode ){ // NetScape阅读器用户
// 能够在此处参加embed>目标
}else{
window.location.replace(install.htm); // 转入install.htm页面辅导用户进行装置
}
–>
/Script>
至此,咱们现已完成了一个根据Web的视频点播的基本功用。但咱们要想把功用做的更完美一些,还需求其它更杂乱的考虑。如流媒体的制造、网页美工的规划、网络流速的考虑,以及网站视频文件的有用安排。这些论题现已超出了本文的评论规模,请读者自行参看相关材料。