首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >WEB端—(旧版)HLS普通加密视频注意事项及常见问题

WEB端—(旧版)HLS普通加密视频注意事项及常见问题

原创
作者头像
榴莲很好吃
修改于 2020-09-23 03:21:58
修改于 2020-09-23 03:21:58
3K00
代码可运行
举报
运行总次数:0
代码可运行

重要提示:本篇加密文档为旧版加密文档,请使用新版加密播放(自适应码率的加密视频、并且不需要在业务侧写返回密钥逻辑的都是新版)的用户不要使用该文档提供的代码进行加密播放。

这篇文章是对加密过程中的细节及容易疏漏的地方进行补充和说明,在此之前,需要您对加密视频有一个大概了解,点击查看官方文档。

加密视频完整流程图
加密视频完整流程图

名词解释

密钥:又称key,用于加密/解密资源文件。

密钥服务器客户端服务器,用于业务方管理密钥存储、分发的业务服务器,播放器在播放视频文件之前需要到该服务器获取密钥。

解密密钥服务器域名:又称getkeyurl,简称“解密密钥域名”,即密钥服务器的域名,在开通视频加密服务时需要将该域名登记到腾讯云云点播

token:业务端用户的身份标识,播放器请求获取密钥时会携带token,密钥服务器对token进行鉴权,只有携带token合法的请求才能获得到密钥。

注意事项

1、解密密钥格式确认

解密密钥是一段长度为16字节的二进制数据,且开头和结尾不能为空白字符。

播放器播放加密视频流程图
播放器播放加密视频流程图

如何判断返回的密钥格式是否正确?

在浏览器器中打开开发者工具,在network里选择获取密钥的请求,如下图。如果返回的密钥长度不对或密钥前后有空白,则需要检查密钥服务器返回密钥的逻辑。

 查看密钥的步骤
查看密钥的步骤
查看密钥的长度
查看密钥的长度

2、“HLS普通加密”和“DRM商业加密”的调用参数区别

腾讯云目前推出了两种加密方案:1、HLS普通加密;2、DRM商业加密。

两种加密方案在Web播放器里播放时需要配置的参数有区别,参数配置不对会导致无法播放加密视频。

HLS普通加密代码示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var player = TCPlayer('player-container-id', {
    fileID: '', // 请传入需要播放的视频 filID(必须)
    appID: '' // 请传入点播账号的 appID(必须)
});

HLS普通加密里的token属于非必填参数,如需使用token可以点击查看demo。

DRM商业加密代码示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var player = TCPlayer('player-container-id', {
     appID: '', // 请传入点播账号的 appID(必须)
     fileID: '', // 请传入需要播放的视频 fileID(必须)
     playDefinition: '' // 请传入播放模版,播放 DRM 内容必须
     plugins: {
         DRM: {
             token: '', // 传入您的后台服务签发的 token,播放 DRM 内容必须
             certificateUri: '', // 传入 FairPlay 证书的下载地址,播放 FairPlay 加密内容必须
             }
     }
 });

3、浏览器跨域访问处理

如果含播放器的Web页面的域名(或者Flash插件的域名)与密钥服务器域名不一致,则密钥服务器需要配置 CORS 策略(或corssdomain.xml),允许 JavaScript 和 Flash 插件跨域获取解密密钥。

跨域的场景分两种:H5模式和Flash模式

H5模式(Chrome、Firefox或其他浏览器极速模式下是H5模式)

如果播放页面与解密密钥服务器域名不一致,这个时候需要在密钥服务器配置 CORS 策略,允许 JavaScript 跨域获取解密密钥。

 播放页面与解密密钥域名不一致的报错
播放页面与解密密钥域名不一致的报错

CORS 策略配置参考:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<CORSConfiguration>
 <CORSRule>
 <AllowedMethod>HEAD</AllowedMethod>
 <AllowedMethod>POST</AllowedMethod>
 <AllowedMethod>GET</AllowedMethod>
 <AllowedMethod>PUT</AllowedMethod>
 <AllowedMethod>DELETE</AllowedMethod>
 <AllowedOrigin>*</AllowedOrigin>
 <AllowedHeader>*</AllowedHeader>
 <MaxAgeSeconds>7200</MaxAgeSeconds>
 <ExposeHeader>ETag</ExposeHeader>
 <ExposeHeader>x-cos-request-id</ExposeHeader>
 </CORSRule>
</CORSConfiguration>

Flash模式下(IE浏览器及其他浏览器兼容模式下是Flash模式)

