365bet体育官网网址

如何播放加密视频

如何播放加密视频

视频加密简介阿里云视频点播具备一套完善的内容安全保护机制,旨在确保视频内容不被盗链、非法下载及传播。该安全机制包括访问限制、URL鉴权、远程鉴权、视频加密及安全下载等多项措施。

有关访问限制、URL鉴权及远程鉴权等安全机制的详细内容请参见视频安全概述,本文主要介绍三种视频加密方式的视频播放。三种视频加密的简介如下:

安全机制

安全手段

特点

安全等级

使用门槛

视频加密

阿里云视频加密(私有加密)

云端一体的视频加密解决方案,采用私有加密算法,并确保链路的安全传输。

较低,简单配置并集成阿里云播放器即可。

HLS标准加密

HLS通用加密方案,使用AES_128对内容加密,适配所有HLS播放器,但密钥容易被窃取。

较高

高,需自建密钥管理和令牌颁发服务,并确保链路传输安全。

商业DRM

苹果Fairplay、谷歌Widevine的原生支持,安全级别很高,满足大多数版权内容提供商的要求。

高,按调用License次数收费,只需集成阿里云播放器SDK。

播放器SDK加密播放兼容说明说明 使用Web播放器SDK播放加密视频之前,请先了解对浏览器及各类型加密功能的适配情况,例如:Web播放器SDK支持主流移动端浏览器播放私有加密视频,详细信息请参见浏览器适配说明、功能适配说明。✔️和❌分别表示支持和不支持该功能。

建议您下载最新版播放器SDK以确保功能兼容性,最新版本下载请参见SDK简介。

请注意:HLS封装格式为M3U8。

终端

播放方式

私有加密(HLS)

License私有加密(HLS)

License私有加密(MP4)

私有加密(直播FLV)

HLS标准加密

DRM加密

Web端

点播UrlSource

✔️

点播VidAuth

✔️

✔️

✔️

点播VidSts

✔️

✔️

直播UrlSource

✔️

直播LiveStsSource

✔️

✔️

✔️

Native端(iOS/Android/Flutter/Harmony)

点播UrlSource

✔️

✔️

SDK版本需为6.17.0及以上版本

✔️

SDK版本需为6.8.0及以上版本

✔️

点播VidAuth

✔️

✔️

✔️

点播VidSts

✔️

✔️

✔️

✔️

说明 flutter端和Harmony端不支持。

直播UrlSource

✔️

直播LiveStsSource

✔️

✔️

✔️

✔️

说明 flutter端和Harmony端不支持。

加密介绍阿里云视频加密(私有加密)阿里云视频加密通过对视频数据进行加密,即使下载到本地,视频仍保持加密状态,有效防止恶意二次分发、泄露和盗链问题。详情请参见相关文档阿里云视频加密(私有加密)。

阿里云播放器SDK封装了解密逻辑与服务端交互,只需配置加密转码并集成播放器,即可低成本实现加密播放。

重要 阿里云视频加密(私有加密)属于免费服务,但需通过视频转码实现加密功能。转码操作将产生服务费用,具体计费标准请参考媒资转码计费。

配置私有加密

阿里云视频加密的详细流程及配置,请参见如何使用。

使用限制阿里云视频加密(私有加密)功能支持对HLS(M3U8)、FLV和MP4格式的视频进行加密操作。该功能仅支持通过阿里云播放器进行播放。在Web端,仅支持HLS格式的播放,而在Native端则支持所有格式的播放。

阿里云视频加密(License私有加密)阿里云视频加密(License私有加密)在私有加密保障播放安全的基础上,通过直接使用加密视频URL起播,进一步提升了起播速度,适用于短视频和短剧场景。

重要 阿里云视频加密(License私有加密)属于免费服务,但需通过视频转码实现加密功能。转码操作将产生服务费用,具体计费标准请参考媒资转码计费。

配置私有加密

阿里云视频加密的详细流程及配置,请参见如何使用。

使用限制阿里云视频加密(License私有加密)功能支持对HLS和MP4格式的视频进行加密操作。该功能仅支持通过阿里云播放器进行播放。

HLS标准加密HLS标准加密采用AES-128对视频内容加密,兼容所有HLS播放器,支持自研或开源播放器,灵活性高但门槛更高、安全性较低。详情请参见HLS标准加密。

重要 阿里云视频加密(HLS标准加密)属于免费服务,但需通过视频转码实现加密功能。转码操作将产生服务费用,具体计费标准请参考媒资转码计费。

配置HLS标准加密

HLS标准加密的详细流程及配置,请参见接入流程。

使用限制HLS标准加密兼容各类HLS播放器,用户可自选播放器。本文以阿里云播放器为例,介绍如何播放HLS加密视频。阿里云播放器支持令牌传递,CDN会动态调整M3U8文件中的解密URI,并附带用户令牌,供业务方验证。

DRM加密阿里云视频点播支持行业通用DRM加密(Digital Rights Management),一站式管理版权视频,兼容WideVine和Fairplay方案。详情请参见DRM加密。

重要 DRM加密基于转码实现,但在转码输出视频时,仅产生转码费用,不会产生DRM加密费用;当在终端请求播放DRM加密视频时会产生DRM加密费用,播放端根据终端DRM加密视频License的请求次数,按次计算费用。计费详情请参见DRM计费。

配置DRM加密

仅支持通过视频点播控制台开启,详细操作请参见配置DRM加密。

使用限制经过DRM加密的视频,目前仅支持通过阿里云播放器播放。

Web端说明 使用阿里云Web播放器SDK之前,请先了解浏览器及阿里云视频加密(私有加密)视频播放功能的适配情况,具体如下:

H5 模式支持桌面端和移动端浏览器环境,具体支持情况请参见功能适配说明。

出于安全考虑,阿里云视频加密(私有加密)不支持用真实的加密视频调试。

操作步骤用户可以在自己的Web页面中嵌入Web播放器并实现播放。

请先参考快速接入,将Web播放器SDK引入到自己的页面中。

选择相应的加密方式并进行播放。

用户可以在自己的Web页面中嵌入Web播放器并实现播放。代码示例如下:

阿里云视频加密(私有加密)私有加密播放-视频点播VidAuth播放(HLS格式)经过私有加密的视频通过点播VidAuth方式播放时,与播放普通视频相比,需额外传入参数encryptType: 1,来启用私有加密。

点播私有加密播放测试用例

私有加密播放-视频直播LiveStsSource播放(HLS格式)经过私有加密的视频通过直播LiveStsSource方式播放时,需要传入URL和STS临时身份凭证等信息,STS临时身份凭证的生成请参见获取STS Token。示例代码如下:

直播私有加密播放测试用例

说明 如果希望支持 iOS 17.1 以下浏览器的点播私有加密,需要您自行部署一个额外的播放器插件脚本,具体步骤如下:

原理说明:iOS 17.1 以下私有加密需要一个额外的插件,该插件使用了 Service Worker 技术,由于浏览器的安全策略限制,仅允许网站访问和当前网站同源的 service worker 脚本,因此需要您将播放器插件脚本部署到和您网站相同的域名下使用。

下载脚本:https://g.alicdn.com/apsara-media-box/imp-web-player/<版本号>/aliplayer-worker-min.js

