# 使用说明

# 1. 加密视频文件

# 使用点量提供的专用加密软件加密

使用tools文件夹下的Enctrypter.exe生成m3u8视频文件,也可以联系点量软件获取命令行版本,以便直接集成到贵司软件系统中自动化调用。

步骤如图:

加密软件截图 加密软件截图

每个视频的秘钥可以不同,也可以所有视频固定相同的秘钥,后续播放前需要传入该秘钥。

# 上传加密好的视频文件

搭建用来提供视频访问的Web服务器,或使用视频第三方存储服务。把加密后生成的视频文件上传到您的web服务器。注意:每个视频会生成一个文件夹,内有ts切片文件以及m3u8索引文件等。

# 2. 配置并运行授权服务器

# 授权服务器功能

负责发放播放授权,它同前端js播放器交互,通过http/https协议(建议使用https,增强安全性),提供视频的秘钥鉴权服务。您可以将其视为独立的http服务器,为点量自主研发的授权服务。

# 修改配置文件

config.js配置项说明


{
    "ServerUrl": "testapi.dolit.cn:8887",                    //需要修改
    "Port" : "8887",                                         //建议修改
    "RequestSecret": "1a24df017bdabf1473d313c9e6c68307",     //无须修改
    "UrlRoute" : "/url",                                     //无须修改
    "M3u8Route" : "/index.m3u8",                             //无须修改
    "RunModel" : "release",                                    //无须修改
    "APPKEY" : "c3e39b5f4d68d7b2e7c32ea775c6af76d2d8b296",   //不可修改
    "APPDOMAIN" : "hls.dolit.cn"                             //不可修改
}

ServerUrl : 授权服务器对应的web根地址,比如如果port是8887,服务器IP是1.1.1.1,那么这里应该是1.1.1.1:8887

Port:服务监听的端口

其它基本只需要使用默认的即可,这些高级设置为建议配置,如无特殊需要,不需要修改,部分Key为点量授权用户的信息,在无明确指引下请勿修改。

# 运行授权服务工具

将授权服务工具的二进制文件以及配置文件上传到您的服务器

A Linux 下 运行 nohup ./LicenseServer &

B Windows下 点击 LicenseServer.exe即可

(只支持64位操作系统)

请对授权服务器所监听的端口,进行域名指向,形成比如https://testapi.dolit.cn:8887/url这种访问网址,其中/url是固定地址,前面域名:port为设置域名指向后的地址。

授权服务器如何通过nginx来反向代理,以及高级设置,请参考LicenseServer工具配置详解

# 3. 集成播放器

# 修改视频地址接口的引用路径

 <script src="https://testapi.dolit.cn:8887/url?protocol_type=https"></script> 

src中的域名替换为授权服务器里面的实际地址,/url请保留。   protocol_type=https这个根据您需要走https还是http协议酌情设置,建议使用https增强安全性,也可以通过结合nginx不显示端口,和集成https证书。protocol_type如果不指定,默认就是https,如果需要http请明确指定。

# 设置视频路径

修改player.html内的第120行base_path参数的值

var play_url      = api_export_play_url+"&base_path="+encodeURIComponent("https://test.dolit.cn/hlsenc/mvideo/小学/语文第一课_古诗一首/");  //加载视频地址url

WARNING

base_path参数对应的值必须是完整的url,此处到m3u8和ts所在的文件夹地址即可,播放器所在的网页,回调地址和接口地址应该同时使用https地址或者同时使用http地址。

# 测试效果

使用域名访问player.html对应的url地址,查询播放效果是否正常,如:https://hls.dolit.cn/hlsenc/

# 4. 播放器说明

# 常用配置项


<script src="https://hlsapi.dolit.cn/url?protocol_type=https"></script>
填写您搭建的UrlRoute的访问地址,如果您的网址是http需要指定protocol_type=http。不指定默认是https

