《网络视频授权防盗卫士——技术手册》

一、核心痛点

作为视频创作者 / 运营者,你是否正被这些难题困扰?

1. 辛苦打磨的视频文件遭下载、转发、二次分发,任意获取者均可直接播放,核心权益被肆意侵犯,盗版泛滥却束手无策 —— 更棘手的是,多数盗播行为根本无从察觉?
→ 使用 Video Authorization & Piracy Guardian(VAPG)通过多算法文件级加密,为视频配备域名 / 时间锁,即便文件被盗取,也无法正常播放。

2. 将视频授权给合作平台、机构或用户后,对方超期播放、跨域名传播,甚至转售第三方,授权完全失控 —— 不仅难以管控,维权成本更是高得离谱?
→ VAPG 为媒体文件内置域名锁、期限锁、名称锁等权限管控机制,超期、跨域名访问时自动黑屏,全程无需人工干预。

3. 采用 DRM 等服务商的视频授权验证服务,需依赖实时网络验证,不仅年年续费,技术开发与维护成本更是高得惊人,长期被高额成本 "绑定"?
→ VAPG 的授权验证无需依赖 DRM 网络服务器及任何在线服务,全程在客户端本地完成,大幅降低成本与外部依赖。


二、系统组成与应用

VAPG的组成极其简单,由VAPG-Maker和VAPG-Player组成。

VAPG系统组成示意图

其中VAPG-Maker用来对视频文件进行切片、加密,同时会写入授权信息(域名授权、时限授权),生成的安全流媒体切片文件(.m3u8+.ts)都是加密的,如果不在指定的域名和播放时限内,根本无法被解密,也就无法播放了。

而VAPG-Player用来对网络上的安全流媒体进行授权校验和解密,如果通过了域名授权、时限授权、名称和内容无损鉴定之后,会对其进行解密,之后交由浏览器上的流媒体播放器(hls.js/video.js)进行播放。整个过程一体化、零编码,无比的方便。

在具体的应用中,【视频发布者】会通过VAPG-Maker来完成自己对创作的视频的授权、切片、加密,通过将视频输入给VAPG-Maker,进行授权、切片、加密,这也就完成了对自身视频的保护。经过保护的视频尽管表面上与传统的hls流媒体视频无异,但实际上自身带有授权属性,且数据被高度加密。这就是安全流媒体文件。如下图:

VAPG系统应用场景

安全流媒体文件可以用来在web上随意发布了。不用担心,如果不在指定的域名、指定的时间内,安全流媒体是无法完成授权并被播放的。这种发布是定向性的,有了域名方向、时间方向,不像普通的流媒体文件,在任意的web域名、任意时间都可以被播放。

对于【视频观看者】,在播放时,不会感觉到与传统的流媒体有任何不同,因为VAPG-Player是浏览器网页内置(内部携带)的,会自动在播放前完成安全流媒体文件的域名授权、时间授权的校验和解密,之后交由播放器播放。VAPG-Player支持主流的流媒体播放器hls.js、video.js,这意味着只要兼容hls.js或video.js标准的播放器,都可以使用VAPG-Player。

对于【视频盗播者】,在播放时,因无法完成安全流媒体文件的域名授权、时间授权的校验和解密,则没有数据交给播放器播放,播放器只会通知视频播放者授权校验未通过和错误信息(一般在浏览器控制台上),画面一般为黑屏,无法播放。

所以,对于【视频开发者】,会使用VAPG-Maker进行视频授权、切片、加密就可以了;对于【网站开发者/平台开发者】,只需要将VAPG-Player集成到当前系统中(几乎零代码集成)就可以了;对于【视频观看者】,则什么都不需要做,正常看视频就可以了。


三、VAPG-Maker

1、安装VAPG-Maker

(1)下载VAPG-Maker

可以到如下网站上下载VAPG-Maker:

锋通视频授权防盗卫士 - 流媒体文件防盗+授权可控,终身硬件授权无年费

也可以通过以下链接直接下载:

https://www.ftpeak.com/VAPG_Maker_1.0.0.zip

下载的是windows的安装文件:VAPG_Maker_1.0.0_x64_zh-CN.msi。下载后,直接运行,正常安装即可。如下:

(2)启动安装程序

双击 VAPG_Maker_1.0.0_x64_setup.msi,启动安装程序。

VAPG-Maker安装程序启动界面