部署脚本:假设您播放私有加密视频的网站为 https://www.aliyun.com/a/b.html,您需要将脚本部署到 https://www.aliyun.com/a/aliplayer-worker-min.js,即和当前网站同级目录。

初始化播放器时传入此地址:

new Aliplayer({

// ...其它参数

swScriptURL: 'https://www.aliyun.com/a/aliplayer-worker-min.js' // 请填写完整的插件脚本地址,确保此地址可以访问

})注意:请确保播放器的版本和插件的版本完全一致。

如果您的网页运行在自定义打包的 iOS 应用程序中(例如 uni-app),则需要在应用的 Info.plist 文件中将您的网站域名配置到 WKAppBoundDomains,以便在 WKWebview 中启用 Service Worker 功能。有关详细信息,详情请参考:App-Bound Domains。

HLS标准加密HLS标准加密播放-视频点播VidAuth播放经过HLS标准加密的视频通过点播VidAuth方式播放时,若当前视频存在其他非HLS标准加密类型的加密流或普通转码流时,可通过设置视频加密类型为HLSEncryption来筛选HLS标准加密流进行播放,示例代码如下:

let player = new Aliplayer({

id:'J_prismPlayer',

vid:'', // 必选参数。音视频ID。示例:1e067a2831b641db90d570b6480f****。

playauth:'', // 必选参数。音视频播放凭证。

playConfig: { // 可选参数

MtsHlsUriToken: '', // 可选参数,如需校验MtsHlsUriToken(用户令牌),可使用此参数传递。

EncryptType: 'HLSEncryption', // 可选参数,设置加密类型为HLSEncryption时,则只会返回经过HLS标准加密的视频流。

},

});HLS标准加密播放-视频点播VidSts播放经过HLS标准加密的视频通过点播VidSts方式播放时,若当前视频存在其他非HLS标准加密类型的加密流或普通转码流时,可通过设置视频加密类型为HLSEncryption来筛选HLS标准加密流进行播放,示例代码如下:

