点播试看功能最佳实践

本文涉及的产品
.cn 域名,1个 12个月
简介: ## 简介 试看指用户在观看视频或者音频等内容时,只能观看指定时间(如前五分钟)的内容,通常用于会员等付费业务场景。 阿里云视频点播服务提供了试看的完整解决方案,您可自由设置试看时长(或观看完整视频),播放服务会根据设置提供含有试看限制的特定的播放地址,可借此来实现完整的试看功能。 ## 使用前提 试看的基本原理是,播放的CDN加速地址带有试看的指定时长信息,云端会对该信息进行鉴权,鉴

简介

试看指用户在观看视频或者音频等内容时,只能观看指定时间(如前五分钟)的内容,通常用于会员等付费业务场景。
阿里云视频点播服务提供了试看的完整解决方案,您可自由设置试看时长(或观看完整视频),播放服务会根据设置提供含有试看限制的特定的播放地址,可借此来实现完整的试看功能。

使用前提

试看的基本原理是,播放的CDN加速地址带有试看的指定时长信息,云端会对该信息进行鉴权,鉴权通过会返回指定的文件内容,否则拒绝访问、返回403。

  • 点播试看功能基于阿里云CDN加速实现,且必须在视频点播(VOD)控制台配置CDN加速域名。
  • 此方案必须开启A鉴权,同时,为了防止试看参数被篡改,试看参数也作为auth_key计算的一部分。

使用步骤

  1. 首先将需要试看的域名开启试看功能,具体可参考 配置方式

    > 需要注意的是,如果域名没有开启试看,则请求点播时不能携带试看参数,否则返回的地址不能访问。
    
  2. 请求点播的播放服务,在请求时带试看参数,指定所需要试看的时间,具体可参考 试看地址获取
  3. 点播返回试看地址
  4. 客户根据此地址访问CDN,此地址只返回试看所需要的时长数据

流程示例

undefined

配置方式

  • 登陆点播控制台,域名管理-访问控制-URL鉴权中,开启A方式鉴权,同时,勾选"支持试看"选项即可。

undefined

试看地址获取

通过点播获取

注意:

  1. 只有配置CDN加速域名的情况,才支持试看功能。
  2. 如果域名没有开启试看,则请求点播时不能携带试看参数,否则返回的地址不能访问。
  3. 目前支持的文件格式为mp4、flv、m3u8

自行计算

  • 在生成authkey时如果有试看参数,计算md5hash时要带上试看时长参数,即在原来 URL鉴权 md5hash计算方式的基础上,加入试看时长的计算。试看md5hash的计算方法为 MD5(uri-timestamp-rand-uid-auth_key-preview_time)
  • 在最后加上&end={试看时长},如果需要看完整视频,试看参数不设置即可,并且不参与进行auth_key计算

示例代码如下

    private String generateRand() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }

    public String genAuthKey(String object, String privateKey, Long expireTime, Long previewTime) {
        String rand = "0";
        String uid = "0";
        if (StringUtils.isBlank(privateKey)) {
            return "";
        }
        rand = generateRand();
        long timestamp = System.currentTimeMillis() / 1000 + (expireTime == null ? 0 : expireTime);
        String authStr = timestamp + "-" + rand + "-" + uid;
        String md5Str = object + "-" + authStr + "-" + privateKey;
        if(previewTime!=0)
            md5Str = md5Str + "-" + previewTime;
        String auth_key = authStr + "-" + MD5Util.md5( md5Str);
        return auth_key;
    }

    public void previewTest() throws Exception {
        try {
            String key = "your cdn auth key";
            String fileUrl = "http://test.yourdomain.com/test/bee21427ca3346848835c1bd786054c5-19bd8528c1d51576cd726cf86471ca04-fd.mp4";
            URL url = new URL(fileUrl);
            String file = url.getFile();
            Long previewtime = 120L;
            Long expireTime = 1800L;
            String auth_key =genAuthKey(file, key, expireTime, previewtime);
            fileUrl = fileUrl + "?auth_key=" + auth_key;
            if(previewtime != 0)
                fileUrl = fileUrl + "&end=" + previewtime;
            System.out.println(fileUrl);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
Web App开发 编解码 移动开发
视频点播视频加密流程解决方案
阿里云视频点播加密视频流程讨论
5619 0
视频点播视频加密流程解决方案
|
JSON 前端开发 数据库
【项目】视频点播系统2
【项目】视频点播系统
138 0
|
JSON 关系型数据库 MySQL
【项目】视频点播系统1
【项目】视频点播系统
106 0
|
视频直播
详解!视频直播源码平台搭建开发:录制功能
视频直播源码平台的录制功能能够为用户提供更多方便、灵活性,同时也增加了直播内容的传播和价值,这也使录制功能成为布谷科技视频直播源码平台的必备功能之一。
详解!视频直播源码平台搭建开发:录制功能
|
存储 编解码 应用服务中间件
如何实现一个c/s模式的flv视频点播系统
如何实现一个c/s模式的flv视频点播系统
99 0
|
编解码 开发工具 容器
阿里云视频点播服务添加视频字幕的实现方案
本文给出了一个为视频点播服务里的视频添加字幕的方案。
4699 0
阿里云视频点播服务添加视频字幕的实现方案
|
存储 编解码 人工智能
产品百科 |直播转点播最佳实践
直播转点播(直转点)是将直播流同步录制为点播视频,并支持媒资管理、媒体处理(转码及内容审核 / 智能首图等 AI 处理)、内容制作(云剪辑)、CDN 分发加速等一系列操作,可配置工作流自动处理,也可通过 API/SDK 灵活触发。
产品百科 |直播转点播最佳实践
|
JSON 数据安全/隐私保护 数据格式
在线教育场景下的点播试看功能实现
在线教育场景下,使用阿里云视频点播服务实现视频试看功能。
1446 0
在线教育场景下的点播试看功能实现
|
编解码 JSON 数据安全/隐私保护
点播转码相关常见问题及排查方式
概述:点播转码目前涉及用户上传自动触发转码、通过SubmitTranscodeJobs接口触发转码等方式,会出现用户转码失败的情况,这当中有用户源片的问题、也有用户设置转码参数的原因以及相关资源性数据授权限制问题导致,本文主要提供点播转码常见的问题排查及处理方式。
2579 0