功能介绍
视频如今已应用在各行各业中。可是,视频版权问题依然是困扰大多数人的难题。而录屏,是视频防盗中最难防范的一个环节。如何去防录屏,这成为了人们普遍关心的问题。
因此,POLYV针对性定制了一款增强防录屏效果的视频功能—视频跑马灯功能。
跑马灯功能,可以根据个人喜好进行设置跑马灯的具体效果,使该功能在保证防录屏的前提下还不影响,访客的观看体验与视频的整体美观。
还可以通过使用POLYV提供的接口,通过设定,可以实现设定文字在视频上不规则的跑动,如客户可以通过代码获取到访客的ID后,将ID以跑马灯的方式展现在视频的上方,这样可以大大的增加盗版者的录屏成本,同时还能够强力的震慑盗版者。
后台设置
直播后台 --> 选择频道 --> 播放器管理 --> 防录屏跑马灯
固定值和登录用户名
可设置参数
参数 | 说明 |
---|
| 显示的跑马灯内容,登录用户名需要设置param2参数 |
| |
| |
| |
| 跑马灯显示方式,滚动 是自屏幕右方至左方一直滚动 闪烁 是屏幕内随机位置闪烁 |
| 开启后,额外加载一个内容相同的跑马灯,该跑马灯肉眼不可见,可经过特殊处理后显示,用于溯源。 |
| |
外嵌播放时用登录用户名需要设置param2参数,否则会报错
固定值和登录用户名可以快速设置显示跑马灯,但是安全性不及自定义跑马灯,对防录屏有较高要求请使用自定义跑马灯和开通防录屏功能
效果
自定义跑马灯
如果需要用自定义跑马灯,则需要在直播后台设置跑马灯链接,如:http://www.mywebsite.com/validate.php
- 后端返回json
用户的http协议接口(如 http://www.mywebsite.com/validate.php )代码示例:
<?php
$username= "elvis";// 用户昵称, 若值为中文需要urlencode('张三'),从session获取
$vid = $_GET["vid"];
$uid = $_GET["uid"];
$t = $_GET["t"];
$code = $_GET["code"]; // 可选
$callback = isset($_GET["callback"])?$_GET["callback"]:null; //未提交callback时则设为空
$msg='播放错误(测试)';
$fontSize=50;
$fontColor='0xFFFF00';
$speed=50;
$filter='on';
$setting=3;
$alpha=0.9;
$filterAlpha=0.9;
$filterColor='0xFF0000';
$blurX=2;
$blurY=2;
$interval=2;
$lifeTime=5;
$tweenTime=5;
$strength=100;
$show='on';
$str="vid=".$vid."&uid=".$uid."&username=".$username."&code=".$code."&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($str); //加密规则,md5加密,
$array = Array("show"=>$show,"sign"=>$sign,"username"=>$username,"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);
$validateJson = json_encode($array);
if($callback != ''){
echo $callback."(".$validateJson.")";
} else{
echo $validateJson;
}
?>
注:接口如返回中文内容,请修改编码为UTF-8编码
以下为接口的返回示例:
{
"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"
}
参数解释:
参数名 | 代表意义 | 参数可选 | 参数类型 | 是否必需项 | 默认值 |
---|
| 用户名,可以是学员的id,也可以是任意定义的值,不可为空 | | | | |
| | | | | |
| | | | | |
| | | | | |
| | 包含三个 8 位 RGB 颜色成分的数字;例如,0x000000 为黑色 | | | |
| | | | | |
| | | | | |
| | 1:自屏幕右方至左方一直滚动 2:屏幕内随机位置闪烁 3:自屏幕右方至左方一直滚动,渐隐渐现 4:上下15%的视频区域之间滚动 5:上下15%的视频区域随机闪现文字 6:样式 1 的增强型,加密效果更好,推荐使用 7:样式 2 的增强型,加密效果更好,推荐使用 | | | |
| | | | | |
| | | | | |
| | 包含三个 8 位 RGB 颜色成分的数字;例如,0x000000 为黑色 | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
参数详解
sign
sign的计算规则为:将以下参数的值拼凑起来的字符串做MD5计算,签名需要以下全部参数拼接,未设置值的也要参与。
$str="vid=".$vid."&uid=".$uid."&username=".$username."&code=".$code."&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($str);
例如:当vid="vid",uid="uid",username="suki",code="abc",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"时,
拼凑起来去MD5计算的字符串为
vid=vid&uid=uid&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位小写的值:8e0cdbf64c0ce98d0ef76e845f70418c
- 播放器调用
当网页调用POLYV播放器播放视频时,js通过ajax方式去请求用户的接口,需要跨域请求,会带上vid、uid、code、t这3个参数(如,http(s)://www.mywebsite.com/validate.php?vid=vid&uid=uid&code=abc&t=143020010115550947)。
其中code为播放代码中的参数,值为自定义(如下所示,可以不在播放代码中添加此参数,则该参数的值默认为空);t为播放器产生的随机数。
示例代码:
<script src='https://player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js'></script>
<div id='player'></div>
<script>
var player = polyvLivePlayer({
wrap: '#player',
width: 800,
height: 533,
uid: 'uid',
vid: 'vid',
code : 'myCodeValue'
});
</script>
跨域
为了让PC端的Flash能够跨域请求用户接口,还需要用户在自己的网站域名根目录下增加crossdomain.xml文件。
H5播放器存在跨域问题,可以在php添加以下配置解决
header("Access-Control-Allow-Origin: *");
请参考播放器跨域
tips