let player = new Aliplayer({

id: 'J_prismPlayer',

vid : '', // 必选参数。音视频ID可以在音视频上传完成后通过控制台(路径:媒资库 > 音/视频。)或服务端接口(SearchMedia )获取。示例:1e067a2831b641db90d570b6480f****。

accessKeyId: '', // 必选参数。STS临时AK对的访问密钥ID,生成STS安全令牌时返回。

securityToken: '', // 必选参数。STS安全令牌,需要调用STS服务的AssumeRole接口生成。

accessKeySecret: '', // 必选参数。STS临时AK对的访问密钥,生成STS安全令牌时返回。

region: '', // 必选参数。媒体资源所在的地域标识。如cn-shanghai、eu-central-1, ap-southeast-1等。

playConfig: { // 可选参数

MtsHlsUriToken: '', // 可选参数,如需校验MtsHlsUriToken(用户令牌),可使用此参数传递。

EncryptType: 'HLSEncryption', // 可选参数,设置加密类型为HLSEncryption时,则只会返回经过HLS标准加密的视频流。

},

};HLS标准加密播放-UrlSource播放经过HLS标准加密的视频通过直播或点播UrlSource方式播放时,与播放普通视频一致,无需额外设置参数。

let player = new Aliplayer({

id:'J_prismPlayer',

source:'', // 播放地址,直播或者是点播地址。

isLive: true, // 是否为直播播放。

});DRM加密DRM加密播放-视频点播VidSts播放经过DRM加密的视频通过点播VidSts方式播放,与播放普通视频相比,需要额外传入参数isDrm: true,来启用DRM加密。

点播DRM加密测试用例

DRM加密播放-视频直播LiveStsSource播放经过DRM加密的视频通过直播LiveStsSource方式播放,需要传入URL和STS临时身份凭证等信息,STS临时身份凭证的生成请参见获取STS Token,示例代码如下:

直播DRM加密测试用例

Android端操作步骤用户可以通过快速集成Android播放器到自己的应用中并实现播放。步骤及示例代码如下:

集成阿里云Android播放器SDK。

Android播放器SDK的集成操作请参见快速集成。

创建播放器播放视频。

创建播放器的操作请参见创建播放器。其中,步骤3.创建DataSource的操作请根据实际需求选择以下任一方式创建。

阿里云视频加密(私有加密)注意事项

经过阿里云视频加密(私有加密)加密过的HLS格式视频,支持通过创建转码模板进行转码后通过URL进行播放。在进行转码之前,您需首先在同一账号下完成License绑定(详情参见管理License),然后使用EncryptType参数来创建转码模板组,示例如下:

重要 创建后,您无法通过控制台对模板进行修改或保存,否则加密方式将被覆盖。

[{

"TranscodeTemplateId": "",

"TemplateName": "740PH264HLS本地加密",

"Type": "Normal",

"Container": {

"Format": "m3u8"

},

"TransConfig": {

"IsCheckReso": false,

"IsCheckResoFail": false,

"IsCheckVideoBitrate": false,

"IsCheckVideoBitrateFail": false,

"IsCheckAudioBitrate": false,

"IsCheckAudioBitrateFail": false

},

"Definition": "HD",

"MuxConfig": {

"Segment": {

"Duration": 5

}

},

"EncryptSetting": {

"EncryptType": "AliyunVoDLicenseEncryption"

},

"Video": {

"Height": 720,

"Bitrate": 400,

"Codec": "H.264",

"Fps": 25,

"Gop": 250,

"Profile": "high"

},

"Audio": {

"Bitrate": 64,

"Codec": "AAC",

"Channels": 2,

"Samplerate": "44100"

}

}]私有加密播放-视频点播VidAuth播放(HLS格式+MP4格式)经过私有加密输出的HLS格式或MP4格式视频通过点播VidAuth方式播放时,若当前视频存在其他非私有加密类型的加密流或普通转码流时,可通过设置视频加密类型为AliyunVoDEncryption来筛选私有加密流进行播放。

VidAuth vidAuth = new VidAuth();

VidPlayerConfigGen vidPlayerConfigGen = new VidPlayerConfigGen();

vidPlayerConfigGen.setEncryptType(VidPlayerConfigGen.EncryptType.AliyunVoDEncryption);// 可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

vidAuth.setPlayConfig(vidPlayerConfigGen);

vidAuth.setVid("Vid信息");// 必选参数,视频ID(VideoId)。

vidAuth.setPlayAuth("");// 必选参数,播放凭证,需要调用点播服务的GetVideoPlayAuth接口生成。

vidAuth.setRegion("接入地域");// 5.5.5.0及之后版本播放器SDK,本参数已弃用,无需设置region,播放器会自动解析region;5.5.5.0之前版本播放器SDK,本参数必选,点播服务的接入地域,默认为cn-shanghai。

// vidAuth.setAuthTimeout(3600); // 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

aliPlayer.setDataSource(vidAuth);私有加密播放-视频点播VidSts播放(HLS格式+MP4格式)经过私有加密输出的HLS格式或MP4格式视频通过点播VidSts方式播放时,若当前视频存在其他非私有加密类型的加密流或普通转码流时,可通过设置视频加密类型为AliyunVoDEncryption来筛选私有加密流进行播放。

VidSts vidSts = new VidSts();

VidPlayerConfigGen vidPlayerConfigGen = new VidPlayerConfigGen();

vidPlayerConfigGen.setEncryptType(VidPlayerConfigGen.EncryptType.AliyunVoDEncryption);// 可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

vidSts.setPlayConfig(vidPlayerConfigGen);

vidSts.setVid("Vid信息");// 必选参数,视频ID(VideoId)。

vidSts.setAccessKeyId("");// 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

vidSts.setAccessKeySecret("");// 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

vidSts.setSecurityToken("");// 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

vidSts.setRegion("接入地域");// 必选参数,点播服务的接入地域,默认为cn-shanghai。

// vidSts.setAuthTimeout(3600); // 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

aliPlayer.setDataSource(vidSts);私有加密播放-视频直播LiveStsSource播放(HLS格式+FLV格式)经过私有加密输出的HLS格式或者FLV格式视频通过直播LiveStsSource方式播放时,需要传入URL和STS凭证,并设置视频加密类型为AliEncryption。示例代码如下:

创建DataSource。

需传递AVPLiveStsSource作为播放源。

// 创建LiveSts,EncryptionType需要设置为AliEncryption

LiveSts liveSts = new LiveSts();

liveSts.setUrl("");// 必选参数,播放地址为经过私有加密的HLS直播流地址。

liveSts.setAccessKeyId("");// 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

liveSts.setAccessKeySecret("");// 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

liveSts.setSecurityToken("");// 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

liveSts.setDomain("");// 必选参数,直播流的播流域名。

liveSts.setApp("");// 必选参数,直播流的AppNam。

liveSts.setStream("");// 必选参数,直播流的StreamName。

liveSts.setEncryptionType(LiveSts.LiveEncryptionType.AliEncryption);// 必选参数,设置加密类型为AliEncryption。

liveSts.setRegion("");// 必选参数,服务地域。如cn-shanghai等。

// 设置播放源

aliPlayer.setDataSource(liveSts);

// 准备播放

aliPlayer.prepare();监听STS是否无效。

加密直播播放过程中可能会有更换加密Key的过程,换Key时则会通过STS去请求到最新的Key。开发者需要监听STS是否有效。如果无效则会影响加密直播流的播放。

mAliyunVodPlayer.setOnVerifyTimeExpireCallback(new AliPlayer.OnVerifyTimeExpireCallback() {

@Override

public AliPlayer.Status onVerifySts(StsInfo info) {

if(info 可以使用){

return IPlayer.StsStatus.Valid;

}

if(可以获取有效的STS){

获取STS();// 异步同步均可。

return IPlayer.StsStatus.Pending;

}

// 如果info无效,且无法获取到最新的STS,那么建议停止播放。防止出现花屏。

mAliyunVodPlayer.stop();

return IPlayer.StsStatus.Invalid;

}

@Override

public AliPlayer.Status onVerifyAuth(VidAuth auth) {

return AliPlayer.Status.Valid;

}

});说明 获取STS成功之后,需要调用updateLiveStsInfo方法去更新STS。如果获取失败,则建议停止播放。如果不更新STS,超时之后播放器会继续使用之前的STS去获取Key。如果STS失效,则可能会出现花屏或者播放失败。

mAliyunVodPlayer.updateStsInfo(stsInfo);阿里云视频加密(License私有加密)注意事项

经过阿里云视频加密(License私有加密)加密过的HLS格式视频,支持通过创建转码模板进行转码后通过URL进行播放。在进行转码之前,您需首先在同一账号下完成License绑定(详情参见管理License),然后使用EncryptType参数来创建转码模板组,示例如下:

重要 创建后,您无法通过控制台对模板进行修改或保存,否则加密方式将被覆盖。

[{

"TranscodeTemplateId": "",

"TemplateName": "740PH264HLS本地加密",

"Type": "Normal",

"Container": {

"Format": "m3u8"

},

"TransConfig": {

"IsCheckReso": false,

"IsCheckResoFail": false,

"IsCheckVideoBitrate": false,

"IsCheckVideoBitrateFail": false,

"IsCheckAudioBitrate": false,

"IsCheckAudioBitrateFail": false

},

"Definition": "HD",

"MuxConfig": {

"Segment": {

"Duration": 5

}

},

"EncryptSetting": {

"EncryptType": "AliyunVoDLicenseEncryption"

},

"Video": {

"Height": 720,

"Bitrate": 400,

"Codec": "H.264",

"Fps": 25,

"Gop": 250,

"Profile": "high"

},

"Audio": {

"Bitrate": 64,

"Codec": "AAC",

"Channels": 2,

"Samplerate": "44100"

}

}]License私有加密播放-视频点播UrlSource播放(HLS格式+MP4格式)说明 仅6.8.0及以后版本的Android播放器SDK支持通过点播UrlSource方式播放MP4格式的License私有加密视频,6.17.0及以后的版本支持HLS格式(单码率、多码率)的License私有加密视频。

经过License私有加密输出的HLS格式或MP4格式视频通过点播UrlSource方式播放时,可调用GetPlayInfo - 获取音视频播放地址接口获取视频的播放地址,获取到的视频URL需要您按协议在URL尾部自行拼接etavirp_nuyila=1(位置不限)后传入播放器(仅MP4需此参数,HLS可直接使用原视频URL),播放器SDK的配置与播放普通视频配置一致,无需额外设置参数。

播放URL示例1:https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

播放URL示例2:https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&etavirp_nuyila=1

// 播放地址

String playURL = "https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1";

// 播放器

UrlSource urlSource = new UrlSource();

urlSource.setUri(playURL);// 必选参数,视频的播放地址(URL),可调用GetPlayInfo接口获取视频URL

aliPlayer.setDataSource(urlSource);

aliPlayer.prepare();

// 短视频播放器

AliListPlayer aliyunListPlayer = AliPlayerFactory.createAliListPlayer(getApplicationContext());

// 添加UrlSource播放源

aliyunListPlayer.addUrl(playURL,uid);

aliyunListPlayer.moveTo(uid);

//预加载

MediaLoader mediaLoader = MediaLoader.getInstance();

mediaLoader.load(playURL,"duration");HLS标准加密HLS标准加密播放-视频点播VidAuth播放经过HLS标准加密的视频通过点播VidAuth方式播放时,若当前视频存在其他非HLS标准加密类型的加密流或普通转码流时,可通过设置视频加密类型为HLSEncryption来筛选HLS标准加密流进行播放,示例代码如下:

重要 开启M3U8标准加密改写后,则需要您调用setMtsHlsUriToken设置用户令牌。

VidAuth vidAuth = new VidAuth();

VidPlayerConfigGen playerConfig = new VidPlayerConfigGen();

playerConfig.setEncryptType(VidPlayerConfigGen.EncryptType.HLSEncryption);// 可选参数,设置加密类型为HLSEncryption时,则只会返回经过HLS标准加密的视频流。

playerConfig.setMtsHlsUriToken("token");// 可选参数,如需校验MtsHlsUriToken(用户令牌),可使用此参数传递。

vidAuth.setPlayConfig(playerConfig);

vidAuth.setVid("Vid信息");// 必选参数,视频ID(VideoId)。

vidAuth.setPlayAuth("");// 必选参数,播放凭证,需要调用点播服务的GetVideoPlayAuth接口生成。

vidAuth.setRegion("接入地域");// 5.5.5.0及之后版本播放器SDK,本参数已弃用,无需设置region,播放器会自动解析region;5.5.5.0之前版本播放器SDK,本参数必选,点播服务的接入地域,默认为cn-shanghai。

// vidAuth.setAuthTimeout(3600);// 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

aliPlayer.setDataSource(vidAuth);HLS标准加密播放-视频点播VidSts播放经过HLS标准加密的视频通过点播VidSts方式播放时,若当前视频存在其他非HLS标准加密类型的加密流或普通转码流时,可通过设置视频加密类型为HLSEncryption来筛选HLS标准加密流进行播放,示例代码如下:

重要 开启M3U8标准加密改写后,则需要您调用setMtsHlsUriToken设置用户令牌。

VidSts vidSts = new VidSts();

VidPlayerConfigGen playerConfig = new VidPlayerConfigGen();

VidPlayerConfigGen.setEncryptType(VidPlayerConfigGen.EncryptType.HLSEncryption);//可选参数,设置加密类型为HLSEncryption时,则只会返回经过HLS标准加密的视频流。

playerConfig.setMtsHlsUriToken("token");// 可选参数,如需校验MtsHlsUriToken(用户令牌),可使用此参数传递。

vidSts.setPlayConfig(playerConfig);

vidSts.setVid("Vid信息");// 必选参数,视频ID(VideoId)。

vidSts.setAccessKeyId("");// 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

vidSts.setAccessKeySecret("");// 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

vidSts.setSecurityToken("");// 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

vidSts.setRegion("接入地域");// 必选参数,点播服务的接入地域,默认为cn-shanghai。

// vidSts.setAuthTimeout(3600);// 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

aliPlayer.setDataSource(vidSts);HLS标准加密播放-UrlSource播放经过HLS标准加密的视频通过直播或点播UrlSource方式播放时,可调用GetPlayInfo - 获取音视频播放地址接口获取视频的播放地址。开启M3U8标准加密改写后,获取到的视频URL需要您按协议在URL尾部自行拼接MtsHlsUriToken=(位置不限)后传入播放器,播放器SDK的配置与播放普通视频配置一致,无需额外设置参数。

原始播放URL示例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8

输入到播放器URL示例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=

UrlSource urlSource = new UrlSource();

urlSource.setUri("播放地址");// 必选参数,播放地址为经过HLS标准加密的直播流或点播流地址。

aliPlayer.setDataSource(urlSource);DRM加密说明 Android平台,为了保证高安全等级的视频能正常播放,建议使用surfaceView进行播放。

DRM加密播放-视频点播VidSts播放经过DRM加密的视频通过点播VidSts方式播放时,与播放普通视频配置一致,无需额外设置参数。

VidSts vidSts = new VidSts();

vidSts.setVid("Vid信息");// 必选参数,视频ID(VideoId)。

vidSts.setAccessKeyId("");// 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

vidSts.setAccessKeySecret("");// 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

vidSts.setSecurityToken("");// 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

vidSts.setRegion("接入地域");// 必选参数,点播服务的接入地域,默认为cn-shanghai。

// vidSts.setAuthTimeout(3600); // 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

aliPlayer.setDataSource(vidSts);DRM加密播放-视频直播LiveStsSource播放经过DRM加密的视频通过直播LiveStsSource方式播放时,需要传入URL和STS凭证,并设置视频加密类型为WideVine_FairPlay。示例代码如下:

创建DataSource。

需传递AVPLiveStsSource作为播放源。

// 创建LiveSts,EncryptionType需要设置为WideVine_FairPlay

LiveSts liveSts = new LiveSts();

liveSts.setUrl("");// 必选参数,播放地址为经过DRM加密的HLS直播流地址。

liveSts.setAccessKeyId("");// 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

liveSts.setAccessKeySecret("");// 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

liveSts.setSecurityToken("");// 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

liveSts.setDomain("");// 必选参数,直播流的播流域名。

liveSts.setApp("");// 必选参数,直播流的AppNam。

liveSts.setStream("");// 必选参数,直播流的StreamName。

liveSts.setEncryptionType(LiveSts.LiveEncryptionType.WideVine_FairPlay);// 必选参数,设置加密类型为WideVine_FairPlay。

liveSts.setRegion("");// 必选参数,服务地域。如cn-shanghai等。

// 设置播放源

aliPlayer.setDataSource(liveSts);

// 准备播放

aliPlayer.prepare();监听STS是否无效。

加密直播播放过程中可能会有更换加密Key的过程,换Key时则会通过STS去请求到最新的Key。开发者需要监听STS是否有效。如果无效则会影响加密直播流的播放。

mAliyunVodPlayer.setOnVerifyTimeExpireCallback(new AliPlayer.OnVerifyTimeExpireCallback() {

@Override

public AliPlayer.Status onVerifySts(StsInfo info) {

if(info 可以使用){

return IPlayer.StsStatus.Valid;

}

if(可以获取有效的STS){

获取STS();// 异步同步均可。

return IPlayer.StsStatus.Pending;

}

// 如果info无效,且无法获取到最新的STS,那么建议停止播放。防止出现花屏。

mAliyunVodPlayer.stop();

return IPlayer.StsStatus.Invalid;

}

@Override

public AliPlayer.Status onVerifyAuth(VidAuth auth) {

return AliPlayer.Status.Valid;

}

});说明 获取STS成功之后,需要调用updateLiveStsInfo方法去更新STS。如果获取失败,则建议停止播放。如果不更新STS,超时之后播放器会继续使用之前的STS去获取Key。如果STS失效,则可能会出现花屏或者播放失败。

mAliyunVodPlayer.updateStsInfo(stsInfo);iOS端操作步骤用户可以通过快速集成iOS播放器到自己的应用中并实现播放。步骤及示例代码如下:

集成阿里云iOS播放器SDK。

iOS播放器SDK的集成操作请参见快速集成。

创建播放器(预加载)播放(加载)视频。

创建播放器的操作步骤请参见创建播放器。其中,步骤3.创建DataSource的操作请根据实际需求选择以下任一方式创建。

阿里云视频加密(私有加密)私有加密播放-视频点播VidAuth(HLS格式+MP4格式)经过私有加密输出的HLS格式或MP4格式视频通过点播VidAuth方式播放时,若当前视频存在其他非私有加密类型的加密流或普通转码流时,可通过设置视频加密类型为AliyunVoDEncryption来筛选私有加密流进行播放。

AVPVidAuthSource *authSource = [[AVPVidAuthSource alloc] init];

authSource.vid = @"Vid信息"; // 必选参数,视频ID(VideoId)。

authSource.playAuth = @""; // 必选参数,播放凭证,需要调用点播服务的GetVideoPlayAuth接口生成。

authSource.region = @"接入地域"; // 5.5.5.0及之后版本播放器SDK,本参数已弃用,无需设置region,播放器会自动解析region;5.5.5.0之前版本播放器SDK,本参数必选,点播服务的接入地域,默认为cn-shanghai。

// authSource.authTimeout = 3600; // 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

//通过VidPlayerConfigGenerator构建config

VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init];