注意:当我们启动安装程序时,有些地区的用户可能会出现如下界面:

Windows安全警告界面

这时不要紧张,用鼠标点击"更多信息",选择"仍要安装"既可。

确认安装界面

(3)选择安装路径

选择安装路径界面

(4)安装

安装完成界面

注意:在安装过程中,如提示需要管理员权限,必须做出"肯定"的选择:"确认"或"是"。

管理员权限确认界面

2、启动VAPG-Maker

安装完毕后,在windows的任务栏和桌面快捷方式中,应该有如下VAPG-Maker启动的"快捷方式":

VAPG-Maker启动快捷方式

点击它就可以启动VAPG_Maker了。启动界面如下:

VAPG-Maker启动界面

启动完成后,主界面如下:

VAPG-Maker主界面

主界面很简单,分别是

(1)媒体切片加密

用于对一个媒体文件进行授权、切片、加密,最后生成【安全流媒体】文件。

(2)批量媒体切片加密

顾名思义,批量对多个媒体文件进行授权、切片、加密,最后批量生成【安全流媒体】文件。

(3)授权管理

用于提升当前VAPG-Maker的版本等级,拓展和解锁软件功能。要知道,没有经过任何【软件授权】的版本只是"免费版",免费版只拥有基本的功能。

(4)帮助文档

用于链接官方web主页上的帮助文档。

3、制作【安全流媒体】

通过VAPG-Maker,可以一体化完成授权、切片、加密,使切片后的流媒体文件自身具有域名授权、时限授权等属性,这样的流媒体文件被称为【安全流媒体】文件。

(1)启动媒体切片功能

我们启动通过VAPG_Maker主界面的"媒体切片加密"入口,启动单个媒体切片加密功能。界面如下:

媒体切片加密界面

(2)设置源文件和输出目录

通过点击【选择文件】按钮,在文件选择对话框上选择一个视频文件,我们将对这个文件进行授权设置、切片和加密,对其进行【安全流媒体】文件的制作。如下图:

选择源文件界面

选择"D:\Training\Source\hello.mp4"文件作为"MP4源文件"。并点击【选择目录】,用来设置用于输出【安全流媒体】文件的文件夹。如下图::

设置输出目录界面

将输出目录设置为"D:\Training\Released"。请注意:按照本例,VAPG-Maker将在目标目录中专门建立一个文件夹(名称为hello),用于存储源文件"hello.mp4"的【安全流媒体】文件。

(3)设置授权参数

接下来,设置"处理参数"部分。如下图:

设置授权参数界面

切片时长:10秒(一般情况下为8~10秒为宜)

域名白名单:localhost(这里是用于本机模拟web环境测试;在生产环境下,请将该域名设置为【安全流媒体】所要放置的web域名。例如,你计划最终要将【安全流媒体】文件放置在"www.myvideo.com"服务器上,那么此处的域名就要设置为"www.myvideo.com")。注意:如果试图将该【安全流媒体】文件放置在域名白名单之外的服务器上,该视频将无法通过域名授权校验。

启用授权时间:设置好"起始时间~结束时间"。注意:如果试图在"授权时间"范围之外访问【安全流媒体】,该视频将无法通过时限授权校验。

另外,请注意:如果有人试图篡改【安全流媒体】的文件名和文件内容,都将无法通过授权校验。

(4)启动加工【安全流媒体】的进程

授权设置完毕后,点击【开始处理】按钮,开始一体化"切片和加密",系统开始快速的切片和加密工作,同时显示进度。如下图:

处理进度界面

片刻之后,可以清楚的看到,系统完成了一体化的"切片和加密"工作,将【安全流媒体】视频文件放置到了"处理完成: D:\Training\Released\"目录下,并创建了子文件夹,并将"头文件(.m3u8)"文件放置到了该子文件夹中。如下图:

处理完成界面

(5)完成【安全流媒体】的制作

至此,我们完成了【安全流媒体】的制作,在"D:\Training\Released\hello\"子目录下的多个文件就是【安全流媒体】文件,一般情况下,我们是将整个hello文件夹作为一个整体在指定域名的web服务器上部署(放置)。


四、VAPG-Player

经过VAPG-Maker加工的【安全流媒体】文件只能且必须通过VAPG-Player进行授权校验并解密才能播放,这是铁定的【安全流媒体】的安全规则,无法破解。

1、下载VAPG-Player

可以在下面的网址下载VAPG-Player:

锋通视频授权防盗卫士 - 流媒体文件防盗+授权可控,终身硬件授权无年费

也可以直接通过下面的链接直接下载VAPG-Maker:

https://www.ftpeak.com/VAPG_Player_1.0.0.zip

下载的文件为压缩文件:VAPG_Player_1.0.0.zip,加压缩该文件,得到一个文件夹"vapg",文件夹中的文件列表如下:

文件名 说明
vapg_player.js VAPG-Player的入口文件。在网页中引用该文件,就可以自动对【安全流媒体】进行授权校验。
hls_wasm_bg.wasm VAPG-Player的核心二进制文件。核心代码被编译为类似于机器码的二进制文件,运行效率比javascript提升10倍,与C++类似。
hls_wasm.js VAPG-Player的胶水代码。使html+js能够无障碍的使用wasm。

对于用户来说,都是通过"vapg_player.js"来完成功能;"vapg_player.js"则通过"hls_wasm.js"来使用核心"hls_wasm_bg.wasm"功能。

2、集成VAPG-Player

可以将"vapg"文件夹直接复制到你的web应用目录既可。接下来,通过VAPG-Player对【安全流媒体】进行授权校验和解密的配置过程非常简单。只需在网页中引用"vapg_player.js"就可以了。

(1)与hls.js集成

hls.js作为流媒体行业的一种标准,早已经成为流媒体中非常流行的播放器。VAPG-Player几乎可以做到"零代码"与hls.js集成;使用户在使用hls.js播放【安全流媒体】时,会先自动通过VAPG-Player完成授权校验和解密,之后再实时的通过hls.js播放。

通过以下HTML来将hls.js与VAPG-Player集成。

<video id="video" controls data-video-url="https://localhost/static/hello.m3u8"></video>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script src="./vapg/vapg_player.js"></script>

可以看到,只是应用了HTML语句(没有采用任何javascript代码),也可以完成hls.js与VAPG-Player的集成。这三条HTML语句的含义如下:

<video id="video" controls data-video-url="https://localhost/static/hello.m3u8"></video>

声明了一个<video></video>元素,id属性值为"video","controls data-video-url"的属性值是【安全流媒体】文件的url("https://localhost/static/hello.m3u8")。这些都是调用VAPG-Player的标准。

接下来,在当前网页中引入hls.js(流媒体播放器):

<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>

最后,在当前网页中引入vapg_player.js(授权校验解密器):

<script src="./vapg/vapg_player.js"></script>

完整的HTML如下(player.html):

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>安全流媒体播放</title>
</head>
<body>
    <h1>🎬 安全流媒体播放器</h1>
    <video id="video" controls data-video-url="https://localhost/static/hello.m3u8"></video>
    <script src="https://localhost/static/js/hls.min.js"></script>
    <script src="./vapg/vapg_player.js"></script>
</body>
</html>

至此,我们已经完成了通过player.html网页来播放【安全流媒体】文件"https://localhost/static/hello.m3u8"了(我们将"hello.m3u8"和相应的"*.ts"文件静态的放置到了web应用的static目录下)。

启动本地测试用的web服务器后,就可以看到网页中的播放器可以正常播放"hello.m3u8"了,与直接使用hls.js播放没有任何不同,并且也可以在浏览器的控制台上看到日志输出。

