首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >云点播-视频加密播放实践

云点播-视频加密播放实践

原创
作者头像
你很甜的嘛
修改于 2020-06-04 07:40:37
修改于 2020-06-04 07:40:37
8.4K00
代码可运行
举报
文章被收录于专栏:实战小课程实战小课程
运行总次数:0
代码可运行

简介

云点播转自适应码流 功能,可以将视频转成多种分辨率并加密。播放加密后的视频,需要在终端集成 超级播放器 SDK

一、上传视频并转码机密

上传视频方式很多,可以控制台上传也可以集成SDK上传。这里就使用控制台上传。

上传时可以选择上传后自动进行视频处理,也可以选择稍后处理。这里就选择自动进行视频处理,选择【处理类型】选择“任务流”,【任务流模板】选择预设的“SimpleAesEncryptPreset”,也可以选择自定义的加密模板。

1-1 上传并自动加密转码
1-1 上传并自动加密转码

注意:

如果在上传后进行转自适应加密,自适应码流模板需要预先自定义创建,创建可以选择加密或者不加密。

二、签名计算

播放加密视频,需要使用 超级播放器签名,并开启 Key 防盗链

防盗链开启:控制台->【系统设置】->【分发播放设置】->【域名管理】,对分发的默认域名进行设置,防盗链开启需要大概5分钟生效。

2-1 防盗链开启
2-1 防盗链开启

签名计算的方式有两种:一、在线签名工具;二、示例代码

1、在线签名

工具链接:https://vods.cloud.tencent.com/signature/super-player-sign.html

2-2 在线签名工具
2-2 在线签名工具

必填的参数有:appid、fileid、currentTimeStamp、pcfg、防盗链Key。

appid:如果您使用了子应用,则参数需要填子应用 appId;

pcfg:如果使用是默认的自适应码流转码模板,计算签名时就填basicDrmPreset;如果使用的是自定义自适应码流转码模板,计算签名时填写控制台中配置的名称。

如何自定义pcfg:

控制台->系统设置->分发播放设置->超级播放器配置->新建

2-3 超级播放器配置新建
2-3 超级播放器配置新建
2-4 新建超级播放器配置
2-4 新建超级播放器配置

2、示例代码

python参考代码

使用 JWT 库计算签名,请使用pip install pyjwt安装。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python
#coding=utf-8

import jwt

AppId = 1255566655
FileId = "4564972818519602447"
CurrentTime = 1546340400
PsignExpire = 1546344000
UrlTimeExpire = "5c2b5640"
Key = "24FEQmTzro4V5u3D5epW"

Original = {
    "appId": AppId,
    "fileId": FileId,
    "currentTimeStamp": CurrentTime,
    "expireTimeStamp": PsignExpire,
    "urlAccessInfo": {
        "t": UrlTimeExpire
    }
}

Signature = jwt.encode(Original, Key, algorithm='HS256')