[config addVidPlayerConfigByStringValue:@"EncryptType" value:@"AliyunVoDEncryption"]; //可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

authSource.playConfig = [config generatePlayerConfig];

[self.player setAuthSource:authSource];私有加密播放-视频点播VidSts(HLS格式+MP4格式)经过私有加密输出的HLS格式或MP4格式视频通过点播VidSts方式播放时,若当前视频存在其他非私有加密类型的加密流或普通转码流时,可通过设置视频加密类型为AliyunVoDEncryption来筛选私有加密流进行播放。

AVPVidStsSource *source = [[AVPVidStsSource alloc] init];

source.region = @"接入地域"; // 必选参数,点播服务的接入地域,默认为cn-shanghai。

source.vid = @"Vid信息"; // 必选参数,视频ID(VideoId)。

source.securityToken = @""; // 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

source.accessKeySecret = @""; // 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

source.accessKeyId = @""; // 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

// source.authTimeout = 3600; // 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

//通过VidPlayerConfigGenerator构建config

VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init];

[config addVidPlayerConfigByStringValue:@"EncryptType" value:@"AliyunVoDEncryption"]; //可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

source.playConfig = [config generatePlayerConfig];

//设置播放源

[self.player setStsSource:source];私有加密播放-视频直播LiveStsSource(HLS格式+FLV格式)经过私有加密输出的HLS格式或者FLV格式视频通过直播LiveStsSource方式播放时,需要传入URL和STS凭证,并设置视频加密类型为ENCRYPTION_TYPE_ALIVODENCRYPTION。示例代码如下:

创建DataSource。

需传递AVPLiveStsSource作为播放源。

// 创建LiveSts,encryptionType需要设置为ENCRYPTION_TYPE_ALIVODENCRYPTION

AVPLiveStsSource *liveStsSource = [[AVPLiveStsSource alloc] initWithUrl:@"加密直播url"

accessKeyId:@"临时akId"

accessKeySecret:@"临时akId"

securityToken:@"安全token"

region:@"region值"

domain:@"url播流域名"

app:@"播流应用名"

stream:@"播流流名"

encryptionType:ENCRYPTION_TYPE_ALIVODENCRYPTION];// 必选参数,设置加密类型为ENCRYPTION_TYPE_ALIVODENCRYPTION。

// 设置播放源

[self.aliPlayer setLiveStsSource:liveStsSource];

......

// 准备播放

[self.aliPlayer prepare];监听STS是否无效。

加密直播播放过程中可能会有更换加密Key的过程,换Key时则会通过STS去请求到最新的Key。开发者需要监听STS是否有效。如果无效则会影响加密直播流的播放。

__weak typeof(self) weakSelf = self;

[self.aliPlayer setVerifyStsCallback:^AVPStsStatus(AVPStsInfo info) {

if (info 可以使用) {

return Valid;

}

if(可以获取有效的STS){

获取STS();// 异步同步均可。

return Pending;

}

[weakSelf.aliPlayer stop];

return Invalid;

}];说明 获取STS成功之后,需要调用updateLiveStsInfo方法去更新STS。如果获取失败,则建议停止播放。如果不更新STS,超时之后播放器会继续使用之前的STS去获取Key。如果STS失效,则可能会出现花屏或者播放失败。

[self.aliPlayer updateLiveStsInfo:self.liveStsSource.accessKeyId accKey:self.liveStsSource.accessKeySecret token:self.liveStsSource.securityToken region:self.liveStsSource.region];阿里云视频加密(License私有加密)License私有加密播放-视频点播UrlSource播放(HLS格式+MP4格式)说明 仅6.8.0及以后版本的iOS播放器SDK支持通过点播UrlSource方式播放MP4格式的License私有加密视频,6.17.0及以后版本支持HLS格式(单码率、多码率)的License私有加密视频。

经过License私有加密输出的HLS格式或MP4格式视频通过点播UrlSource方式播放时,可调用GetPlayInfo - 获取音视频播放地址接口获取视频的播放地址,获取到的视频URL需要您按协议在URL尾部自行拼接etavirp_nuyila=1(位置不限)后传入播放器(仅MP4需此参数,HLS可直接使用原视频URL),播放器SDK的配置与播放普通视频配置一致,无需额外设置参数。

播放URL示例1:https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

播放URL示例2:https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&etavirp_nuyila=1

//播放地址

NSString *playURL = @"https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1";

//播放器

AliPlayer *player = [[AliPlayer alloc] init];

AVPUrlSource *urlSource = [[AVPUrlSource alloc] urlWithString:playURL]; // 必选参数,视频的播放地址(URL),可调用GetPlayInfo接口获取视频URL,获取到的视频URL(仅限MP4)需要在尾部自行拼接etavirp_nuyila=1后再传入,示例:https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

[player setUrlSource:urlSource];

[player prepare];

//列表播放器

AliListPlayer *listPlayer = [[AliListPlayer alloc] init];

[listPlayer addUrlSource:playURL uid:UUIDString];

[listPlayer moveTo:@"uid"];

//预加载

AliMedialoader *mediaLoader = [AliMediaLoader shareInstance];

[mediaLoader load:playURL duration:1000];HLS标准加密HLS标准加密播放-视频点播VidAuth播放经过HLS标准加密的视频通过点播VidAuth方式播放时,若当前视频存在其他非HLS标准加密类型的加密流或普通转码流时,可通过设置视频加密类型为HLSEncryption来筛选HLS标准加密流进行播放,示例代码如下:

重要 开启M3U8标准加密改写后,则需要您调用setHlsUriToken设置用户令牌。

AVPVidAuthSource *authSource = [[AVPVidAuthSource alloc] init];

authSource.vid = @"Vid信息"; // 必选参数,视频ID(VideoId)。

authSource.playAuth = @""; // 必选参数,播放凭证,需要调用点播服务的GetVideoPlayAuth接口生成。

authSource.region = @"接入地域"; // 5.5.5.0及之后版本播放器SDK,本参数已弃用,无需设置region,播放器会自动解析region;5.5.5.0之前版本播放器SDK,本参数必选,点播服务的接入地域,默认为cn-shanghai。

// authSource.authTimeout = 3600; // 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

//通过VidPlayerConfigGenerator构建config

VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init];

[config addVidPlayerConfigByStringValue:@"EncryptType" value:@"HLSEncryption"]; // 可选参数,设置加密类型为HLSEncryption时,则只会返回经过HLS标准加密的视频流。

[config setHlsUriToken: @"token"]; // 可选参数,如需校验MtsHlsUriToken(用户令牌),可使用此参数传递。

source.playConfig = [config generatePlayerConfig];

//设置播放源

[self.player setAuthSource:authSource];HLS标准加密播放-视频点播VidSts播放经过HLS标准加密的视频通过点播VidSts方式播放时,若当前视频存在其他非HLS标准加密类型的加密流或普通转码流时,可通过设置视频加密类型为HLSEncryption来筛选HLS标准加密流进行播放,示例代码如下:

重要 开启M3U8标准加密改写后,则需要您调用setHlsUriToken设置用户令牌。

AVPVidStsSource *source = [[AVPVidStsSource alloc] init];

source.vid = @"Vid信息"; // 必选参数,视频ID(VideoId)。

source.region = @"接入地域"; // 必选参数,点播服务的接入地域,默认为cn-shanghai。

source.securityToken = @""; // 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

source.accessKeySecret = @""; // 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

source.accessKeyId = @""; // 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

// source.authTimeout = 3600; // 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

//通过VidPlayerConfigGenerator构建config

VidPlayerConfigGenerator* config = [[VidPlayerConfigGenerator alloc]init];