1、如果 Flash 插件地址 与密钥服务器的域名不一致,则需要在密钥服务器的 Web 服务根目录配置 corssdomain.xml ,允许 Flash 跨域获取解密密钥。

corssdomain.xml 配置参考如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version=1.0″ encoding="UTF-8"?>
<cross-domain-policy>
 <allow-access-from domain="*" />
</cross-domain-policy>

注:腾讯云Web播放器的 Flash 插件文件默认存放在 imgcache.qq.com 域名下,可自行下载 swf 文件并部署到自己的 Web 服务器上。

2、播放页面与解密密钥服务器协议不一致。

在 Flash 模式下,注意保证协议一致。如果播放页面的协议是 http,而获取解密密钥地址的协议是 https,播放器到密钥服务器获取解密密钥时会被浏览器拦截,导致无法播放。

4、返回的密钥是 gzip 压缩过的

如果在密钥服务器的 Web 服务中配置过 gzip 压缩(或其他压缩方式),直接使用压缩后的密钥会导致解密失败,需要业务方先自行解压,返回给播放器非压缩形式的密钥来进行解密。

如何检查密钥是否经过压缩?

打开浏览器的开发者工具,在network里选择获取密钥的请求,如下图,查看请求的Response Headers 中是否带有 Content-Encoding:gzip(或其他压缩方式)。若返回正常的密钥,则 Response Headers 中的 Content-Length 为 16 字节。

 返gzip形式压缩的响应
返gzip形式压缩的响应
 返回正常的密钥长度
返回正常的密钥长度

5、视频只能进行一次加密,不可多次加密

若一个视频进行转码加密超过一次,会导致视频无法播放。

6、密钥服务器的获取密钥逻辑问题

HLS 方式播放的视频是由若干个 TS 分片组成,在大部分安卓微信端进行播放时,每加载一个 TS 分片都需要获取一次密钥解密,如果密钥服务器上获取密钥的接口只允许一次请求,会导致视频播放几秒后无法播放。

常见问题

Q1:播放器怎么播放加密视频?

当播放器获取到加密视频时,会发送请求到解密密钥服务器获取密钥,然后解密播放。发送请求获取密钥以及解密播放的工作由播放器完成,返回密钥的工作由业务端服务器完成。

Q2:token 参数是否必填?

token 不是必填参数。

加密视频在转码时就已进行过加密操作,token 是客户端播放器访问加密视频时的鉴权操作,如果不需要客户端再进行鉴权,可以不填写。

Q3:怎样将 token 传给播放器?

目前腾讯云Web点播播放器有两个,传递token如下:

A、通过腾讯云Web超级播放器通过参数传递,参考示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var player = TCPlayer('player-container-id', {
    fileID: '', // 请传入需要播放的视频 filID(必须)
    appID: '' // 请传入点播账号的 appID(必须)
    plugins:{
      HLSToken: {
        token: ''//传入token
        }
       }
 });

B、通过腾讯云TCPlayerLite播放则需要将token拼接到视频url里面,再将视频url传给播放器。

Q4:HLS普通加密是否支持和Key防盗链一起使用?

答:支持。

