如何實現網頁視頻播放器對自己加密的視頻進行解密播放?

在校學生。實現對視頻的加密如在視頻文件中插入指定亂碼 想知道如何實現在自己的網站上對該視頻進行解密並正常播放呢?基本意思就是這個加密的視頻只能在我的網站上播放。這種功能有哪些播放器能實現呢。去查了下JWplayer的資料發現沒有相應的API呢。


別搞了,自己的山寨加密演算法被人破解是分分鐘的事


有個形象的比喻,任何在客戶端的加解密都是自欺欺人。我不建議在瀏覽器端做視頻解密,可以自己在後端提供視頻流,但是這個路由會根據當前的 session 中的用戶判斷是否有許可權,沒有許可權的直接拒絕就好了。


雲平台POLYV的加密技術,加密原理是這樣,將視頻文件切片成無數個小片段,並且每一片加密演算法也是不一樣的,一個視頻分片成N個片,N個片中每個片又使用不同的加密演算法來加密,再對關鍵數據混淆一下。
這樣加密後,即便拿到一個視頻某數個分片,也很難把整個視頻還原。

看過的加密技術中,只覺得他們這種比較靠譜。。。

樓上有朋友說用 flash+rtmp協議來處理,確實rtmp協議下,是用戶與伺服器之間交互了,但是,rtmp協議的視頻,是可以被下載的,親測過。

上一個POLYV加密的示意圖吧:


基於flash的加密視頻播放是可行的。

adobe官方的建議是進行身份認證和用rtmp協議來防止瀏覽器緩存。

但http協議下也有辦法防止緩存,雖然說解密是在客戶端進行,但由於解密播放的實現比較複雜,如果不是對actionscript相當精通,是很難盜取這種加了密的視頻的。當然破解者技術好那另說,因為哪怕用c++寫的客戶端一樣有人能彙編調試來破解。

flash播放加密視頻的原理:是伺服器上對上傳的視頻2進位數據加密,視頻可以通過http協議下載下來,但普通播放器是解碼不了的,所以普通播放器不能直接播放。flash端播放視頻時也不能夠簡單的指定視頻組件的視頻源地址,而是向伺服器請求視頻數據對取到的2進位數據解密再轉給視頻組件播放。編碼上的工作量主要在自己寫邏輯實現一個數據流的處理,模擬視頻緩衝之類,這種播放方式是不會在瀏覽器緩存里留下視頻數據的,要破解就要逆向flash內置的解密演算法,現在沒有好的flash反編譯工具,反編譯後的flash內的actionscript相當難讀,所以這個方案有一定程度的防破解性。

國內就有一些廠商提供這種在線視頻播放方案,這種方案的技術授權可能也要十幾萬,但遠比rtmp協議的方案成本低(rtmp服務端軟體許可費,rtmp CDN服務費都不便宜)。主要客戶是在線教育網站,辟如人民衛生出版社的醫學教育網。


推薦閱讀:

視頻 | 全程的上馬 全城的上馬
松下GH5圖像曝光

TAG:前端開發 | 視頻 | HTML5 | 流媒體 | 視頻播放 |