[config addVidPlayerConfigByStringValue:@"EncryptType" value:@"HLSEncryption"]; // 可选参数,设置加密类型为HLSEncryption时,则只会返回经过HLS标准加密的视频流。

[config setHlsUriToken: @"token"]; // 可选参数,如需校验MtsHlsUriToken(用户令牌),可使用此参数传递。

source.playConfig = [config generatePlayerConfig];

// 设置播放源

[self.player setStsSource:source];HLS标准加密播放-UrlSource播放经过HLS标准加密的视频通过直播或点播UrlSource方式播放时,可调用GetPlayInfo - 获取音视频播放地址接口获取视频的播放地址。开启M3U8标准加密改写后,获取到的视频URL需要您按协议在URL尾部自行拼接MtsHlsUriToken=(位置不限)后传入播放器,播放器SDK的配置与播放普通视频配置一致,无需额外设置参数。

原始播放URL示例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8

输入到播放器URL示例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=

AVPUrlSource *urlSource = [[AVPUrlSource alloc] urlWithString:url]; // 必选参数,播放地址为经过HLS标准加密的直播流或点播流地址。

[self.player setUrlSource:urlSource];DRM加密说明 iOS平台,需要在[self.player prepare]之前全局调用一次AliPlayerGlobalSettings中的setFairPlayCertID方法来设置证书ID。证书ID可以在视频点播控制台 > 配置管理 > 媒体处理配置 > DRM证书管理中获取。

[AliPlayerGlobalSettings setFairPlayCertID:@"控制台获取的证书ID"];DRM加密播放-视频点播VidSts播放经过DRM加密的视频通过点播VidSts方式播放时,与播放普通视频配置一致,无需额外设置参数。

AVPVidStsSource *source = [[AVPVidStsSource alloc] init];

source.region = @"接入地域"; // 必选参数,点播服务的接入地域,默认为cn-shanghai。

source.vid = @"Vid信息"; // 必选参数,视频ID(VideoId)。

source.securityToken = @""; // 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

source.accessKeySecret = @""; // 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

source.accessKeyId = @""; // 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

// source.authTimeout = 3600; // 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

//设置播放源

[self.player setStsSource:source]DRM加密播放-视频直播LiveStsSource播放经过DRM加密的视频通过直播LiveStsSource方式播放时,需要传入URL和STS凭证,并设置视频加密类型为ENCRYPTION_TYPE_FAIRPLAY。示例代码如下:

创建DataSource。

需传递AVPLiveStsSource作为播放源。

// 创建LiveSts,encryptionType需要设置为ENCRYPTION_TYPE_FAIRPLAY

AVPLiveStsSource *liveStsSource = [[AVPLiveStsSource alloc] initWithUrl:@"加密直播url"

accessKeyId:@"临时akId"

accessKeySecret:@"临时akId"

securityToken:@"安全token"

region:@"region值"

domain:@"url播流域名"

app:@"播流应用名"

stream:@"播流流名"

encryptionType:ENCRYPTION_TYPE_FAIRPLAY];// 必选参数,设置加密类型为ENCRYPTION_TYPE_FAIRPLAY。

// 设置播放源

[self.aliPlayer setLiveStsSource:liveStsSource];

......

// 准备播放

[self.aliPlayer prepare];

监听STS是否无效。

加密直播播放过程中可能会有更换加密Key的过程,换Key时则会通过STS去请求到最新的Key。开发者需要监听STS是否有效。如果无效则会影响加密直播流的播放。

__weak typeof(self) weakSelf = self;

[self.aliPlayer setVerifyStsCallback:^AVPStsStatus(AVPStsInfo info) {

if (info 可以使用){

return Valid;

}

if(可以获取有效的STS){

获取STS();// 异步同步均可。

return Pending;

}

[weakSelf.aliPlayer stop];

return Invalid;

}];说明 获取STS成功之后,需要调用updateLiveStsInfo方法去更新STS。如果获取失败,则建议停止播放。如果不更新STS,超时之后播放器会继续使用之前的STS去获取Key。如果STS失效,则可能会出现花屏或者播放失败。

[self.aliPlayer updateLiveStsInfo:self.liveStsSource.accessKeyId accKey:self.liveStsSource.accessKeySecret token:self.liveStsSource.securityToken region:self.liveStsSource.region];Flutter端说明 Flutter端不支持DRM加密。

操作步骤用户可以通过快速集成Flutter播放器到自己的应用中并实现播放。步骤及示例代码如下:

集成阿里云Flutter播放器SDK。

Flutter播放器SDK的集成操作请参见快速集成。

创建播放器播放视频。

创建播放器的操作步骤请参见创建播放器。其中,步骤3.创建播放源的操作请根据实际需求选择以下任一方式创建。

阿里云视频加密(私有加密)私有加密播放-视频点播VidAuth(HLS格式+MP4格式)经过私有加密输出的HLS格式或MP4格式视频通过点播VidAuth方式播放时,若当前视频存在其他非私有加密类型的加密流或普通转码流时,可通过设置视频加密类型为AliyunVoDEncryption来筛选私有加密流进行播放。

FlutterAliplayer.setEncryptType(EncryptType.AliyunVoDEncryption);// 可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

FlutterAliplayer.generatePlayerConfig().then((value) {

this.fAliplayer.setVidAuth(

vid: "Vid信息",

region: "接入地域",// 必选参数,点播服务的接入地域,默认为cn-shanghai。

playAuth: "",// 必选参数,播放凭证,需要调用点播服务的GetVideoPlayAuth接口生成。

playConfig: value);

});私有加密播放-视频点播VidSts(HLS格式+MP4格式)经过私有加密输出的HLS格式或MP4格式视频通过点播VidSts方式播放时,若当前视频存在其他非私有加密类型的加密流或普通转码流时,可通过设置视频加密类型为AliyunVoDEncryption来筛选私有加密流进行播放。

FlutterAliplayer.setEncryptType(EncryptType.AliyunVoDEncryption);// 可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

FlutterAliplayer.generatePlayerConfig().then((value) {

this.fAliplayer.setVidSts(

vid: "Vid信息",

region: "接入地域",

accessKeyId: "",

accessKeySecret: "",

securityToken: "",

playConfig: value);

});阿里云视频加密(License私有加密)License私有加密播放-视频点播UrlSource播放(HLS格式+MP4格式)说明 仅6.8.0及以后版本的Flutter播放器SDK支持通过点播UrlSource方式播放MP4格式的License私有加密视频,6.17.0及以后版本支持HLS格式(单码率、多码率)的License私有加密视频。

经过License私有加密输出的HLS格式或MP4格式视频通过点播UrlSource方式播放时,可调用GetPlayInfo - 获取音视频播放地址接口获取视频的播放地址,获取到的视频URL需要您按协议在URL尾部自行拼接etavirp_nuyila=1(位置不限)后传入播放器(仅MP4需此参数,HLS可直接使用原视频URL),播放器SDK的配置与播放普通视频配置一致,无需额外设置参数。

播放URL示例1:https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

播放URL示例2:https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&etavirp_nuyila=1

//播放地址

String playURL = "https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1"

//创建播放器实例

FlutterAliplayer fAliplayer = FlutterAliPlayerFactory.createAliPlayer();

fAliplayer.setUrl(playURL);