参考示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var player = TCPlayer('player-container-id', {
     fileID: '', // 请传入需要播放的视频 filID(必须)
     appID: '', // 请传入点播账号的 appID(必须)
     t: '',
     us: '',
     sign:''
});

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【云+社区年度征文】自适应码流加密+超级播放器播放最佳实践
随着视频行业的快速发展,越来越多的视频内容需要保护。不论腾讯视频、优酷、爱奇艺等视频媒体平台播放的独播剧、版权电影,还是在线教育网站提供的教学视频,抑或游戏主播录制的操作技巧,都离不开视频内容保护。防盗链是最常见的保护机制,但如果视频被盗链,则可以非法获取视频并传播。前段时间独播剧《使徒行者3》提供付费超前点播服务,结果很多第三方网站都可以在线观看,试想版权方的心里阴影面积……
clairehou
2020/12/11
4.9K0
【云+社区年度征文】自适应码流加密+超级播放器播放最佳实践
云点播-视频加密播放实践
云点播的 转自适应码流 功能,可以将视频转成多种分辨率并加密。播放加密后的视频,需要在终端集成 超级播放器 SDK 。
你很甜的嘛
2020/05/14
8.4K0
云点播-视频加密播放实践
【腾讯课堂】视频点播上云实践
腾讯课堂是一款通过线上的直播与点播向用户提供在线教育服务的产品,从 2014 年成立至今,已累计存储了 250 万个视频,共 600 TB,累计时长 150 万小时。之前一直采用的是腾讯视频的方案,但使用的是 MP4 格式,用户拿到了播放链接之后很容易盗版,所以趁着上云的潮流,我们将视频点播迁移到了腾讯云 - 云点播上,本文主要会讲一讲我们整体的方案、Web 接入的方法和遇到的一些问题。
IMWeb前端团队
2019/12/04
9.1K0
HLS视频加密,让您的视频内容更安全!
HLS视频加密是一种基于HTTP Live Streaming(HLS)协议的加密技术。它的核心思想是将视频切片进行加密处理,在客户端播放时需要先获取解密密钥才能正常偶发。通过这种方式,HLS加密可以有效防止未经授权的第三方窃取视频内容,从而保障了视频内容的版权和安全。数据万象媒体处理服务提供了一套HLS视频加密方案,方便用户各个场景的需求。
云存储
2024/05/10
7080
HLS视频加密,让您的视频内容更安全!
超级播放器tcplayer如何设置logo
点播超级播放器是基于 video.js 框架并结合腾讯云点播业务而开发的视频播放器,采用以 HTML5<video>为主,Flash 为辅的播放方式,在浏览器不支持 HTML5<video>的情况下采用 Flash 播放。播放器界面由 HTML CSS 实现,可以通过 CSS 定制界面。
黑眼圈云豆
2020/09/14
3.2K0
COS 音视频实践|给你的视频加把锁
导语 为了保障视频内容安全,防止视频被非法下载和传播,对象存储(Cloud Object Storage,COS)数据处理基于数据万象 CI 提供了 HLS 视频加密的功能,拥有相比于私有读文件更高的安全级别。加密后的视频,无法分发给无访问权限的用户观看。即使视频被下载到本地,视频本身也是被加密的,无法正常播放和二次分发,从而保障您的视频版权不受到非法侵犯。 本文基于 COS 数据工作流,对视频进行 HLS 转码加密,同时搭建一套基础的密钥管理服务,并利用腾讯云超级播放器,播放加密后的视频文件。 一
云存储
2021/12/30
1.8K0
Web端集成TRTC SDK、集成播放器SDK
WebRTC 技术由 Google 最先提出,目前主要在桌面版 Chrome 浏览器、桌面版 Edge 浏览器、桌面版 Firefox 浏览器、桌面版 Safari 浏览器以及移动版的 Safari 浏览器上有较为完整的支持,其他平台(例如 Android 平台的浏览器)支持情况均比较差。
yuliang
2021/03/22
4.3K0
流媒体服务器(11)—— 云点播播放器方案调研实录
前段时间公司对接了一个智能泊车项目,在这个项目中会产生大量的泊车视频,因为会涉及到用户隐私,需要将这些视频文件安全的上传到云端存储起来,并支持后续的安全播放需求。
liuzhen007
2021/11/01
10.8K2
流媒体服务器(11)—— 云点播播放器方案调研实录
几招解决超级播放器Error Code:4
市面上播放器千千万,比如我们常见的有Video.js、hls.js、点播超级播放器等。其中点播超级播放器是基于 video.js 框架并结合腾讯云点播业务而开发的视频播放器,采用以 HTML5<video>为主,Flash 为辅的播放方式,在浏览器不支持 HTML5<video>的情况下采用 Flash 播放、PC端兼容很好。最近收到客户反馈,在接入使用Web超级播放器时,嵌入到对应页面时出现报错。接下来以腾讯云点播为例,来看下如何解决。
罗亚-lyaluo
2020/11/27
18.2K0
几招解决超级播放器Error Code:4
使用腾讯云云点播对视频进行HLS加密
加密并不是百分百不会泄露,只是增加直接获取被加密资源的代价,别人录屏等等也是可以的,防不胜防
沈唁
2019/12/30
4K1
web内容如何保护:如何有效地保护 HTML5 格式的视频内容?
HTML是用于创建web页面和web应用程序的公开标准的标记语言。HTML文件基本上是纯文本文件,这意味着软件应用程序和普通人可以轻松地创建、读取和更新web页面。HTML的开放特性不仅使得用户可以使用简单的文本编辑器来编辑网站,而且任何人都可以查看源代码并复制其HTML源代码,并应用于其他地方。
周陆军博客
2022/06/25
2.3K0
通过样式覆盖修改Tcplayer动态水印样式
效果图: 41102.gif 在线demo 覆盖样式代码: .tcp-dynamic-watermark-container .tcp-dynamic-watermark-content { font-size: 30px; color: red; } 全部demo代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-
良人
2022/04/11
3.2K0
技术解码 | 打造更安全的视频加密,云点播版权保护实践
导语 | 云点播在视频版权保护方面持续投入和演进,从最开始的「基础加密方案」,到后来的「私有加密方案」以及「商业级 DRM」,保护的安全级别逐步提高。本文将为大家详解各个加密方案的技术细节及优缺点,云点播用户可以结合自身业务场景,选择最适合自己的版权保护方案。 在中国,以在线教育、职业培训、OTT 服务商等为代表的网络视频行业,其付费规模逐步增长。然而,针对网络视频的盗版侵权行为层出不穷,对版权方利益造成了严重的损失。因此,这一类用户急切地希望其高质量的视频内容能受到加密保护,仅允许自己的付费用户
腾讯云音视频
2021/12/11
2.6K0
实时音视频开发学习6 - 云端录制与回放
云端录制在远程教育、秀场直播、视频会议、在线医疗等场景中都广泛应用,考虑到取证、质检、审核、存档和回放等需求,常需要将整个视频通话或互动直播过程录制并存储下来。腾讯云产品会将录制结果保存在云点播的资源管理的视频管理当中,在这里可以通过管理视频查阅视频的基本信息、视频发布或在浏览器中直接使用。
金林学音视频
2020/08/24
6.9K1
实时音视频开发学习6 - 云端录制与回放
tcplayer 源码改造第一弹 -> 自定义加密
在代码中定位videoSource,可定位到如下相似代码,下面的代码中加注释的即为笔者新增的参数
大洼X
2019/11/01
3.7K0
tcplayer 源码改造第一弹 -> 自定义加密
COS 音视频实践|播放多场景下的 COS 视频文件
上回 (COS音视频实践|多种姿势让你的视频“跑”起来)说道,基于您的实际场景,可以选择不同的方式,在 Web 浏览器端播放您的 COS 视频文件。本文将基于腾讯云超级播放器,带您体验播放多场景下的 COS 视频文件。
云存储
2021/12/14
2.7K0
COS 音视频实践|播放多场景下的 COS 视频文件
构建DRM系统的重要基石——EME、CDM、AES、CENC和密钥
点击上方“LiveVideoStack”关注我们 ▼扫描下图二维码或点击阅读原文▼ 了解音视频技术大会更多信息 翻译、编辑:Alex 技术审校:刘姗、周亚桥 本文来自OTTVerse,作者为Krishna Rao Vijayanagar。 DRM Easy-Tech #016# 任何想要理解DRM(Digital Rights Management,数字版权管理)的人都要遇到AES、CDM、CENC、EME等缩略词。对于初学者来说,这些词很容易混淆,但只有理解了它们,才能真正地理解DRM。我们将在本
LiveVideoStack
2022/03/18
2.4K0
实时音视频开发学习7 - CDN直播与回放
CDN直播观看也叫“CDN旁路直播”,由于TRTC采用的是UDP协议进行传输音视频数据,而标准CDN则采用RTMP/HLS/FLV等协议进行数据传输,所以需要将TRTC中的音视频数据旁路到直播CDN中。
金林学音视频
2020/08/25
3.6K0
实时音视频开发学习7 - CDN直播与回放
理解直播及其工作原理
直播是指通过互联网实时传输演出的音频和视频内容。随着实时视频的流行,直播俨然已成为众多企业和组织市场战略的重要组成部分。直播可用于活动(赛事)直播、提供客户服务以及举行网络研讨会等一切内容。
LiveVideoStack
2022/02/11
2.1K0
理解直播及其工作原理
Apple FairPlay DRM及其工作原理
 点击上方“LiveVideoStack”关注我们 翻译、编辑:Alex 技术审校:刘姗 本文来自OTTVerse,作者为Krishna Rao Vijayanagar。 ▲扫描图中二维码或点击阅读原文▲ 了解音视频技术大会更多信息 Apple FairPlay Easy-Tech #020# 在本篇文章中,我们将了解Apple推出的FairPlay DRM解决方案(主要用于在iOS、tvOS和macOS设备上安全分发内容)。让我们一起来看下FairPlay DRM的重要构成、基本工作流和一些有趣
LiveVideoStack
2022/04/11
3.8K0
Apple FairPlay DRM及其工作原理
相关推荐
【云+社区年度征文】自适应码流加密+超级播放器播放最佳实践
更多 >
LV.0
这个人很懒,什么都没有留下~
作者相关精选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档