tencent cloud

溯源水印
最后更新时间:2025-12-17 10:55:38
溯源水印
最后更新时间: 2025-12-17 10:55:38

概述

溯源水印技术为音视频嵌入标识信息,可以作为 “数字指纹” 用于追踪侵权。溯源水印分为可见水印和不可见水印,其中不可见水印利用数据冗余嵌入,不影响内容质量。视频内容平台借助不可见水印锁定非法搬运者,确保内容真实可追溯。高质量的不可见溯源水印应该在保证鲁棒性的同时,不影响视频的视觉质量,并避免被用户察觉。这要求精确控制水印嵌入强度,例如利用人眼视觉系统(HVS)的特性,将水印嵌入到人眼对视觉变化不敏感的区域(如视频的纹理复杂区域、亮度较高或较低的区域),从而在保证水印隐蔽性的前提下,提高水印的抗攻击能力。

腾讯云 Stream Services 支持直播场景下的 AB 溯源水印方案。该方案基于深度学习模型,对实时直播流的视频帧空间特征与音频频谱特征进行联合建模,并根据音视频内容动态添加不可见水印。
在 StreamLive 中,系统会对同一个输入直播流进行两份转码,生成两份输出流。这两份输出流的内容分片会分别被打上 A 水印、B 水印,然后输出到 StreamPackage 直播源站的两个频道中。在内容分发阶段,CDN 节点会根据用户标识,为不同终端用户生成包含唯一溯源标识 uin 的视频分片序列(AB 序列)。依据此唯一的 AB 分片序列,系统从 StreamPackage 直播源站获取相应的 A 水印内容分片或者 B 水印内容分片。当内容被盗录时,腾讯云可利用水印检测网络,从盗录视频中提取出内容的 AB 分片序列,并分析出观看者(盗录者)的 uid,从而实现溯源。对于常见的攻击手段,如录屏、拍摄,或者进行一定程度的视频压缩、格式转换、剪辑、亮度调整、对比度调整等,均可成功提取水印,确保溯源效果。

溯源水印技术作为高级别的安全防护手段,可被广泛应用于各类内容保护场景,例如:影视、综艺、赛事、在线教育、企业直播、短视频等。

功能配置流程

1. 了解 Stream Services 的整体配置流程:请阅读文档 实现直播
2. 了解如何配置 StreamPackage:请阅读文档 配置 StreamPackage 或者 StreamPackage 控制台指南。当使用 AB 溯源水印功能时,需要在 StreamPackage 中创建2个 Input Protocol 相同的 Channel,用于接收 StreamLive 的2个 Output Group(转码时分别被加上了 A 水印和 B 水印)。然后,在 StreamPackage 的每个 Channel 中创建一个 Endpoint,同时这2个 Endpoint 的 Manifest Name 需要保持一致。这样,当 CDN 向 StreamPackage 回源时,即可根据用户唯一的 AB 序列,从相应的 Endpoint 获取对应的 A/B 内容分片。
3. 了解如何配置 StreamLive:请阅读文档 配置 StreamLive 或者 StreamLive 控制台指南。当使用 AB 溯源水印功能时,需要先在水印管理中创建 A/B 溯源水印,在创建 Output Group 时,需要创建2个 Output Group,其中一个添加 A 水印,另一个添加 B 水印。同时,这2个 Output Group 中的 Output 个数、Output 码率设置和 Output Name Modifier 都需要保持一致。这样,对于同一个 Input 直播流,就可以实现生成一个带 A 水印的 Output Group、一个带 B 水印的 Output Group,并分别输出到已创建的2个 StreamPackage Channel 中。
4. 了解如何使用云直播进行回源和分发:请阅读文档 配置云直播 CSS
5. 配置完成后,可以参考 API 文档 GetAbWatermarkPlayUrl,生成 AB 溯源水印频道的播放 URL。
6. 在播放过程中,如果发现盗播情况,可以将盗播文件提交给腾讯云进行分析和溯源。

以 HLS 协议为例,具体配置步骤可以参考下文(DASH 协议的配置流程同理)。

配置 StreamPackage 频道

2. Create Channel 时,创建2个 Input Protocol 为 HLS 的 Channel。

3. 对已创建的 Channel,进入频道 Info 详情页面,在 Endpoints 标签页面中创建1个 Endpoint。同时,对于已创建的这2个 Channel,其 Manifest Name 需要一致。

4. 回到 StreamPackage Channel 页面,记录下2个 Channel 的 ID,用于后续的 StreamLive 配置。


配置 StreamLive 频道

2. 参考 Input 管理,根据业务需求,配置 StreamLive Input。
3. 从左侧导航栏中,进入 Watermark 管理页面,单击 Create Template,选择类型为 A/B Watermark,创建一个 A 水印,再创建一个 B 水印。






