云服务器内容精选

  • 请求示例 修改转码模板 PUT https://{endpoint}/v2/{project_id}/asset/template/transcodings Content-Type: application/json { "group_id": "f9b045e0811c482f9de0d436a5927bb6", "name": "trans_template_test", "is_default": true, "quality_info_list": [ { "video": { "width": 1280, "height": 720, "bitrate": 1000, "quality": "HD", "frame_rate": 0 }, "audio": { "sample_rate": "AUDIO_SAMPLE_AUTO", "channels": "AUDIO_CHANNELS_1", "bitrate": 0 } } ], "watermark_template_ids": [], "common": { "pvc": false, "video_codec": "H264", "audio_codec": "AAC", "format": "HLS", "hls_interval": 5 } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token,使用Token鉴权方式时必选。 通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 表3 请求Body参数 参数 是否必选 参数类型 描述 group_id 是 String 模板组ID name 否 String 模板组名称 is_default 否 Boolean 是否是默认转码模板,默认false不设置为默认 is_auto_encrypt 否 Boolean 配置是否加密输出音视频,默认false不加密。 当前只支持加密输出HLS格式的音视频流,不会对原始上传的音视频进行加密处理。非HLS转码输出的音视频格式,此字段不可配置。开启此配置前,请参考《VOD用户指南》的“HLS加密设置”章节获取密钥URL。 quality_info_list 是 Array of QualityInfoList objects 画质配置信息列表,如果不携带或者携带为空,则不更新模板中该部分数据。 watermark_template_ids 否 Array of strings 绑定的水印模板组ID数组 description 否 String 模板介绍 common 是 CommonInfo object 高清低码开关,编码格式多路共同参数 表4 QualityInfoList 参数 是否必选 参数类型 描述 video 否 VideoInfo object 模板视频信息。video和audio至少配置一个参数。 audio 否 AudioInfo object 模板音频信息 表5 VideoInfo 参数 是否必选 参数类型 描述 quality 是 String 画质 4K默认分辨率3840*2160,码率8000kbit/s 2K默认分辨率2560*1440,码率7000kbit/s FULL_HD默认分辨率1920*1080,码率3000kbit/s HD默认分辨率1280*720,码率1000kbit/s SD默认分辨率854*480,码率600kbit/s FLUENT默认分辨率480*270,码率300kbit/s width 否 Integer 视频宽度 height 否 Integer 视频高度 bitrate 是 Integer 码率,单位:kbit/s frame_rate 是 Integer 帧率,单位是帧每秒。 取值范围:0或[5,60]之间的整数。 默认为0,0代表自适应。 表6 AudioInfo 参数 是否必选 参数类型 描述 sample_rate 是 String 音频采样率(有效值范围) AUDIO_SAMPLE_AUTO (default), AUDIO_SAMPLE_22050:22050Hz AUDIO_SAMPLE_32000:32000Hz AUDIO_SAMPLE_44100:44100Hz AUDIO_SAMPLE_48000:48000Hz AUDIO_SAMPLE_96000:96000Hz bitrate 否 Integer 音频码率(单位:Kbps) channels 是 String 声道数(有效值范围) AUDIO_CHANNELS_1:单声道 AUDIO_CHANNELS_2:双声道 AUDIO_CHANNELS_5_1:5.1声道 表7 CommonInfo 参数 是否必选 参数类型 描述 pvc 是 Boolean 高清低码开关 video_codec 是 String 视频编码格式 audio_codec 否 String 音频编码格式 AAC:AAC格式 (default) HEAAC1:HEAAC1格式 HEAAC2:HEAAC2格式 MP3:MP3格式 is_black_cut 否 Boolean 黑边剪裁类型,默认false不开启黑边剪裁 format 是 String 格式 hls_interval 是 Integer 分片时长,范围2-10(默认为5秒) upsample 否 Boolean 开启后可以提升视频的分辨率,增加采样点的数量。 adaptation 否 String 转码后的片源分辨率自适应方式。 取值如下: SHORT:短边自适应。转码模板的宽和高都设置,用其中的短边与片源短边对比,然后片源长边按此比例进行缩放。 LONG:长边自适应。转码模板的宽和高都设置,用其中的长边与片源长边对比,然后片源短边按此比例进行缩放。 NONE:按设置宽高适应,为默认值。按照转码模板设置的宽高输出。 说明: V1接口(已废弃)不支持设置该参数,默认按SHORT处理。V2接口默认按NONE处理,V1和V2接口默认值有差异,在调用时需要注意该参数值的设置。 控制台是通过V2接口创建的转码模板,实际与V1接口创建转码模板的默认值保值一致,为SHORT。 preset 否 Integer 编码质量等级,取值[0,2] 0表示默认方式,1表示转码效率优先,2表示转码质量优先。 max_iframes_interval 否 Integer I帧最大间隔,取值范围:[2,10]。默认值:5,单位秒。 hls_audio_separate 否 Boolean 转码后音频是否独立存储。
  • 响应示例 状态码: 200 处理成功返回。 { "template_group_list" : [ { "group_id" : "9751249d25f14587b212544d6fd8dcf8", "name" : "non_transcoding_template_group", "is_default" : false, "type" : "non_transcoding_template_group", "is_auto_encrypt" : false, "quality_info_list" : [ { "video" : { "quality" : "UNKNOW", "width" : 0, "height" : 0, "bitrate" : 0, "frame_rate" : 0 }, "audio" : null } ], "watermark_template_ids" : null, "description" : null, "common" : { "pvc" : false, "is_black_cut" : false, "format" : "UNKNOW", "upsample" : false, "adaptation" : "NONE", "video_codec" : null, "audio_codec" : "AAC", "hls_interval" : 0 } } ], "total" : 0 } 状态码: 403 处理失败返回。 { "error_code" : "VOD.10053", "error_msg" : "The request parameter is illegal, illegal field: {xx}." }
  • URI GET /v2/{project_id}/asset/template/transcodings 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方法请参考获取项目ID 表2 Query参数 参数 是否必选 参数类型 描述 group_id 否 String 模板id is_default 否 Boolean 是否默认模板 offset 否 Integer 偏移量。默认为0。指定group_id时该参数无效。 limit 否 Integer 每页记录数。默认为10,范围[1,100]。指定group_id时该参数无效。 query_string 否 String 按照模板名和描述模糊查询。指定group_id时该参数无效。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 template_group_list Array of TransTemplateRsp objects 模板组信息 total Integer 总记录条数 表5 TransTemplateRsp 参数 参数类型 描述 group_id String 模板组id name String 模板组名称 is_default Boolean 是否设置成默认转码模板 type String 模板组类型 is_auto_encrypt Boolean 配置是否加密输出音视频,默认false不加密。 当前只支持加密输出HLS格式的音视频流,不会对原始上传的音视频进行加密处理。非HLS转码输出的音视频格式,此字段不可配置。开启此配置前,请参考《VOD用户指南》的“HLS加密设置”章节获取密钥URL。 quality_info_list Array of QualityInfoList objects 画质配置信息列表 watermark_template_ids Array of strings 绑定的水印模板组ID数组 description String 模板介绍 common CommonInfo object 高清低码开关,高清低码Version,编码格式多路共同参数 表6 QualityInfoList 参数 参数类型 描述 video VideoInfo object 模板视频信息。video和audio至少配置一个参数。 audio AudioInfo object 模板音频信息 表7 VideoInfo 参数 参数类型 描述 quality String 画质 4K默认分辨率3840*2160,码率8000kbit/s 2K默认分辨率2560*1440,码率7000kbit/s FULL_HD默认分辨率1920*1080,码率3000kbit/s HD默认分辨率1280*720,码率1000kbit/s SD默认分辨率854*480,码率600kbit/s FLUENT默认分辨率480*270,码率300kbit/s width Integer 视频宽度 height Integer 视频高度 bitrate Integer 码率,单位:kbit/s frame_rate Integer 帧率,单位是帧每秒。 取值范围:0或[5,60]之间的整数。 默认为0,0代表自适应。 表8 AudioInfo 参数 参数类型 描述 sample_rate String 音频采样率(有效值范围) AUDIO_SAMPLE_AUTO (default), AUDIO_SAMPLE_22050:22050Hz AUDIO_SAMPLE_32000:32000Hz AUDIO_SAMPLE_44100:44100Hz AUDIO_SAMPLE_48000:48000Hz AUDIO_SAMPLE_96000:96000Hz bitrate Integer 音频码率(单位:Kbps) channels String 声道数(有效值范围) AUDIO_CHANNELS_1:单声道 AUDIO_CHANNELS_2:双声道 AUDIO_CHANNELS_5_1:5.1声道 表9 CommonInfo 参数 参数类型 描述 pvc Boolean 高清低码开关 video_codec String 视频编码格式 audio_codec String 音频编码格式 AAC:AAC格式 (default) HEAAC1:HEAAC1格式 HEAAC2:HEAAC2格式 MP3:MP3格式 is_black_cut Boolean 黑边剪裁类型,默认false不开启黑边剪裁 format String 格式 hls_interval Integer 分片时长,范围2-10(默认为5秒) upsample Boolean 开启后可以提升视频的分辨率,增加采样点的数量。 adaptation String 转码后的片源分辨率自适应方式。 取值如下: SHORT:短边自适应。转码模板的宽和高都设置,用其中的短边与片源短边对比,然后片源长边按此比例进行缩放。 LONG:长边自适应。转码模板的宽和高都设置,用其中的长边与片源长边对比,然后片源短边按此比例进行缩放。 NONE:按设置宽高适应,为默认值。按照转码模板设置的宽高输出。 说明: V1接口(已废弃)不支持设置该参数,默认按SHORT处理。V2接口默认按NONE处理,V1和V2接口默认值有差异,在调用时需要注意该参数值的设置。 控制台是通过V2接口创建的转码模板,实际与V1接口创建转码模板的默认值保值一致,为SHORT。 preset Integer 编码质量等级,取值[0,2] 0表示默认方式,1表示转码效率优先,2表示转码质量优先。 max_iframes_interval Integer I帧最大间隔,取值范围:[2,10]。默认值:5,单位秒。 hls_audio_separate Boolean 转码后音频是否独立存储。 状态码: 403 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token,使用Token鉴权方式时必选。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token,使用Token鉴权方式时必选。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 模板组名称 is_default 否 Boolean 是否设置成默认转码模板,默认false不设置为默认 is_auto_encrypt 否 Boolean 配置是否加密输出音视频,默认false不加密。 当前只支持加密输出HLS格式的音视频流,不会对原始上传的音视频进行加密处理。非HLS转码输出的音视频格式,此字段不可配置。开启此配置前,请参考《VOD用户指南》的“HLS加密设置”章节获取密钥URL。 quality_info_list 是 Array of QualityInfoList objects 画质配置信息列表 common 是 CommonInfo object 高清低码开关,编码格式多路共同参数 watermark_template_ids 否 Array of strings 绑定的水印模板组ID数组 description 否 String 模板介绍 表4 QualityInfoList 参数 是否必选 参数类型 描述 video 否 VideoInfo object 模板视频信息。video和audio至少配置一个参数。 audio 否 AudioInfo object 模板音频信息 表5 VideoInfo 参数 是否必选 参数类型 描述 quality 是 String 画质 4K默认分辨率3840*2160,码率8000kbit/s 2K默认分辨率2560*1440,码率7000kbit/s FULL_HD默认分辨率1920*1080,码率3000kbit/s HD默认分辨率1280*720,码率1000kbit/s SD默认分辨率854*480,码率600kbit/s FLUENT默认分辨率480*270,码率300kbit/s width 否 Integer 视频宽度 height 否 Integer 视频高度 bitrate 是 Integer 码率,单位:kbit/s frame_rate 是 Integer 帧率,单位是帧每秒。 取值范围:0或[5,60]之间的整数。 默认为0,0代表自适应。 表6 AudioInfo 参数 是否必选 参数类型 描述 sample_rate 是 String 音频采样率(有效值范围) AUDIO_SAMPLE_AUTO (default), AUDIO_SAMPLE_22050:22050Hz AUDIO_SAMPLE_32000:32000Hz AUDIO_SAMPLE_44100:44100Hz AUDIO_SAMPLE_48000:48000Hz AUDIO_SAMPLE_96000:96000Hz bitrate 否 Integer 音频码率(单位:Kbps) channels 是 String 声道数(有效值范围) AUDIO_CHANNELS_1:单声道 AUDIO_CHANNELS_2:双声道 AUDIO_CHANNELS_5_1:5.1声道 表7 CommonInfo 参数 是否必选 参数类型 描述 pvc 是 Boolean 高清低码开关 video_codec 是 String 视频编码格式 audio_codec 否 String 音频编码格式 AAC:AAC格式 (default) HEAAC1:HEAAC1格式 HEAAC2:HEAAC2格式 MP3:MP3格式 is_black_cut 否 Boolean 黑边剪裁类型,默认false不开启黑边剪裁 format 是 String 格式 hls_interval 是 Integer 分片时长,范围2-10(默认为5秒) upsample 否 Boolean 开启后可以提升视频的分辨率,增加采样点的数量。 adaptation 否 String 转码后的片源分辨率自适应方式。 取值如下: SHORT:短边自适应。转码模板的宽和高都设置,用其中的短边与片源短边对比,然后片源长边按此比例进行缩放。 LONG:长边自适应。转码模板的宽和高都设置,用其中的长边与片源长边对比,然后片源短边按此比例进行缩放。 NONE:按设置宽高适应,为默认值。按照转码模板设置的宽高输出。 说明: V1接口(已废弃)不支持设置该参数,默认按SHORT处理。V2接口默认按NONE处理,V1和V2接口默认值有差异,在调用时需要注意该参数值的设置。 控制台是通过V2接口创建的转码模板,实际与V1接口创建转码模板的默认值保值一致,为SHORT。 preset 否 Integer 编码质量等级,取值[0,2] 0表示默认方式,1表示转码效率优先,2表示转码质量优先。 max_iframes_interval 否 Integer I帧最大间隔,取值范围:[2,10]。默认值:5,单位秒。 hls_audio_separate 否 Boolean 转码后音频是否独立存储。
  • 请求示例 创建转码模板 POST https://{endpoint}/v2/{project_id}/asset/template/transcodings Content-Type: application/json { "name": "trans_template_test", "is_default": true, "is_auto_encrypt": false, "quality_info_list": [ { "video": { "width": 1280, "height": 720, "bitrate": 1000, "quality": "HD", "frame_rate": 0 }, "audio": { "sample_rate": "AUDIO_SAMPLE_AUTO", "channels": "AUDIO_CHANNELS_1", "bitrate": 0 } } ], "watermark_template_ids": [], "common": { "pvc": false, "video_codec": "H264", "audio_codec": "AAC", "format": "HLS", "hls_interval": 5 } }
  • 转码模板介绍 为了方便对点播服务熟悉程度不同的用户快速使用转码功能,点播服务提供了四种系统转码模板,若您是点播服务的新用户,建议您优先使用系统模板。 点播服务内置了如下四种系统转码模板: 不转码模板(non_transcoding_template_group ):对音视频进行不转码操作,若您在音视频处理中未选择其它转码模板,则该模板默认生效。由于上传到点播服务的音视频默认是不转码分发的,所以对于用户来说,该模板无实际使用场景。 视频转码模板(system_template_group):内置了常用的视频清晰度,该模板适用于对分辨率、码率、帧率等音视频具体参数不熟悉的用户。 转封装模板(original_template_group):只转换音视频的封装格式,不改变其它参数,该模板主要适用于只需改变格式,无分辨率和码率等改变需求的场景。 视频自适应转码模板(adaptive_template_group):支持视频画质增强功能,该模板适用于有修复视频受损图像需求的场景。 若您对于音视频的相关参数足够熟悉,且系统模板无法满足实际需求,您也可以选择自定义转码模板。
  • 费用说明 音视频转码为计费项功能,默认为按需付费,建议您购买转码套餐包,更优惠。目前 视频点播 提供了三种转码包,各转码包的使用场景如下所示: H.264标准转码包 支持抵扣“视频编码”为“H.264”,且“高清低码”为“关闭”状态的视频转码。 支持抵扣音频转码,按“5/22”折算时长后进行抵扣。 H.264高清低码转码包:只能抵扣“视频编码”为“H.264”,且“高清低码”为“开启”状态的视频转码。 H.265标准转码包:只能抵扣“视频编码”为“H.265”,且“高清低码”为“关闭”状态的视频转码。 三种转码包都不支持抵扣使用转封装模板(original_template_group)产生的费用。
  • 使用限制 音视频转码当前支持的输入格式如下所示: 支持输入的音视频文件格式:MP4、TS、MOV、FLV、MPG、MXF、WMV、ADTS、AVI、MKV、MPEG、VOB、RM、MTS等。 支持输入的视频编码格式:H.264、 H.265、 MPEG-2、MPEG-4、MJPEG、WMV1/2/3、ProRes 422等。 支持输入的音频编码格式:AAC、 AC3、EAC3、HE-AAC、MP2、MP3、PCM(s161e、s16be、s241e、s24be、dvd)、WMA等。 如果需要支持多转码模式,即同时保留不同模板的转码产物,需提交工单申请开通。
  • 场景说明 通过点播服务加速分发的音视频可能被引用到各种业务场景,如产品官网、视频网站等,也可能在不同的终端进行播放,如web端、移动端。为适用于多样化的场景,点播服务提供了转码功能,支持改变音视频的编码格式、封装格式、分辨率、码率等参数,从而适用于不同的业务场景、播放终端及网络环境。 转码功能可以帮助您处理如下问题: 适配不同播放终端:您可以将原始音视频转码为更适应于各终端播放的格式,如MP4格式适用于网站点播的场景。 适配不同网络环境:您可以根据不同的网络带宽设置转码输出的码率,以适应不同的网络播放环境。 降低分发成本:支持压缩率更高的H.265编码格式,您也可以在转码时开启高清低码功能,在分辨率不变的情况下,码率下降20%左右,从而降低音视频的分发成本。 HLS内容保护:您可以在转码时开启HLS加密,对转码的HLS格式音视频进行加密,从而防止音视频被盗用后进行二次分发。 版权保护:您可以为视频添加自己独有的logo等标识水印,以宣示该视频的版权所属。 音视频提取:支持转码提取音频文件,主要适用于一些纯音频的场景,如电台、音频APP等。 禁用音频:同时也支持输出无音频的视频文件,主要适用于需要禁用原音频的场景。
  • 场景说明 使用防盗链机制可以控制播放行为,避免非授权用户通过播放URL下载或播放点播视频,但无法阻止恶意的付费用户将视频下载到本地后进行二次分发。 为了有效防止视频泄露和盗链问题,华为云视频点播提供了对HLS视频内容进行加密的能力。加密后的视频,即使恶意用户下载也无法分发给其他人观看。HLS加密涉及到业务侧的密钥服务和Token生成服务的搭建,所以本方案主要适用于能自行搭建一套完整的鉴权及密钥管理服务的业务侧。
  • 实现原理 华为云视频点播提供的HLS加密使用的HLS规范中的通用加密方案,通过指定的AES-128加密算法来加密每一个TS,并在生成的m3u8文件中描述播放器如何解密TS文件的方法,支持所有的HLS播放器。 本方案中,点播服务集成了华为云的KMS,向HLS加密提供密钥。 加密流程 业务侧将视频上传到点播服务(VOD)后,请求HLS加密。 点播服务收到加密请求后,向KMS请求加密密钥,并将获取的密钥ID和密钥密文存储在点播服务中。 点播服务向 媒体处理 服务请求HLS加密,媒体处理服务通过转码功能将对应的视频进行加密。 转码加密后生成的m3u8文件带有“#EXT-X-KEY”标签,该标签包含了“METHOD”和“URI”属性,其中“URI”即为业务侧搭建的密钥管理服务的地址,示例如下所示。 若加密后使用的播放地址是https,则秘钥管理服务的地址也需要配置为https协议,否则无法在点播控制台预览播放。 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:6 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-KEY:METHOD=AES-128,URI="https://domain-sample/encrypt/get-key?asset_id=6aee80009c4ca6970f508d6334194794",IV=0x80a3ff24ccd788042ca7f2237e74c59d #EXTINF:5.000000, 6aee80009c4ca6970f508d6334194794_1_1920X1080_3000_0_0.ts #EXTINF:5.000000, 6aee80009c4ca6970f508d6334194794_1_1920X1080_3000_0_1.ts #EXT-X-EN DLI ST 加密后,点播服务通过CDN将加密的HLS视频文件进行加速分发。 解密流程 终端用户登录播放器终端,业务侧会对终端用户进行身份校验,校验通过后,会为播放终端分配一个Token,并将带Token的播放地址返回给播放器端。 示例:若转码加密后的HLS视频播放地址为:https://1280.cdn-vod.huaweicloud.com/input/test.m3u8,则播放器终端获取的播放地址为:https://1280.cdn-vod.huaweicloud.com/input/test.m3u8?token={token} 播放器终端通过带Token的播放URL向CDN请求播放。由于Token是动态的,所以CDN收到请求后,会直接回源到点播服务。点播服务会将请求URL中的Token写入请求的m3u8文件的“URI”中。 点播服务返回给CDN的m3u8文件中会携带播放终端的Token值,示例如下所示。 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:6 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-KEY:METHOD=AES-128,URI="https://domain-sample/encrypt/get-key?asset_id=6aee80009c4ca6970f508d6334194794&token={token}",IV=0x80a3ff24ccd788042ca7f2237e74c59d #EXTINF:5.000000, 6aee80009c4ca6970f508d6334194794_1_1920X1080_3000_0_0.ts #EXTINF:5.000000, 6aee80009c4ca6970f508d6334194794_1_1920X1080_3000_0_1.ts #EXT-X-ENDLIST 播放终端解析返回的m3u8文件,得到EXT-X-KEY标签中的“URI”内容,向“URI”请求密钥。 业务侧的密钥管理服务收到请求后,先验证Token的合法性,若Token合法,则通过调用点播服务的API查询密钥。 密钥管理服务可以选择将查询到的密钥缓存在本地,当下次有其它播放终端请求时,可以直接返回,无需每次都向点播服务获取。 密钥管理服务将点播服务返回的密钥返回给播放终端。播放终端通过获取的密钥解密播放m3u8文件。
  • 搭建相关服务 若需要使用HLS加密功能,并实现解密播放功能,您需要在您的业务端服务器搭建密钥管理服务和Token生成服务。 密钥管理服务,搭建的密钥管理服务需要具备如下功能,密钥管理服务示例代码请参见示例代码。 支持身份鉴定:如实现原理中描述,密钥管理服务收到密钥请求时,需要验证请求的Token是否合法。 支持向点播服务获取密钥:HLS加密的原始密钥是存储在点播服务中的,因此,密钥管理服务需要调用点播服务API,获取对应媒资的密钥。 支持缓存获取的密钥:为避免每次都从点播服务获取密钥,密钥管理服务应该具备缓存功能,将获取的密钥进行缓存。 Token生成服务:当终端用户登录您的播放终端时,您的业务侧服务应该对终端用户的合法性进行校验,生成对应的Token,将带Token的播放地址返回播放器端。Token生成示例代码请参见示例代码。 生成的Token需要包含大写字母、小写字母和数字,长度可自行限制。每一次登录分配一个唯一的Token,且具备时效性。遵循权限最小化原则,建议将该Token仅用于HLS加密视频的场景。 您可以根据实际需求,参考demo源码搭建符合业务需求的密钥管理服务和Token生成服务。