<script>

    var is_playlist      = 0;   //是否显示播放列表,0位不显示 1为显示
    var pauseAd          = 0;   //视频暂停是否显示广告,0 不显示 1 显示
    var is_definition    = 0;   // 是否显示清晰度
    var back_sec         = 5;   //回答错误强制回看多少秒
    var is_speed_bar     = 0;   //是否显示倍速按钮
    var is_set_bar       = 1;   //是否显示设置按钮
    var is_next_bar      = 0;   //是否显示下一集的按钮
    var is_ios_forbid_fullscreen = 1;    //ios端是否禁止全屏
    var is_andriod_forbid_fullscreen = 0;    //安卓端是否禁止全屏,如果开启了is_forbid_lower_andriod,可以允许全屏,并可以保留弹幕
    var is_forbid_lower_andriod = 0;     //是否只允许安卓下 chrome/70以上的播放器播放
    var is_ios_only_wechat =0;    //是否IOS下只允许微信内打开
	var is_ios_only_wechat =1;           //是否IOS下只允许微信内打开
    var is_forbid_ios     = 0;           //是否禁用ios端
    var is_forbid_andriod = 0;           //是否禁用andriod端
    var video_folder_path= encodeURIComponent("https://hls.dolit.cn/hlsenc/mvideo/小学/语文第一课_古诗一首/");  //加载视频地址url
    var play_url         = api_export_play_url+"&base_path="+video_folder_path;  //加载视频地址url
    var video_type       = api_export_video_type;
    
    var config = {
        //播放列表
        playlist: [
            {
                id: "001",
                video: {
                    biaoqing: play_url,  //标清地址
                    gaoqing : play_url,  //高清地址
                    chaoqing: play_url  //超清地址
                },
                backvideo : {
                    by : "" //手机端遇到不支持的flv时的备用url地址
                },
                track:"media/01.vtt",
                poster:"images/fengtian.jpg",
                title:"语文第一课古诗三首视频",
                subject: [
                    {
                        title: "你是什么星座?(单选题)", //标题
                        type: "radio",  //选择类型:单选:radio 多选:checkbox
                        answer: ["白羊座", "天蝎座", "双子座"], //答案
                        rightkey: [0], //正确答案
                        time: "10",  //秒
                        error: true, //回答错误是否继续播放
                        delay: true   //回答错误是否回放X秒,仅仅在error为true的时候有效,若没有配置该选项,则不强制回看
                    },
                    {
                        title: "您最喜欢什么编程语言?(多选题)", //标题
                        type: "checkbox", //选择类型:单选:radio 多选:checkbox
                        answer: ["C++", "java", "python"], //答案
                        rightkey: [0,1], //正确答案
                        time: "20", //秒
                        error: true //回答错误是否继续播放
                    }
                ],
                //弹图片
                advert: [
                    {
                        src: "images/guanggao.jpg",
                        time: "40",
                        url: "https://test.dolit.cn"  //图片对应的链接地址
                    }
                ],
                //水印
                watermark: {
                    text: "点量加密播放器",
                    time: "15" //多少秒显示
                },
                barrage : [
                    {
                        active : "static", // 静止 vertical : 垂直移动 horizontal:水平移动  rand: 随机飘动
                        text : "点量H5播放器",  //跑马灯的文本
                        color: "#F00",   //跑马灯的颜色
                        size  : "30px",  //跑马灯的字体大小
                        opacity : "0.6", //跑马灯的透明度
                        position:{  //跑马灯的起始位置
                            top : 10,
                            left : 10,
                        }
                    }
                ],
            },
        ]
    };

</script>

动态添加弹幕示例:

    addNewBarrage({
        active : "horizontal", //随机飘动
        text : "动态字幕1",
        color: "#CCC",
        size  : "60px",
        opacity : "0.6",
        speed:5,
        position:{
            top : 150,
            left : 60,
        }
    });

addNewBarrage请务必在js文件夹中的js文件引入之后使用。

player.html文件中可看到播放器的可用配置项,这些可选功能在chrome浏览器或chrome内核浏览器下支持完善,移动端浏览器有部分支持,您可以根据您的实际情况在pc或者移动端页面进行不同的配置。

这些配置项请务必在js文件夹中的js文件引入之前定义。

# 样式控制

您可以通过定义 #video-box元素的宽高,位置等css属性,来决定播放器在您的页面中所呈现的位置。

# 注意事项

A 当您的视频是m3u8格式,播放器只允许在您预先指定的域名下播放视频,并且只支持播放通过Enctrypter.exe加密工具生成的m3u8加密视频。

# 5. 高级选项

# LicenseServer工具配置详解

  1. M3u8Route: 分发m3u8文件接口对应的路由,可自由修改,同时M3u8Url配置项也需要随之修改

  2. ServerUrl : 授权服务器对应的web根地址,比如如果port是8887,服务器IP是1.1.1.1,那么这里应该是1.1.1.1:8887

如果您打算为当前接口绑定域名,可参数如下示例。

使用nginx配置https域名示例:

    server {
      listen 443 ssl;
      server_name testapi.dolit.com;

      ssl_certificate /etc/nginx/cert/testapi.dolit.com.pem;
      ssl_certificate_key /etc/nginx/cert/testapi.dolit.com.key;
      ssl_session_timeout 5m;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
      ssl_prefer_server_ciphers on;

      location ~ / {
        proxy_pass http://127.0.0.1:8087$uri?$query_string;
      }

    }

配置完成后,则ServerUrl的值应该配置为 testapi.dolit.com

如果不使用域名,假如您的外网ip 是 192.168.1.1,则 M3u8Url的值应该配置为 192.168.1.1:8887

  1. RequestSecret :请求key, 用来构建请求M3u8Route的get参数,建议修改

  2. Port :LicenseServer 进程占用的端口号

  3. UrlRoute : 获取视频地址接口对应的路径,可自由修改,同时,go.html中的

<script src="https://testapi.dolit.cn/url?protocol_type=https"></script> 

对应的路由也需要修改.

如果 配置为 UrlRoute : "/videoRoute" 则 对应的scirpt应用地址为:

 <script src="https://testapi.dolit.cn/videoRoute?protocol_type=https"></script> 

(假设8887端口已经绑定域名testapi.dolit.cn,该域名不受APPDOMAIN的限制)

如果不使用域名,假如您的外网ip 是 192.168.1.1 则 对应的scirpt应用地址为:

<script src="https://192.168.1.1:8887/videoRoute?protocol_type=https"></script> 
  1. RunModel : 运行模式,可以是 debug release.

  2. APPKEY : 应用key ,不可修改,否则可能导致软件不能运行

  3. APPDOMAIN :授权域名,不可修改,否则可能导致软件不能运行

以上配置项 只有 M3u8Url 是必须修改的,APPKEY和APPDOMAIN是不可修改的,其他配置可视情况而定。