4. 参考 Channel 管理,设置频道基本信息、添加输入、设置输入、设置输出组。注意,在此需要设置2个输出组 Output Group
设置第一个输出组
设置第二个输出组
Output Group 类型为 HLS_STREAMPACKAGE。

输出目的信息,填写已创建好的 StreamPackage 的第一个频道 ID

为 Output Group 添加 Output,为 Output 设置 Name Modifier 和转码参数。
注意:
对于纯视频或音视频类型的 Output,两个输出组中分辨率相同的 Output,Name Modifier 以及转码模板中的视频帧率/码率要一致。
对于纯音频类型的 Output,两个输出组中音频选择器相同的 Output,Name Modifier 以及转码模板中的音频采样率/码率要一致。

对于每个 Output,在转码模板的参数配置中,都要关联上 A 水印。

在 Segment Information 中,分片时长 Segment Duration 不能设置得太大,避免对于检测文件要求的录制时长过大,建议使用2000ms。此外,请注意,在后续为第二个Output Group设置分片时长时, Segment Duration 需要与这第一个 Output Group 中的值一致。

Output Group 类型为 HLS_STREAMPACKAGE。

输出目的信息,填写已创建好的 StreamPackage 的第二个频道 ID。

为 Output Group 添加 Output,为 Output 设置 Name Modifier 和转码参数。
注意:
对于纯视频或音视频类型的Output,两个输出组中分辨率相同的Output,Name Modifier以及转码模板中的视频帧率/码率要一致。
对于纯音频类型的Output,两个输出组中相同音频选择器的Output,Name Modifier以及转码模板中的音频采样率/码率要一致。

每个 Output,在转码模板的参数配置中都要关联上 B 水印。

在 Segment Information 中,分片时长 Segment Duration 需要与第一个 Output Group 中的值一致。此外,请注意分片时长不能设置得太大,避免对于检测文件要求的录制时长过大,建议使用2000ms。

5. 完成 StreamLive 中的频道设置。

配置云直播 CSS 回源 StreamPackage

1. 登录云直播控制台
2. 参考文档 添加自有域名,以添加云直播的播放域名。

2.1 Type 选择 Playback Domain,Acceleration region 选择 Outside Chinese mainland。

2.2 对这个播放域名开启回源模式

2.3 在回源配置中,将 Origin Server Type 选择 StreamPackage,并勾选之前已配置的 StreamPackage Region 和2个 Channel。

2.4 勾选好 StreamPackage 中2个频道后,页面继续往下滑,可以看到 URL 改写设置。
用这个播放 URL(http://playdomain.com/live/abwm1/main.m3u8) 进行举例。参考 云直播的播放地址,其中playdomain.com 为云直播播放域名,由用户进行设置;live 为云直播的应用名称,默认为 live,可以自定义;abwm1为流名称,由用户进行自定义,用来标识直播流。
如果在 StreamPackage 中已创建的2个 Channel 的 Endpoint URL 为:
http://251009588.ap-mumbai.streampackage.srclivepull.myqcloud.com/v1/0196c756ed0a09dc0f3209c36608/groupA/main.m3u8
http://251009588.ap-mumbai.streampackage.srclivepull.myqcloud.com/v1/0196c757112409dc0f3209c3660b/groupB/main.m3u8
则可以进行以下改写:
将/A/live/abwm1/ 改写为 /v1/0196c756ed0a09dc0f3209c36608/groupA/
将/B/live/abwm1/ 改写为 /v1/0196c757112409dc0f3209c3660b/groupB/
即在 URL 改写设置中填入以下信息:


完成配置并生成播放 URL

1. 完成以上步骤后,可以通过腾讯云 API GetAbWatermarkPlayUrl 生成含 AB 水印的频道播放 URL。
2. 完成所有配置并准备就绪后,即可启动频道。

盗播检测

在使用 AB 溯源水印后,如果发现存在盗录的情况,获取到被盗播的视频文件后,可以将视频文件提交给腾讯云 StreamLive 产品团队进行视频分析,以进行水印检测和盗录观众溯源。
1. 启动任务
通过腾讯云 API CreateWatermarkDetection 创建水印检测任务。为了保证检测效果,待检测的视频时长需至少达到分片时长的90倍,暂时仅支持完整单文件视频,不支持基于播放列表与分段的流媒体格式(如 HLS 或 DASH)。
创建任务接口响应示例如下:

2. 查询任务结果
2.1 在使用 CreateWatermarkDetection 发起水印检测任务时,可以通过 TaskNotifyConfig 参数设置回调信息。当任务处理完成后,会通过配置的回调信息回调任务结果,任务结果的具体字段含义在文档 AbWatermarkDetectionInfo 中。
2.2 调用 DescribeWatermarkDetection 接口查询指定 ID 的任务结果。
2.3 调用 DescribeWatermarkDetections 接口查询指定时间范围内的任务结果。

本页内容是否解决了您的问题?
您也可以 联系销售 提交工单 以寻求帮助。

文档反馈