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