为受保护的播放添加可见水印
由可信后端发送水印设置,使用兼容播放器渲染三种可见样式,并验证会话的完整生命周期。
可见水印如何传递给播放器
经过身份验证的后端为会话选择水印文字和图层。
- 授权
确认观众有权观看所请求的内容。
- 请求
在播放会话请求中发送水印和兼容播放器的能力声明。
- 渲染
在可渲染所需图层的播放器中加载已授权的会话。
1. 选择水印图层#
| 图层类型 | 观众看到的效果 | 建议的初始设置 |
|---|---|---|
random-static | 直立文字在一个位置短暂停留,然后更换位置。 | intervalSeconds: 8 |
diagonal | 在视频画面上沿对角线移动的文字。 | speed: "slow" |
full-screen | 在视频上叠加重复排列的文字网格。 | rows: 3, columns: 3 |
每个会话中每种类型只能出现一次。可分别设置各图层的不透明度,测试时请使用简短的虚构观众标识。流媒体播放期间,播放器将水印渲染在画面上方。
2. 在后端请求中添加水印#
在您的后端验证观众身份及其对所选 Content ID 的访问权限,并在后端生成水印文字。仅在所选播放器实现该能力时转发 watermarkVersion: 1。
将这些字段合并到现有的已授权 播放会话请求中,发送到 POST /api/v1/playback/environments/{environmentId}/sessions。保留现有 DRM、主体、策略和会话字段,以及其他受支持的能力。
{
"platformCapabilities": {
"clientPlatform": "web",
"watermarkVersion": 1
},
"watermark": {
"version": 1,
"text": "Demo viewer A104",
"layers": [
{ "type": "random-static", "opacity": 0.38, "intervalSeconds": 8 },
{ "type": "diagonal", "opacity": 0.30, "speed": "slow" },
{ "type": "full-screen", "opacity": 0.16, "rows": 3, "columns": 3 }
]
}
}
文字最多为 512 个 UTF-8 字节,且不超过三行。使用纯文本和一到三种不同的图层。普通流媒体会话可省略 watermark。
3. 使用 PHP 示例进行测试#
从 SDK 水印评估示例开始。在您自己的 PHP 示例副本中,在 config/drmx.php 中设置 watermark 解析函数。示例在验证观众身份和内容访问权限后调用该函数。
'watermark' => static function (string $viewerId, string $contentId): array {
return [
'text' => 'Demo viewer A104',
'layers' => [
['type' => 'random-static', 'opacity' => 0.38],
['type' => 'diagonal', 'speed' => 'slow'],
['type' => 'full-screen', 'opacity' => 0.16],
],
];
},
生产环境应从自己的已授权观众记录中生成简短的化名标识。将凭据留在后端,并避免在 URL、日志、分析数据和共享缓存中记录观众文字。返回已授权的播放器响应时使用 Cache-Control: no-store。
4. 在兼容的播放器上渲染并验证#
将规范化后的会话响应(包括 watermark)交给兼容的 Universal Player。Web 端使用受支持的 <drmx-universal-player> 组件,使播放器能够管理全屏水印。如果客户端无法渲染必需的图层,请停止播放并释放会话占用。
| 集成 | 可用性 |
|---|---|
| PHP Web 演示 | 评估示例使用兼容的 Web SDK 预览版,可在这里测试三种图层。 |
| 公开发布的 SDK 和 CMS 软件包 | 检查实际部署的软件包是否支持 watermark v1。现有下载别名和 LMS 插件可能仍使用较早的播放器版本。 |
| 原生和电视平台 | 源码预览版提供针对各平台的渲染器。生产环境要求使用水印前,请验证具体的 SDK 版本和设备。 |
分别测试每种图层及其组合。暂停、跳转、调整尺寸并进入全屏,然后停止播放并确认会话已释放。检查旧版客户端无法启动其不能渲染必需水印的会话。
本教程涵盖流媒体播放中的可见叠加层。离线播放和仅传送视频画面的外部播放需要单独验证。
DRM-X 6.0