周文斌 羅晉華 王曉燕
[摘要]以Flash為開(kāi)發(fā)工具,介紹一種既能滿足數(shù)字視頻在網(wǎng)絡(luò)中廣為傳播,又能有效地保護(hù)作者合法權(quán)益,限制非法使用的簡(jiǎn)單易行的方法,其中涉及到有關(guān)FLV視頻編碼過(guò)程的研究以及如何利用FLV視頻中的元數(shù)據(jù)實(shí)現(xiàn)對(duì)使用視頻資源進(jìn)行權(quán)限控制的腳本設(shè)計(jì)。
[關(guān)鍵詞]網(wǎng)絡(luò)視頻 FLV 權(quán)限控制
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2009)0110029-02
一、引言
網(wǎng)絡(luò)和多媒體技術(shù)的發(fā)展,給視頻在網(wǎng)絡(luò)中的應(yīng)用帶來(lái)了前所未有的機(jī)遇。視頻由于具有形象、直觀、現(xiàn)場(chǎng)感強(qiáng)等特點(diǎn),在教學(xué)中的地位也日益突出,但是由于數(shù)字內(nèi)容極易被復(fù)制、傳播,在網(wǎng)絡(luò)中隨意分發(fā)、使用,甚至修改原創(chuàng)內(nèi)容的現(xiàn)象極為普遍,導(dǎo)致各高校之間很多優(yōu)秀視頻資源無(wú)法有效共享。能否找到一種既能滿足數(shù)字視頻在網(wǎng)絡(luò)中廣為傳播,又能有效地保護(hù)作者合法權(quán)益,限制非法使用的簡(jiǎn)單易行的方法,對(duì)豐富網(wǎng)絡(luò)資源將起到重要作用。
目前,網(wǎng)絡(luò)視頻格式主要有RM(RMVB)、WMV(ASF)和FLV三種格式,F(xiàn)LV在流媒體中,應(yīng)該算了新秀,它采用了目前最先進(jìn)的視頻編解碼技術(shù),具有文件壓縮編碼速度快、視頻質(zhì)量高、流式傳播等特點(diǎn),迅速被一些專業(yè)視頻點(diǎn)播網(wǎng)站所采用。數(shù)字視頻的版權(quán)保護(hù)一直是大家都在關(guān)注的話題,采用登記注冊(cè)和數(shù)字權(quán)限管理技術(shù)DRM(Digital Right Management)是目前采用較多的方式。采用DRM技術(shù)在保護(hù)自己產(chǎn)權(quán)的同時(shí)又限制了視頻的推廣,用戶沒(méi)有看到視頻樣本,很難確定網(wǎng)站上的資源就是客戶想要的,前提是用戶確認(rèn)需要這些視頻資料,才會(huì)注冊(cè)并獲取DRM證書(shū),也就不可能注冊(cè)為正式用戶。對(duì)于多媒體教學(xué)而言,教師的媒體需要比較大的工作量和較高的技術(shù)水平,一般制作人員難以掌握。
本文結(jié)合Flash 8制作工具,通過(guò)對(duì)Flash視頻元數(shù)據(jù)的研究和實(shí)際測(cè)試,找到了一種簡(jiǎn)單可行的方法。這種方法直接對(duì)視頻進(jìn)行控制,讓客戶先預(yù)覽部分視頻片段,使得客戶對(duì)視頻的內(nèi)容和質(zhì)量有了一個(gè)初步的了解之后再設(shè)置權(quán)限,取得了權(quán)限的視頻可以繼續(xù)播放,否則視頻就停止播放。這種處理方法是一個(gè)雙贏的方法,對(duì)客戶和制作者都有好處,客戶能夠查看到自己確實(shí)需要的視頻,制作者在推廣視頻資源的同時(shí)也合理保護(hù)了自己的知識(shí)產(chǎn)權(quán)。
二、權(quán)限控制與技術(shù)實(shí)現(xiàn)
Flash 8在對(duì)視頻進(jìn)行編碼處理時(shí),新增了一個(gè)“提示點(diǎn)”對(duì)話框,在提示點(diǎn)對(duì)話框中可以添加系列提示點(diǎn),如圖1所示,每一個(gè)提示點(diǎn)都有對(duì)應(yīng)的名稱、時(shí)間、類型以及相應(yīng)的參數(shù)。Flash 8 Video Encoder在對(duì)視頻編碼的時(shí)候會(huì)將這些“提示點(diǎn)”的信息作為元數(shù)據(jù)注入到FLV視頻當(dāng)中,使它成為FLV視頻文件的一部分。在后期的調(diào)用過(guò)程中,通過(guò)簡(jiǎn)單編程就能夠?qū)⑦@些元數(shù)據(jù)提取出來(lái),作為密碼,要求使用者提供相關(guān)驗(yàn)證信息,視頻才能繼續(xù)播放,從而實(shí)現(xiàn)了對(duì)視頻資源的播放控制。具體設(shè)置方法如下:
(一)設(shè)置控制點(diǎn)
打開(kāi)Flash 8應(yīng)用程序,導(dǎo)入需要的視頻資料,根據(jù)提示選擇“從Web服務(wù)器漸進(jìn)式下載”方式來(lái)部署視頻。在編碼選項(xiàng)中,打開(kāi)“顯示高級(jí)設(shè)置”,選擇“提示點(diǎn)”對(duì)話框,如圖1所示。單擊左邊的“+”和“-”可以增加和減少提示點(diǎn)。這里設(shè)置的提示點(diǎn)就是后面進(jìn)行控制的控制點(diǎn)。圖1中,設(shè)置了一個(gè)名稱是“password1”的提示點(diǎn),時(shí)間是6.260秒。按照需求完成其它設(shè)置后,編碼生成FLV視頻文件,為了便于后面的說(shuō)明,這里將生成的文件名命名為“video.flv”。
(二)檢測(cè)控制點(diǎn)
Flash 8給我們提供了多種調(diào)用視頻的方法,最簡(jiǎn)單的方法是直接利用媒體播放組件來(lái)實(shí)現(xiàn)。新建一個(gè)Flash文檔,打開(kāi)“組件”面板,將其中的媒體播放組件FLVPlayback拖放到舞臺(tái)上,調(diào)整其大小和位置,設(shè)置實(shí)例名為“my_player”。在“組件檢查器”面板中選擇內(nèi)容路徑“contentpath”選項(xiàng),雙擊該選項(xiàng),找到編碼后的“video.flv”視頻文件。如圖2所示。
在時(shí)間軸的第一幀上,添加如下代碼:
var passwd;
pw_in._visible=0;
var listenerObject:Object = new Object();
listenerObject.cuePoint = function(eventObject:Object):Void{
if (eventObject.info.name != "") {
passwd = eventObject.info.name;
my_player.pause();
pw_in._visible=1; }
};
my_player.addEventListener("cuePoint", listenerObject);
這里是對(duì)媒體播放組件添加了一個(gè)偵聽(tīng)器,來(lái)檢測(cè)視頻中的提示點(diǎn)。語(yǔ)句“var passwd”定義了一個(gè)變量“passwd”來(lái)放置提示點(diǎn)的名稱,“pw_in._visible=0”是讓提示信息欄不顯示。語(yǔ)句“if (eventObject.info.name !="")”是檢測(cè)到視頻文件中有提示點(diǎn)。當(dāng)檢測(cè)到提示點(diǎn)之后,就通知媒體播放組件“my_player”暫停播放視頻,同時(shí)顯示提示信息欄,讓用戶輸入密碼信息。
(三)實(shí)現(xiàn)播放控制
實(shí)現(xiàn)播放控制,主要是對(duì)于檢測(cè)到的信息點(diǎn)進(jìn)行處理,并提供一個(gè)用戶與系統(tǒng)進(jìn)行交互的界面,讓用戶能夠輸入密碼,取得繼續(xù)觀看視頻的權(quán)限。
新建一個(gè)電影剪輯,其中包括三部分內(nèi)容:提示信息、用戶輸入欄和確認(rèn)按鈕。如圖3所示。
輸入框?yàn)橐粋€(gè)動(dòng)態(tài)文本框,實(shí)例名為“input_txt”,確認(rèn)按鈕實(shí)例名為“my_btn”,在按鈕上添加下面的動(dòng)作,對(duì)用戶輸入的密碼進(jìn)行判斷,從而確認(rèn)是否繼續(xù)播放。
on (click) {
if (this._parent._parent.passwd == this._parent.input_txt.text) {
this._parent._parent.my_player.play();
this._parent._visible = 0;
} else { this._parent.input_txt.text = "密碼不對(duì),請(qǐng)重新輸入!"; }}
在舞臺(tái)的時(shí)間軸上,添加一層,將制作好的影片剪輯拖放到舞臺(tái)上,調(diào)整其顯示位置,命名實(shí)例名為“pw_in”,保存文件,并進(jìn)行測(cè)試。
測(cè)試發(fā)現(xiàn):當(dāng)視頻播放到6.260秒的位置,就暫停了,提示需要輸入密碼,如圖4所示。隨便輸入字符,單擊確認(rèn)按鈕,提示“密碼不對(duì),請(qǐng)重新輸入!”,輸入“password1”后,單擊確認(rèn)按鈕,視頻就可以繼續(xù)播放了。這里的“password1”就是我們?cè)诰幋a時(shí)設(shè)置的信息提示點(diǎn)的名稱,時(shí)間也是我們添加的提示點(diǎn)的時(shí)間。
三、結(jié)束語(yǔ)
上面介紹的只是一個(gè)簡(jiǎn)單的實(shí)現(xiàn)過(guò)程。通過(guò)Flash對(duì)視頻編碼中加入的提示點(diǎn),能夠簡(jiǎn)單方便的設(shè)置用戶的使用權(quán)限。在編碼的時(shí)候,可以加入多個(gè)提示點(diǎn),對(duì)控制部分做適當(dāng)?shù)臄U(kuò)充完善,通過(guò)對(duì)用戶輸入的信息進(jìn)行檢查,使得不同的用戶權(quán)限可以查看同一視頻中不同的片段內(nèi)容。在制作FLV視頻時(shí),也就不需要將一個(gè)完整的視頻分割成多段視頻。將FLV視頻放置到FMS服務(wù)器上,將SWF文件放到Web服務(wù)器,結(jié)合其它的動(dòng)態(tài)編程語(yǔ)言如ASP、JSP和PHP,還能夠?qū)崿F(xiàn)用戶密鑰的數(shù)據(jù)庫(kù)檢索,在保護(hù)視頻資源的前提下,能構(gòu)建功能更強(qiáng)大的視頻點(diǎn)播系統(tǒng),最大限度地發(fā)揮視頻資源的效用。
參考文獻(xiàn):
[1]楊成等,家庭網(wǎng)絡(luò)與數(shù)字版權(quán)管理技術(shù),中興通訊技術(shù),2006.04.
[2]http://www.cmvc.com.cn/list.asp?id=648.
[3]陳東毅,基于Internet認(rèn)證的視頻版權(quán)保護(hù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].遠(yuǎn)程教育雜志,2004(01):43~44.
作者簡(jiǎn)介:
周文斌,男,工程師,碩士,主要研究方向:網(wǎng)絡(luò)視頻和多媒體技術(shù);羅晉華,男,副教授,碩士生導(dǎo)師,主要研究方向:多媒體技術(shù)和現(xiàn)代教育技術(shù);王曉燕,女,工程師,碩士,主要研究方向:現(xiàn)代教育技術(shù)。