fAliplayer.prepare();

//列表播放器

FlutterAliListPlayer fAliListPlayer = FlutterAliPlayerFactory.createAliListPlayer();

fAliListPlayer.addUrlSource(playURL,uid);

fAliListPlayer.moveTo("uid");

//预加载

FlutterAliPlayerMediaLoader fAliPlayerMediaLoader = FlutterAliPlayerMediaLoader();

fAliPlayerMediaLoader.load(playURL,"duration");HLS标准加密HLS标准加密播放-视频点播VidAuth播放经过HLS标准加密的视频通过点播VidAuth方式播放时,若当前视频存在其他非HLS标准加密类型的加密流或普通转码流时,可通过设置视频加密类型为HLSEncryption来筛选HLS标准加密流进行播放,示例代码如下:

重要 开启M3U8标准加密改写后,则需要您调用setHlsUriToken设置用户令牌。

FlutterAliplayer.setEncryptType(EncryptType.HLSEncryption);// 可选参数,设置加密类型为HLSEncryption时,则只会返回经过HLS标准加密的视频流。

FlutterAliplayer.setHlsUriToken("token");// 可选参数,如需校验MtsHlsUriToken(用户令牌),可使用此参数传递

FlutterAliplayer.generatePlayerConfig().then((value) {

this.fAliplayer.setVidAuth(

vid: "Vid信息",

region: "接入地域",// 必选参数,点播服务的接入地域,默认为cn-shanghai。

playAuth: "",// 必选参数,播放凭证,需要调用点播服务的GetVideoPlayAuth接口生成。

playConfig: value);

});HLS标准加密播放-视频点播VidSts播放经过HLS标准加密的视频通过点播VidSts方式播放时,若当前视频存在其他非HLS标准加密类型的加密流或普通转码流时,可通过设置视频加密类型为HLSEncryption来筛选HLS标准加密流进行播放,示例代码如下:

重要 开启M3U8标准加密改写后,则需要您调用setHlsUriToken设置用户令牌。

FlutterAliplayer.setEncryptType(EncryptType.HLSEncryption);// 可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

FlutterAliplayer.setHlsUriToken("token");// 可选参数,如需校验MtsHlsUriToken(用户令牌),可使用此参数传递

FlutterAliplayer.generatePlayerConfig().then((value) {

this.fAliplayer.setVidSts(

vid: "Vid信息",

region: "接入地域",

accessKeyId: "",

accessKeySecret: "",

securityToken: "",

playConfig: value);

});HLS标准加密播放-UrlSource播放经过HLS标准加密的视频通过直播或点播UrlSource方式播放时,可调用GetPlayInfo - 获取音视频播放地址接口获取视频的播放地址。开启M3U8标准加密改写后,获取到的视频URL需要您按协议在URL尾部自行拼接MtsHlsUriToken=(位置不限)后传入播放器,播放器SDK的配置与播放普通视频配置一致,无需额外设置参数。

原始播放URL示例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8

输入到播放器URL示例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=

//创建播放器实例

FlutterAliplayer fAliplayer = FlutterAliPlayerFactory.createAliPlayer();

//必选参数,播放地址为经过HLS标准加密的直播流或点播流地址。

fAliplayer.setUrl("播放地址");

fAliplayer.prepare();Harmony端操作步骤用户可以通过快速集成Harmony播放器到自己的应用中并实现播放。步骤及示例代码如下:

集成阿里云Harmony播放器SDK。

Harmony播放器SDK的集成操作请参见快速集成。

创建播放器播放视频。

创建播放器的操作步骤请参见创建播放器。其中,步骤3.设置播放方式的操作请根据实际需求选择以下任一方式创建。

阿里云视频加密(私有加密)私有加密播放-视频点播VidAuth(HLS格式+MP4格式)经过私有加密输出的HLS格式或MP4格式视频通过点播VidAuth方式播放时,若当前视频存在其他非私有加密类型的加密流或普通转码流时,可通过设置视频加密类型为AliyunVoDEncryption来筛选私有加密流进行播放。

const vidAuth: VidAuth = new VidAuth()

const vidPlayerConfigGen: VidPlayerConfigGen = new VidPlayerConfigGen()

vidPlayerConfigGen.setEncryptType(EncryptType.AliyunVodEncryption)// 可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

vidAuth.setPlayerConfig(vidPlayerConfigGen)

vidAuth.setVid("Vid信息")// 必选参数,视频ID(VideoId)。

vidAuth.setPlayAuth("")// 必选参数,播放凭证,需要调用点播服务的GetVideoPlayAuth接口生成。

vidAuth.setRegion("接入地域")// 5.5.5.0及之后版本播放器SDK,本参数已弃用,无需设置region,播放器会自动解析region;5.5.5.0之前版本播放器SDK,本参数必选,点播服务的接入地域,默认为cn-shanghai。

// vidAuth.setAuthTimeout(3600); // 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

aliPlayer.setVidAuthDataSource(vidAuth)私有加密播放-视频点播VidSts(HLS格式+MP4格式)经过私有加密输出的HLS格式或MP4格式视频通过点播VidSts方式播放时,若当前视频存在其他非私有加密类型的加密流或普通转码流时,可通过设置视频加密类型为AliyunVoDEncryption来筛选私有加密流进行播放。

const vidSts: VidSts = new VidSts()

const vidPlayerConfigGen: VidPlayerConfigGen = new VidPlayerConfigGen()// 可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

vidPlayerConfigGen.setEncryptType(EncryptType.AliyunVodEncryption)

vidSts.setPlayerConfig(vidPlayerConfigGen)

vidSts.setVid("Vid信息")// 必选参数,视频ID(VideoId)。

vidSts.setAccessKeyId("")// 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

vidSts.setAccessKeySecret("")// 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

vidSts.setSecurityToken("")// 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

vidSts.setRegion("接入地域")// 必选参数,点播服务的接入地域,默认为cn-shanghai。

// vidSts.setAuthTimeout(3600)// 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

aliPlayer.setVidStsDataSource(vidSts)私有加密播放-视频直播LiveStsSource(HLS格式+FLV格式)经过私有加密输出的HLS格式或者FLV格式视频通过直播LiveStsSource方式播放时,需要传入URL和STS凭证,并设置视频加密类型为LiveEncryptionType.AliEncryption。示例代码如下:

创建DataSource。

需传递AVPLiveStsSource作为播放源。

// 创建LiveSts,EncryptionType需要设置为AliEncryption

const liveSts: LiveSts = new LiveSts()

LiveSts.setUrl("")// 必选参数,播放地址为经过私有加密的HLS直播流地址。

LiveSts.setAccessKeyId("")// 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

LiveSts.setAccessKeySecret("")// 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

LiveSts.setSecurityToken("")// 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

LiveSts.setDomain("")// 必选参数,直播流的播流域名。

LiveSts.setApp("")// 必选参数,直播流的AppNam。

LiveSts.setStream("")// 必选参数,直播流的StreamName。

LiveSts.setEncryptionType(LiveEncryptionType.AliEncryption)// 必选参数,设置加密类型为AliEncryption。

LiveSts.setRegion("")// 必选参数,服务地域。如cn-shanghai等。

// 设置播放源

aliPlayer.setLiveStsDataSource(LiveSts)

// 准备播放

