全部产品
云市场

转码生成文件名称

更新时间:2019-05-14 10:26:24

简介

视频上传到点播转码后生成的文件名称(即文件的相对路径),会遵循一定规则,本文档主要介绍转码生成文件名称的默认规则,以及如何自定义。

文件名定义

文件名是由可变字符串、固定字符串组成,其中可变字符串主要是指点播提供的特定通配符可进行动态替换,而固定字符串不能动态替换。

说明:该文件名称定义规则暂不适用 HLSDASH 打包的输出文件名称。

可变字符串

可变字符串即通配符,是指具体取值的替换规则,只需要设置对应的通配符,则点播会在生成转码文件名称时,获取具体的取值去替换通配符,当前点播支持的通配符如下:

  • 视频ID:{MediaId},局部唯一性,一个视频可生成多路转码输出。

  • 转码任务ID:{JobId},完全唯一性,可唯一标记一个转码文件。

  • 播放清晰度标记:{PlayDefinition},不具有唯一性。

说明:播放清晰度标记为 GetPlayInfo 接口中返回的Definition字段的取值,且使用英文小写形式。

固定字符串

固定字符串可代表具体的业务信息,例如:watermark(表示有水印输出)、encrypt(表示加密输出)等,点播提供的默认规则中对于转码加密输出会具备encrypt-stream关键字,也可通过自定义规则配置具体各自业务特性的固定字符串。

例如:{MediaId}/{JobId}-watermark-sd、{MediaId}/encrypt-hd,具备watermark、encrypt关键可表示水印和加密信息。

唯一性

为避免转码输出文件相互覆盖,点播要求配置的转码输出的文件名称必须具备唯一性。

  • 非唯一性示例:{MediaId}/test,如果需要转码输出两个mp4格式,但实际的分辨率、码率等转码参数不同的。这种情况,对于同一个视频两个mp4格式的转码输出文件名称就会相同且会出现文件相互覆盖的情况,最终导致只有一个mp4文件。

  • 唯一性示例:{MediaId}/{JobId},{MediaId} 仅具备局部唯一性,{JobId} 具备全局唯一性,从而确保整个文件名称的唯一性。

默认规则

点播转码会对文件输出名称提供一套默认的生成规则,具体如下:

说明:以下 随机字符串 主要是为了保证转码输出文件名称的唯一性。

非加密输出

形式为:{MediaId}/[随机字符串]-{PlayDefinition}

生成示例:99f4f18c560c4f35459ef71tr/1b1196c767003c3dba0543055-40023f3f33e648df975f4dfc4c-sd

加密输出

形式为:{MediaId}/[随机字符串]-{PlayDefinition}-encrypt-stream

生成示例:99f4f18c560c4f35459ef71tr/1b1196c767003c3dba0543055-40023f3f33e648df975f4dfc4c-sd-encrypt-stream

说明:encrypt-stream 关键字表示当前转码输出文件为转码加密输出,仅对HLS加密生效(私有加密/标准加密)。

自定义规则

对于某些特定的业务场景,如用户为了降低视频整体的播放响应时间,希望根据某些可行的规则直接拼接处播放地址,例如:规则为{MediaId}/{PlayeDefinition},则可直接通过MediaId + 不同的清晰度标记 来拼接对应的文件路径,而无需通过播放接口获取播放列表。由此,点播转码支持用户自定义转码文件名称规则,转码会根据规则生成具体的名称。

规则限制

  • 自定义转码文件名称只支持特定的 通配符 、英文字符串、数字、-、_ ,整个自定义规则总长度不能超过128个字符。

  • 自定义转码文件名称必须以通配符 {MediaId} 开始,可首先保证转码文件名称局部唯一,防止不同视频转码文件名称相互影响。

  • 自定义转码文件名称不需配置文件后缀名,因为点播转码将自动补齐后缀名,例如:名称规则为 {MediaId}/{JobId}-watermark-{PlayDefinition},格式 mp4,那么点播转码会在生成实际文件名称时自动带上mp4后缀。

    例如:99f4f18c560c4f35459ef71tr/1b1196c767003c3dba0543055-watermark-sd.mp4。

  • 自定义转码文件名称规则必须确保转码输出文件名称具备唯一性,防止文件覆盖。

配置方式

当前仅支持通过API自定义转码文件名称,详细请参考 AddTranscodeTemplateGroup ,参数详情请参考 TranscodeTemplate -> TranscodeFileRegular

配置示例

  1. public static JSONArray buildTranscodeTemplateList() {
  2. JSONObject transcodeTemplate = new JSONObject();
  3. //自定义转码输出文件名称
  4. transcodeTemplate.put("TranscodeFileRegular", "{MediaId}/{JobId}-{PlayDefinition}-watermark");
  5. //模板名称
  6. transcodeTemplate.put("TemplateName", "testtemplate");
  7. //清晰度
  8. transcodeTemplate.put("Definition", "LD");
  9. ......
  10. //视频转码配置、音频转码配置、输出格式等参数配置
  11. ......
  12. JSONArray transcodeTemplateList = new JSONArray();
  13. transcodeTemplateList.add(transcodeTemplate);
  14. return transcodeTemplateList;
  15. }

更多配置详情请参考 JavaSDK 示例