使用的是PHP的SDK,請問如何對視頻進行HLS加密處理?
參考如下,hlsKey
為base64_urlsafe,這個好理解,但是hlsKeyUrl
是什麼呢?PHP怎麼產生以RSA的OAEP加密方式的hlsKeyType
呢?
http://developer.qiniu.com/docs/v6/api/reference/fop/av/segtime.html
hls加密
hls加密是利用AES-128位對每個ts檔案進行加密,播放器在取得PlayList檔案的時候,會根據裡面的#EXT-X-KEY標籤請求獲得解密的URL,再請求解密秘鑰,之後會用秘鑰對擷取的ts檔案解密。使用者可以對秘鑰的URL做cookie驗證等方法來對使用者做認證。 例子:PlayList檔案 (複製連結,查看檔案內容或直接用vlc播放器播放)
參數解釋:
hlsKey
base64_urlsafe編碼或加密過後的秘鑰
hlsKeyUrl
指定了秘鑰放置的url,經過base64_urlsafe編碼,這是產生m3u8 PlayList會使用到的
hlsKeyType
指定了傳送秘鑰的方式
- 不指定或者指定為0,則僅僅是以base64_urlsafe編碼的方式傳送
- 指定為1.x(1.0, 1.1, …),以RSA的OAEP加密方式,再以編碼傳送秘鑰,x表示秘鑰的版本
- 公開金鑰:1.0
回複內容:
使用的是PHP的SDK,請問如何對視頻進行HLS加密處理?
參考如下,hlsKey
為base64_urlsafe,這個好理解,但是hlsKeyUrl
是什麼呢?PHP怎麼產生以RSA的OAEP加密方式的hlsKeyType
呢?
http://developer.qiniu.com/docs/v6/api/reference/fop/av/segtime.html
hls加密
hls加密是利用AES-128位對每個ts檔案進行加密,播放器在取得PlayList檔案的時候,會根據裡面的#EXT-X-KEY標籤請求獲得解密的URL,再請求解密秘鑰,之後會用秘鑰對擷取的ts檔案解密。使用者可以對秘鑰的URL做cookie驗證等方法來對使用者做認證。 例子:PlayList檔案 (複製連結,查看檔案內容或直接用vlc播放器播放)
參數解釋:
hlsKey
base64_urlsafe編碼或加密過後的秘鑰
hlsKeyUrl
指定了秘鑰放置的url,經過base64_urlsafe編碼,這是產生m3u8 PlayList會使用到的
hlsKeyType
指定了傳送秘鑰的方式
- 不指定或者指定為0,則僅僅是以base64_urlsafe編碼的方式傳送
- 指定為1.x(1.0, 1.1, …),以RSA的OAEP加密方式,再以編碼傳送秘鑰,x表示秘鑰的版本
- 公開金鑰:1.0
php中調用持久化處理(音視頻處理)的文檔可以參考 http://developer.qiniu.com/docs/v6/sdk/php-sdk.html#av-hls
如果要進行切片的加密,只需要修改$fops
的值,修改為譬如avthumb/m3u8/segtime/10/hlsKey//hlsKeyType//hlsKeyUrl/
明文為16個位元組,用切片文檔提供的方法,使用七牛提供的公開金鑰和下面的命令對明文進行加密:
$ echo -n [AES128KEY] | openssl rsautl -encrypt -oaep -inkey [QINIU_PUB_KEY_FILE] -pubin | openssl base64 -A | tr "+/" "-_"
如果
的值為密鑰明文的base64編碼,那麼
值為0;如果
的值為七牛公開金鑰加密的密文,那麼
值可以寫1.0
就填寫密鑰明文存放的地址,一般為你的商務服務器地址,通過商務服務器相關流程式控制制對這個url的存取權限。