🛡️【版权保护已开启】
🔒 保护范围:视频播放域名、视频播放时限、视频定名
🏢 服务商:北京锋通科技有限公司
📞 如需技术支持,请联系锋通科技官方团队(https://www.ftpeak.com)

这表示VAPG的授权校验和解密保护已经开启了。

请注意,您也可以使用传统的流媒体文件(没有经过VAPG-Maker加密的非安全流媒体文件),这时,一样能正常播放,但在浏览器的控制台上看到日志输出如下:

👁️【⚠️发现无授权保护的视频!】

提示当前播放的视频是"未经保护的(未授权、加密的)视频"。

"保护"与"未保护"的最大不同就是:

  • "保护"的"hello.m3u8"+"*.ts"即使被下载后,复制到其它网站上,也无法播放。
  • "未保护"的"hello.m3u8"+"*.ts"被下载后,复制到其它网站上,是可以播放的。这也正是大量的盗播方式。

(2)与video.js集成

video.js是当下的又一个主流流媒体播放器,它可以在hls.js的基础上进行流媒体播放,其浏览器兼容性、自定义能力是其得到大量应用的原因。

我们可以很简单的完成video.js与VAPG-Player集成。方法如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Video.js 安全播放</title>
    <link href="/static/js/video-js.css" rel="stylesheet">
</head>
<body>
    <h1>🎬 Video.js 安全播放器</h1>        
    <video id="my-video" class="video-js vjs-default-skin" controls preload="auto" width="640" height="360" data-setup='{"fluid": true}'>
        <source src="https://localhost/static/hello.m3u8" type="application/x-mpegURL">
    </video>

    <!-- Video.js -->
    <script src="/static/js/video.js"></script>
    <!-- HLS.js -->
    <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
    <!-- VAPG-Player -->
    <script src="./vapg/vapg_player.js"></script>

    <script>
        HLSPlayerLegacy.init({
            videoElement: videojs('my-video').el().querySelector('video'),
            videoUrl: document.querySelector('#my-video source').getAttribute('src')
        });
    </script>
</body>
</html>

可以看到,我们在集成了hls.js+video.js的基础上,引入了VAPG-Player,并通过脚本对其进行了初始化:

...
    <!-- VAPG-Player -->
    <script src="./vapg/vapg_player.js"></script>

    <script>
        HLSPlayerLegacy.init({
            videoElement: videojs('my-video').el().querySelector('video'),
            videoUrl: document.querySelector('#my-video source').getAttribute('src')
        });
    </script>
...

3、VAPG-Player的功能

VAPG-Player的功能是对【安全流媒体】进行授权校验、解密。那么针对不同的情况,其功能结果也不同。

(1)防护功能的开启与关闭

当遇到【安全流媒体】时,VAPG-Player将自动开启防护,也就是进行域名白名单校验、播放时限校验、名称校验、内容篡改校验;而当遇到传统的流媒体(即"非安全流媒体")时,由于传统的流媒体文件自身不具有安全属性,所以,VAPG-Player将自动关闭防护。

当开启防护时,视频可以正常播放,浏览器的控制台上会显示:

🛡️【版权保护已开启】
🔒 保护范围:视频播放域名、视频播放时限、视频定名
🏢 服务商:北京锋通科技有限公司
📞 如需技术支持,请联系锋通科技官方团队(https://www.ftpeak.com)

而当关闭防护(未开启防护)时,视频同样也可以正常播放,浏览器的控制台上会显示:

👁️【⚠️发现无授权保护的视频!】

(2)域名白名单校验

"域名白名单校验"既"域名校验",当所播放的【安全流媒体】文件的白名单中包含有当前文件所在的web域名,说明该【安全流媒体】文件允许在当前的web域名上播放,否则就说明不允许在当前的web域名上播放。"允许"就会"域名校验"通过,"不允许"就会"域名校验失败"。

域名校验通过时,视频可以正常播放,浏览器的控制台上无特殊显示。

而当域名校验失败时,视频会无法播放(通常黑屏),浏览器的控制台上将显示:

🚫【❌🌐视频未授权域名,拒绝播放】

另外,因为超时无法播放视频,会产生其它连带的错误,但这属于正常连锁反应(预料中的正常现象)。

例如,下面的控制台显示:

🛡️【版权保护已开启】
🔒 保护范围:视频播放域名、视频播放时限、视频定名
🏢 服务商:北京锋通科技有限公司
📞 如需技术支持,请联系锋通科技官方团队(https://www.ftpeak.com)
🚫【❌🌐视频未授权域名,拒绝播放】

前4行日志说明VAPG-Player已经对当前的【安全流媒体】开启防护,后面的1行日志说明域名授权校验未能通过。这说明当前的【安全流媒体】可能在当前的web域名下被盗播,因此被拒绝播放。

(3)播放时限校验

针对【安全流媒体】文件,如果该文件设置了播放时限(没有设置时限意味着永久授权),VAPG-Player对其进行播放时限校验。

如果播放时限超出了播放实现,会校验失败,拒绝播放(一般黑屏)。浏览器控制台上将显示日志信息:

🚫【❌📅视频未授权时限,拒绝播放】

例如,下面的控制台显示:

🛡️【版权保护已开启】
🔒 保护范围:视频播放域名、视频播放时限、视频定名
🏢 服务商:北京锋通科技有限公司
📞 如需技术支持,请联系锋通科技官方团队(https://www.ftpeak.com)
🚫【❌📅视频未授权时限,拒绝播放】

说明VAPG-Player已经对当前的【安全流媒体】开启了授权防护,并且视频时限授权没有通过(授权失败),因此拒绝播放。

(4)防篡改校验

【安全流媒体】文件的文件名和文件内容是不允许被篡改的。如果当下的【安全流媒体】文件存在更改文件名、更改文件内容情况时,会导致VAPG-Player防篡改校验失败,拒绝播放(一般黑屏),并且在控制台上的日志显示:

🚫【👀发现媒体文件存在未授权的修改,拒绝播放】

(5)总结

VAPG-Player会自动对当前的【安全流媒体】文件进行如下校验:

  • 域名白名单校验
  • 播放时限校验
  • 文件定名校验
  • 文件内容防篡改校验

当以上的校验失败后,会拒绝播放(一般黑屏),并在浏览器控制台上显示相应的日志。同时,因为超时无法播放,会产生其它连带的错误,但这属于正常连锁反应(是预料中的结果)。

五、高级主题

1、批量授权、切片、加密

通过VAPG-Maker的主界面中的"批量媒体切片加密"入口,可以打开"批量媒体切片加密"功能,这是VAPG-Maker为用户提供的批量处理程序,用于大量的【安全流媒体】制作。它基本上是VAPG-Maker的制作单个"媒体切片加密"的"多文件"版本,如下图:

批量媒体切片加密界面

【输出目录】用来设置批量处理结果的存放目录。

【线程数】用来设置并行处理的文件数量,一般设置值=CPU的物理核数-1。

【切片时长】用来设置每个切片的视频时长(参考值),一般设置为8~10秒为宜。

【域名白名单】用来设置【安全流媒体】校验用的域名白名单。也就是允许本次加工的【安全流媒体】在哪些域名上播放。

【批量授权时间】用来批量设置【安全流媒体】的播放时限校验。注意:如果不设置该项,代表了"无限时限"。

在【任务列表】中,可以通过【添加多个文件】一次、多次的向任务列表中添加视频文件。在添加文件对话框中,可以通过"Ctrl+鼠标左键/鼠标拖动"选择多个文件,也可以通过"Carl+A"选择所在子目录中的所有视频文件进行添加。

在对【任务列表】添加完毕后,可以通过【开始批量处理】启动批量处理任务。在处理过程中,你可以对每个正在处理、排队处理的任务进行取消、删除操作,您也可以通过点击【取消批量处理】来取消整个批量任务。

2、授权管理

新下载的VAPG-Maker是"免费版工具",有一定的功能限制,您可以通过本软件的"授权管理"来一次性永久的获取适合自己的使用权。获取的方式如下:

(1)获取"本机授权码"

VAPG-Maker自身就具有"授权码",您可以通过主界面的【授权管理】入口,进入【授权管理】功能界面。通过点击【环境检测与授权码生成】中的【环境检测】按钮来获取本机VAPG-Maker的"授权码"。如下图:

授权管理界面
环境检测与授权码生成

这样就得到了【本机授权码】(8为数字),如上例中的 24749472。

(2)购买"激活码"

通过在线联络的方式联系我们:锋通视频授权防盗卫士 - 流媒体文件防盗+授权可控,终身硬件授权无年费

并通过在线购买的方式来获取:锋通视频授权防盗卫士 - 流媒体文件防盗+授权可控,终身硬件授权无年费

(3)软件激活

在【激活码验证】中,填写购买的激活码(8个数字),之后点击【激活授权】按钮,稍等片刻,软件会自动完成"激活",一经"激活",终身有效。请记住购买的"激活码",当您重新安装系统后,还可以重复激活(终身有效)。如下图:

激活码验证界面

当前软件是否激活?可以通过【当前授权状态】来查看。在授权之前,一般为:

当前授权状态
授权级别: 免费版
配置文件状态: 已配置
最后更新时间: 2024-12-22 08:47:32

授权成功后,如:

当前授权状态
授权级别: 小企业终身版
配置文件状态: 已配置
最后更新时间: 2024-12-23 12:13:32

另外,您也会发现软件的主界面标题显示为(例如):

视频授权防盗卫士 - 小企业终身版

(4)软件使用权

不同的版本,其使用权限均有不同,您可以通过以下网址来了解使用权益的细节,衡量哪一个版本更加适合您?

锋通视频授权防盗卫士 - 流媒体文件防盗+授权可控,终身硬件授权无年费