aliPlayer.prepare()阿里云视频加密(License私有加密)License私有加密播放-视频点播UrlSource播放(HLS格式+MP4格式)经过License私有加密输出的HLS格式或MP4格式视频通过点播UrlSource方式播放时,可调用GetPlayInfo - 获取音视频播放地址接口获取视频的播放地址,获取到的视频URL需要您按协议在URL尾部自行拼接etavirp_nuyila=1(位置不限)后传入播放器(仅MP4需此参数,HLS可直接使用原视频URL),播放器SDK的配置与播放普通视频配置一致,无需额外设置参数。

播放URL示例1:https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

播放URL示例2:https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&etavirp_nuyila=1

// 播放器地址

let playURL = "https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1"

// 播放器

let urlSource: UrlSource = new UrlSource()

urlSource.setUri(playURL)

aliPlayer.setUrlDataSource(urlSource)

aliPlayer.prepare();

// 预加载

loader: MediaLoader = MediaLoader.getInstance()

mediaLoader.load(playURL,"duration")HLS标准加密HLS标准加密播放-视频点播VidAuth播放经过HLS标准加密的视频通过点播VidAuth方式播放时,若当前视频存在其他非HLS标准加密类型的加密流或普通转码流时,可通过设置视频加密类型为HLSEncryption来筛选HLS标准加密流进行播放,示例代码如下:

重要 开启M3U8标准加密改写后,则需要您调用setMtsHlsUriToken设置用户令牌。

const vidAuth: VidAuth = new VidAuth()

const vidPlayerConfigGen: VidPlayerConfigGen = new VidPlayerConfigGen()

vidPlayerConfigGen.setMtsHlsUriToken("token")// 可选参数,如需校验MtsHlsUriToken(用户令牌),可使用此参数传递

vidPlayerConfigGen.setEncryptType(EncryptType.HLSEncryption)// 可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

vidAuth.setPlayerConfig(vidPlayerConfigGen)

vidAuth.setVid("Vid信息")// 必选参数,视频ID(VideoId)。

vidAuth.setPlayAuth("")// 必选参数,播放凭证,需要调用点播服务的GetVideoPlayAuth接口生成。

vidAuth.setRegion("接入地域")// 5.5.5.0及之后版本播放器SDK,本参数已弃用,无需设置region,播放器会自动解析region;5.5.5.0之前版本播放器SDK,本参数必选,点播服务的接入地域,默认为cn-shanghai。

// vidAuth.setAuthTimeout(3600); // 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

aliPlayer.setVidAuthDataSource(vidAuth)HLS标准加密播放-视频点播VidSts播放经过HLS标准加密的视频通过点播VidSts方式播放时,若当前视频存在其他非HLS标准加密类型的加密流或普通转码流时,可通过设置视频加密类型为HLSEncryption来筛选HLS标准加密流进行播放,示例代码如下:

重要 开启M3U8标准加密改写后,则需要您调用setMtsHlsUriToken设置用户令牌。

const vidSts: VidSts = new VidSts()

const vidPlayerConfigGen: VidPlayerConfigGen = new VidPlayerConfigGen()// 可选参数,设置加密类型为AliyunVoDEncryption时,则只会返回经过私有加密的视频流。

vidPlayerConfigGen.setMtsHlsUriToken("token")

vidPlayerConfigGen.setEncryptType(EncryptType.HLSEncryption)

vidSts.setPlayerConfig(vidPlayerConfigGen)

vidSts.setVid("Vid信息")// 必选参数,视频ID(VideoId)。

vidSts.setAccessKeyId("")// 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

vidSts.setAccessKeySecret("")// 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

vidSts.setSecurityToken("")// 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

vidSts.setRegion("接入地域")// 必选参数,点播服务的接入地域,默认为cn-shanghai。

// vidSts.setAuthTimeout(3600)// 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

aliPlayer.setVidStsDataSource(vidSts)HLS标准加密播放-UrlSource播放经过HLS标准加密的视频通过直播或点播UrlSource方式播放时,可调用GetPlayInfo - 获取音视频播放地址接口获取视频的播放地址。开启M3U8标准加密改写后,获取到的视频URL需要您按协议在URL尾部自行拼接MtsHlsUriToken=(位置不限)后传入播放器,播放器SDK的配置与播放普通视频配置一致,无需额外设置参数。

原始播放URL示例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8

输入到播放器URL示例:https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=

//播放器

let urlSource: UrlSource = new UrlSource()

//必选参数,播放地址为经过HLS标准加密的直播流或点播流地址。

urlSource.setUri("播放地址")

aliPlayer.setUrlDataSource(urlSource)DRM加密DRM加密播放-视频点播VidSts播放经过DRM加密的视频通过点播VidSts方式播放时,与播放普通视频配置一致,无需额外设置参数。

const vidSts: VidSts = new VidSts()

vidSts.setVid("Vid信息")// 必选参数,视频ID(VideoId)。

vidSts.setAccessKeyId("")// 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

vidSts.setAccessKeySecret("")// 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

vidSts.setSecurityToken("")// 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

vidSts.setRegion("接入地域")// 必选参数,点播服务的接入地域,默认为cn-shanghai。

// vidSts.setAuthTimeout(3600)// 可选参数,播放地址的有效时长,单位:秒。该时长会覆盖在视频点播控制台设置的URL鉴权的有效时长。如果不传,则取默认值3600。如需设置此参数,请确保该时间大于视频的实际时长,防止播放地址在播放完成前过期。

aliPlayer.setVidStsDataSource(vidSts)DRM加密播放-视频直播LiveStsSource播放经过DRM加密的视频通过直播LiveStsSource方式播放时,需要传入URL和STS凭证,并设置视频加密类型为ENCRYPTION_TYPE_FAIRPLAY。示例代码如下:

创建DataSource。

需传递AVPLiveStsSource作为播放源。

// 创建LiveSts,EncryptionType需要设置为WideVine_FairPlay

const liveSts: LiveSts = new LiveSts()

liveStsSource.setUrl("")// 必选参数,播放地址为经过私有加密的HLS直播流地址。

liveStsSource.setAccessKeyId("")// 必选参数,STS临时AK对的访问密钥ID,需要调用STS服务的AssumeRole接口生成。

liveStsSource.setAccessKeySecret("")// 必选参数,STS临时AK对的访问密钥,需要调用STS服务的AssumeRole接口生成。

liveStsSource.setSecurityToken("")// 必选参数,STS安全令牌,需要调用STS服务的AssumeRole接口生成。

liveStsSource.setDomain("")// 必选参数,直播流的播流域名。

liveStsSource.setApp("")// 必选参数,直播流的AppNam。

liveStsSource.setStream("")// 必选参数,直播流的StreamName。

liveStsSource.setEncryptionType(LiveEncryptionType.WideVine_FairPlay)// 必选参数,设置加密类型为WideVine_FairPlay

liveStsSource.setRegion("")// 必选参数,服务地域。如cn-shanghai等。

// 设置播放源

aliPlayer.setLiveStsDataSource(liveStsSource)

// 准备播放

aliPlayer.prepare()常见问题使用加密过程中的常见问题及解决方案,请参见视频加密常见问题。

相关文档阿里云视频加密(私有加密)

HLS标准加密

DRM加密

相关推荐

足球比分
365bet体育官网网址

足球比分

📅 07-18 👁️ 2277