AKU TONY2021-2-26仕上げ
ビデオセキュリティ認定の再生および録画防止マーキー
最初にレンダリングをアップロードします(ビデオの再生中に、学生の名前と学生の携帯電話番号が表示されます):
画面の記録は、ビデオの著作権侵害を防ぐための最も難しい方法の1つです。Polywayプレーヤーが提供する記録防止マーキー機能は、テキストコンテンツ(通常は視聴者のID ID情報)をビデオ上で不規則にスクロールするように設定することです。海賊に警告するビデオの著作権保護の効果。
また、ユーザーのWebサイトでは、ログイン情報(Cookie)を使用して、視聴者が動画再生ページにアクセスする権限を持っているかどうかを確認するだけでなく、Polywayを介して特定の動画を再生する権限を視聴者が持っているかどうかを確認することもできます。プレーヤー、こうして視聴者の許可の二重検証を実現します。
実装プロセス
実装手順
1.背景設定を管理する
- クラウドオンデマンド管理のバックグラウンドにログインし、[設定] → [動画設定]をクリックし て動画設定ページに入ります。
-
許可された再生およびアンチスクリーンレコーディングマーキーのインターフェイス設定列に、ビジネスパーティのインターフェイスサービスURLを入力します。
プレーヤーが認証インターフェースを要求すると、次の条件に自動的に適応します。
- 完全なURLが入力されると、プレーヤーは直接要求します(例:http://mywebsite.com/interface/validate)。
- プロトコルヘッダーのないインターフェースアドレスが入力されると、プレーヤーは現在のページの要求プロトコルに従って自動的にそれを完了します。たとえば、次のように入力します。//mywebsite.com/interface/validate、現在のページはhttpsプロトコルを使用してアクセスされ、実際のリクエストはhttps://mywebsite.com/interface/validateです。
- プロトコルヘッダーとHOSTなしでインターフェースアドレスを入力すると、プレーヤーは現在のページの要求プロトコルとHOSTに従って自動的に入力します。たとえば、/ interface / validateまたはinterface / validateと入力し、現在のページのドメイン名はmywebsite2.comであり、ページはhttpプロトコルを使用してアクセスされ、実際のリクエストはhttp://mywebsite2.comです。 / interface / validate。
次に、ビジネス側のサーバーの実装
1.プレイヤーのリクエスト
管理バックグラウンドが再生とマーキーインターフェイスを承認するように設定されている場合、Polyvプレーヤーは最初に、ビデオの再生時にバックグラウンドで設定されたインターフェイスを要求します。要求メソッドはGETであり、4つのパラメーターvid、code、t、およびcallbackです。添付されます。例:https://www.mywebsite.com/validate?vid = e2e84a73837363106d8d257f60e55c4c_e&code =&t = 1457938821973&callback = polyvObject16209048491895664483_1457938783908&_ = 1457938784101。
コードはプレーヤーのコードに埋め込まれたパラメーターであり、値はカスタマイズできます。tはプレーヤーによって生成された乱数です。プレーヤーのサンプルコードは次のとおりです。
<script src='https://player.polyv.net/script/player.js'></script>
<div id='player'></div>
<script>
var player = polyvPlayer({
wrap: '#player',
width: 800,
height: 533,
vid: '88083abbf5bcf1356e05d39666be527a_8',
code: 'myCodeValue' // 用户可自定义参数值,也可以不设置此参数,那么在请求接口时该参数值为空。参数值为中文时需要做base64URLSafe。
});
</script>
H5プレーヤーはAjaxを介してユーザーインターフェイスを要求するため、クロスドメイン要求が必要であり、コールバックパラメーターが必要です。Flashプレーヤーは、クロスドメインファイルを介してクロスドメインを実装するため、コールバックパラメーターは不要であり、インターフェイスを要求するときに送信されるパラメーターは、vid、code、tの3つだけです。クロスドメインアクセスを実現するには、Flashプレーヤーのクロスドメインアクセス設定を参照してください。
2.サーバー側のインターフェースの実装
ビジネス側のサービス側インターフェースが認証検証の機能を実現するだけでよい場合は、ステータス、ユーザー名、サインの3つのパラメーターをプレーヤーに返して検証するだけで済みます。
サーバーによって実装されるPHPの例は次のとおりです。
// validate.php
<?php
$username = "elvis"; // 用户昵称, 若值为中文需要urlencode('张三'),可从session获取
$secretkey = "secretkey"; // 登录保利威管理后台,点击 【设置】 → 【API接口】获取
$vid=$_GET["vid"];
$t = $_GET["t"];
$code = $_GET["code"];
if($username=="elvis"){
$status = 1; // 业务方可自定义授权验证逻辑
}else {
$status = 2;
}
if(!empty($_GET["callback"])){
$callback = $_GET["callback"];
}else{
$callback = '';
}
$sign=md5("vid=$vid&secretkey=$secretkey&username=$username&code=$code&status=$status&t=$t");
$array=Array("status"=>$status,"username"=>$username,"sign"=>$sign);
$Json = json_encode($array);
if($callback!=''){ //PC H5播放器会提交callback参数
echo $callback."(".$Json.")";
} else{ //Flash播放器不提交callback参数
echo "(".$Json.")";
}
?>
その中で、符号の計算規則は次のとおりです。MD5計算のvid、secretkey、username、code、status、tパラメーターのスプライシング:
Plain ="vid=" + vid + "&secretkey=" + secretKey + "&username=" + username + "&code=" + code + "&status=" +status + "&t=" + t
sign = MD5.hash(Plain);
次に、インターフェイスの戻り値の例を示します。
polyvObject16208229674372271079_1478765178186({
"status":1,
"username":"elvis",
"sign":"1cca74bd55c6076091ed84807065e5b7"
})
// 不提交callback参数时
{
"status":1,
"username":"elvis",
"sign":"2c2bfb00314da7d768d50a7d1e93bd9f"
}
許可検証に加えてマーキー機能を実装する必要がある場合、インターフェイスはマーキー関連のパラメータを返す必要があります。
サーバーによって実装されるPHPの例は次のとおりです。
// validate.php
<?php
$username = "elvis"; // 用户昵称, 若值为中文需要urlencode('张三'),可从session获取
$secretkey = "secretkey"; // 登录保利威管理后台,点击 【设置】 → 【API接口】获取
$vid=$_GET["vid"];
$t = $_GET["t"];
$code = $_GET["code"];
$fontSize="40";
$fontColor="0xFFE900";
$speed="200";
$filter="on";
$setting="3";
$alpha="1";
$filterAlpha="1";
$filterColor="0x3914AF";
$blurX="2";
$blurY="2";
$tweenTime="1";
$interval="5";
$lifeTime="3";
$strength="4";
$show="on";
$msg="Errormessage!";
if($username=="elvis"){ // 业务方可自定义授权验证逻辑
$status = 1;
}else {
$status = 2;
}
if(!empty($_GET["callback"])){
$callback = $_GET["callback"];
}else{
$callback = '';
}
$sign=md5("vid=$vid&secretkey=$secretkey&username=$username&code=$code&status=$status&t=$t&msg=$msg&fontSize=$fontSize&fontColor=$fontColor&speed=$speed&filter=$filter&setting=$setting&alpha=$alpha&filterAlpha=$filterAlpha&filterColor=$filterColor&blurX=$blurX&blurY=$blurY&interval=$interval&lifeTime=$lifeTime&tweenTime=$tweenTime&strength=$strength&show=$show");
$array = Array("status"=>$status,"username"=>$username,"sign"=>$sign,"msg"=>$msg,"fontSize"=>$fontSize,"fontColor"=>$fontColor,"speed"=>$speed,"filter"=>$filter,"setting"=>$setting,"alpha"=>$alpha,"filterAlpha"=>$filterAlpha,"filterColor"=>$filterColor,"blurX"=>$blurX,"blurY"=>$blurY,"tweenTime"=>$tweenTime,"interval"=>$interval,"lifeTime"=>$lifeTime,"strength"=>$strength,"show"=>$show,);
$Json = json_encode($array);
if($callback!=''){
echo $callback."(".$Json.")";
} else{
echo $Json;
}
?>
それらの中で、符号の計算規則は次のとおりです(パラメーターは例の順序でスプライスする必要があります):
Plain = "vid=" + vid + "&secretkey=" + secretKey + "&username=" + username + "&code=" + code + "&status=" + status + "&t=" + t +
"&msg=" + msg + "&fontSize=" + fontSize + "&fontColor=" + fontColor + "&speed=" + speed +"&filter=" +filter + "&setting=" + setting +
"&alpha=" + alpha + "&filterAlpha=" + filterAlpha + "&filterColor=" + filterColor + "&blurX=" + blurX + "&blurY=" + blurY +
"&interval=" + interval + "&lifeTime=" + lifeTime + "&tweenTime=" + tweenTime + "&strength=" + strength + "&show=" +show;
sign = MD5.hash(Plain);
例如:当vid = "8f8482aaab11dd5f45f183a9192a04c5_8"、secretkey = "AiDQw1mAmi"、username = "suki"、code = "abc"、status = "1"、t = "143020010115550947"、msg = "Errormessage!"、fontSize = "40 "、fontColor =" 0xFFE900 "、speed =" 200 "、filter =" on "、setting =" 3 "、alpha =" 1 "、filterAlpha =" 1 "、filterColor =" 0x3914AF "、blurX =" 2 "、 BluY = "2"、interval = "5"、lifeTime = "3"、tweenTime = "1"、strength = "4"、show = "on"
Time 、拼凑起来去MD5计算的文字列串修正:
vid = 8f8482aaab11dd5f45f183a9192a04c5_8&secretkey = AiDQw1mAmi&username = suki&code = abc&status = 1&t = 143020010115550947&msg = Errormessage!&fontSize = 40&fontColor = 0xFFE900&speed = 200&filter = on&setting = 3&alpha = 1&filterAlpha = 1&filterColor = 0x3914AF&blurX = 2&blurY = 2&interval = 5&lifeTime = 3&tweenTime = 1&strength = 4&show = onこの
場合、signはMD5計算後の32ビット小文字の値です:3b07f56f29b7fd728bf20020442338e7
次に、インターフェイスの戻り値の例を示します。
{
"status":1,
"username":"elvis",
"sign":"6ab63590797e513d1b6c46b407413478",
"msg":"Errormessage!",
"fontSize":"40",
"fontColor":"0xFFE900",
"speed":"200",
"filter":"on",
"setting":"3",
"alpha":"1",
"filterAlpha":"1",
"filterColor":"0x3914AF",
"blurX":"2",
"blurY":"2",
"tweenTime":"1",
"interval":"5",
"lifeTime":"3",
"strength":"4",
"show":"on"
}
3、インターフェース戻りパラメーターの説明
パラメータ名 | の種類 | 必須 | デフォルト | 説明 |
---|---|---|---|---|
状態 | 整数 | はい | / | 再生を許可するかどうか:1許可2禁止 |
ユーザー名 | ストリング | はい | / | オーディエンスの名前は、マーキーによって表示されるテキストコンテンツでも使用されます。中国語の場合は、URLEncodeを実行する必要があります |
符号 | ストリング | はい | / | 返されたコンテンツが改ざんされているかどうかを確認するために使用されるインターフェイス署名 |
公演 | ストリング | はい | オフ | パラメータ値が「オン」の場合、マーキーが表示されていることを意味し、デフォルトでは表示されません。 |
設定 | 整数 | はい | 1 | マーキースクロールのスタイル:1右から左にスクロール2ランダムな位置で点滅3回右から左にスクロール |
速度 | 整数 | はい | 200 | マーキーテキストが右から左に移動するのにかかる時間、単位:1/10秒 |
一生 | 整数 | はい | 3 | マーキーテキストの表示時間、単位:秒 |
間隔 | 整数 | はい | 5 | マーキーテキスト非表示間隔時間、単位:秒 |
tweenTime | 整数 | はい | 1 | マーキーテキストのフェードアウト時間、単位:秒 |
フォントサイズ | 整数 | はい | 30 | マーキーテキストのフォントサイズ |
fontColor | ストリング | はい | 0x000000 | 0xFF0000などの16進カラー値で表されるマーキーテキストの色。デフォルトは黒です。 |
アルファ | 浮く | はい | 1 | マーキーテキストの透明度、値の範囲は0.01〜1、パラメータ値は0.01以上 |
フィルタ | ストリング | はい | オフ | マーキーテキストをストロークするか、ストロークオフにするか、ストロークなしにするか |
filterAlpha | 浮く | はい | 1 | テキストストロークの透明度、値の範囲は0〜1です |
filterColor | ストリング | はい | 0x000000 | 0xFF0000などの16進カラー値で表されるテキストのストロークカラー。デフォルトは黒です。 |
力 | 整数 | はい | 4 | ストローク強度、値の範囲は0〜255です |
blurX | 整数 | はい | 2 | ストロークの水平方向のぼかし量、値の範囲は0〜255です |
ぼやけた | 整数 | はい | 2 | ストロークの縦ブレ量、値の範囲は0〜255です |
msg | ストリング | はい | / | カスタムエラーメッセージ |
- インターフェイスが認証検証のみに使用される場合、ステータス、ユーザー名、および記号の3つのパラメーターのみを返す必要があります。マーキー関連のパラメーターは返されない場合があります。
- インターフェイスから返されるデータがutf-8でエンコードされていることを確認してください。statusパラメータは文字列ではなく整数であることに注意してください。
- 現在、マーキー機能は携帯端末H5プレーヤーでの使用をサポートしていません。
- プレーヤーのスタイルや\タグを変更しないようにしてください