print("Original: ", Original)
print("Signature: ", Signature

JAVA示例代码

jwt 版本号3.10.3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.*;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTCreationException;
import com.auth0.jwt.JWT;

class Main {
    public static void main(String[] args) {
        Integer AppId = 1255566655;
        String FileId = "4564972818519602447";
        Integer CurrentTime = 1546340400;
        Integer PsignExpire = 1546344000;
        String UrlTimeExpire = "5c2b5640";
        String Key = "24FEQmTzro4V5u3D5epW";
        HashMap<String, String> urlAccessInfo = new HashMap<String, String>();
        urlAccessInfo.put("t", UrlTimeExpire);

        try {
            Algorithm algorithm = Algorithm.HMAC256(Key);
            String token = JWT.create().withClaim("appId", AppId).withClaim("fileId", FileId)
                    .withClaim("currentTimeStamp", CurrentTime).withClaim("expireTimeStamp", PsignExpire)
                    .withClaim("urlAccessInfo", urlAccessInfo).sign(algorithm);
            System.out.println("token:" + token);
        } catch (JWTCreationException exception) {
            // Invalid Signing configuration / Couldn't convert Claims.
        }
    }
}

三、加密视频播放

以下主要以Web端播放器为例:

在页面集成超级播放器Web SDK,引入播放器样式文件与脚本文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link href="https://imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.css" rel="stylesheet">
 <!--如果需要在 Chrome 和 Firefox 等现代浏览器中通过 H5 播放 HLS 格式的视频,需要在 tcplayer.v4.min.js 之前引入 hls.js。-->
 <script src="https://imgcache.qq.com/open/qcloud/video/tcplayer/libs/hls.min.0.12.4.js"></script>
 <!--播放器脚本文件-->
 <script src="https://imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.v4.min.js"></script>

其中<tcplayer.v4.min.js>为新版SDK脚本,老版本的JS脚本<tcplayer.min.js>不支持播放自适应码流加密,使用老版本的脚本会报错。

视频播放需要添加以下参数,具体参考 超级播放器 Web 中的 HLS加密。

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

集成后的demo:

↓↓↓↓↓↓

Demo

↑↑↑↑↑↑

当播放出现如下图所示时,表示基本的[上传-加密-播放]就成功啦!!!

2-5 demo界面
2-5 demo界面

FAQ:

  1. 加密后得视频无法播放

F12看下NetWork,看下获取播放链接的错误码。

403 Forbidden有以下可能:

a. JS脚本引入的是老版本,需要替换为新版;

b. 签名计算错误,可以使用在线校验工具校验下;

c . 使用了自定义的转码模板,但在签名时pcfg选用的是默认模板对应的pcfg:SimpleAesEncryptPreset,未配置对应的超级播放器配置

示例:

403 示例
403 示例

通过签名校验工具可以知道,签名链接过期,进一步得知,签名的expireTimeStamp时间过期了。

校验结果
校验结果

总结

云点播此次加密体系升级,主要调整在于增加了HLS自适应码流转码加密,加密【转码-播放】更加简单。欢迎大家对腾讯云点播多多支持!!!

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
pycharm菜鸟教程_pycharm首次使用教程
造成这个问题的原因不是我们的环境配置有问题,只是“连接超时”而已,从”HTTPSConnectionPool”,”Read timed out”这两个关键词也能看出问题所在。造成此异常的原因,可能有2种情况:
全栈程序员站长
2022/09/27
1K0
pycharm菜鸟教程_pycharm首次使用教程
Pycharm使用指南【完整版】
步骤:点击File—>Settings—>Editor—>Color Scheme—>选择自己喜欢的主题即可
hacker707
2023/04/04
1.6K0
Pycharm使用指南【完整版】
Pycharm 常用快捷键大全
本文对Pycharm常用快捷键进行了汇总整理,强烈建议你收藏学习,相信这些快捷键一定能提高你Python编程的效率。
龙哥
2021/11/10
1.2K0
Pycharm使用教程(三)(非常详细,非常实用)
1、 汉化:把resources_zh.jar拷贝到PyCharm的安装目录下的lib目录,重启Pycharm即可。
北京-宏哥
2019/09/11
3.2K0
Pycharm使用教程(三)(非常详细,非常实用)
第二:Pycharm设置配置(非常详细)「建议收藏」
1、 汉化:把resources_zh.jar拷贝到PyCharm的安装目录下的lib目录,重启Pycharm即可。
全栈程序员站长
2022/09/25
3K0
第二:Pycharm设置配置(非常详细)「建议收藏」
pycharm使用小技巧_pycharm学笨办法
点击左上角的“File”(文件),选择“Settings”(设置),输入“font”(字体)找到“Font”,在“Size”(大小)里面设置数字,默认是13,建议15或者18就可以了。
全栈程序员站长
2022/09/27
3650
pycharm使用小技巧_pycharm学笨办法
pycharm入门教程(非常详细)_pipe使用教程
1、 汉化:把resources_zh.jar(自行下载)拷贝到PyCharm的安装目录下的lib目录,重启Pycharm即可。
全栈程序员站长
2022/09/25
8070
pycharm入门教程(非常详细)_pipe使用教程
PyCharm的高效使用技巧
以前在写 Python 代码时,总觉得效率很低,因为要时不时地动动鼠标、调整一下格式。这一分神,思路就被打断了,再想接上刚才的思路又得花好长时间...
SuperFeng
2019/09/26
5650
PyCharm使用指南(个性化设置、开发必备插件、常用快捷键)
在File—>Settings—>Appearance & Behavior—>Material Theme UI—>Settings—>Selected Theme中更改主题
hacker707
2024/04/08
6.9K0
PyCharm使用指南(个性化设置、开发必备插件、常用快捷键)
「建议收藏」Pycharm使用教程(非常详细,非常实用)「建议收藏」
pycharm是Jetbrains家族中的一个明星产品,Jetbrains开发了许多好用的编辑器,包括Java编辑器(IntelliJ IDEA)、JavaScript编辑器(WebStorm)、PHP编辑器(PHPStorm)、Ruby编辑器(RubyMine)、C和C++编辑器(CLion)、.Net编辑器(Rider)、iOS/macOS编辑器(AppCode)等。pycharm现在在官网[https://www.jetbrains.com/pycharm/download/#section=windows]是分为两个版本,第一个版本是Professional(专业版本),这个版本功能更加强大,主要是为Python和web开发者而准备,是需要付费的。第二个版本是社区版,一个专业版的阉割版,比较轻量级,主要是为Python和数据专家而准备的。一般我们做开发,下载专业版本比较合适。
全栈程序员站长
2022/09/25
2.4K0
「建议收藏」Pycharm使用教程(非常详细,非常实用)「建议收藏」
pycharm怎么用啊_我不想用失去来教会你
1、右上角的 工具栏 能够 执行(SHIFT + F10) / 调试(SHIFT + F9) 代码
全栈程序员站长
2022/09/27
8060
pycharm怎么用啊_我不想用失去来教会你
pycharm怎么缩小代码_pycharm快速缩进
2、取消代码块的缩进 选中要取消缩进的代码块,按shift+tab键,整个代码块取消缩进
全栈程序员站长
2022/09/27
8240
【说站】python中Pycharm的快捷键及用法
这里说下Python的单行注释是 # , 多行注释是 '''注释内容''' ,  java的单行注释是 // , 多行注释 /* 注释内容 */,  文档注释 /** 注释内容 */
很酷的站长
2022/11/23
4120
【说站】python中Pycharm的快捷键及用法
pycharm使用小技巧_pycharm基本使用方法
Pycharm作为Python开发最常用的IDE之一,不仅兼容性好,而且功能也相当丰富,比如调试、语法高亮、智能提示等等功能,它还支持web开发框架比如Django等,当你熟悉了它之后,开发效率是相当之高的。
全栈程序员站长
2022/09/27
5360
pycharm使用小技巧_pycharm基本使用方法
pycharm 常用快捷键_pycharm下一行快捷键
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/173173.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/25
6690
vscode快捷键与使用配置[通俗易懂]
主命令框 F1 或 Ctrl+Shift+P: 打开命令面板。在打开的输入框内,可以输入任何命令,例如:
全栈程序员站长
2022/08/31
5450
pycharm创建一个新项目_pycharm没有解释器怎么办
python和pycharm的安装可以查看我的上一篇日志https://mp.csdn.net/postedit/80236418 1,设置python文件的抬头,即新建一个python文件的时候,默认会添加如下的内容。
全栈程序员站长
2022/09/27
9130
pycharm创建一个新项目_pycharm没有解释器怎么办
pycharm第一次打开
下载地址:https://www.jetbrains.com/pycharm/ 版本:PyCharm Professional Edition 收费 版本:PyCharm Community Edition 免费
全栈程序员站长
2022/09/27
1.7K0
pycharm第一次打开
pycharm设置c语言注释颜色,pycharm设置注释颜色的方法[通俗易懂]
File–>Settings–>Editor–>Color&Fonts–>LanguageDefaults–>Linecomment–>设置颜色即可
全栈程序员站长
2022/09/25
3.1K0
Pycharm入门使用教程(for python)「建议收藏」
2.选择解释器 选择了合适自己python代码的解释器,编译才不会出错 settings-project-Interpreter-选择合适自己的python3.x或者python2.x
全栈程序员站长
2022/09/27
7950
Pycharm入门使用教程(for python)「建议收藏」
推荐阅读
相关推荐
pycharm菜鸟教程_pycharm首次使用教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档