全部產品
Search
文件中心

ApsaraVideo VOD:自訂轉碼產生的檔案名稱

更新時間:Jul 24, 2024

視頻上傳到點播轉碼後產生的檔案名稱(即檔案的相對路徑),會遵循一定規則,本文檔主要介紹轉碼組建檔案名稱的預設規則,以及如何自訂。

檔案名稱的定義

檔案名稱由可變字串、固定字串組成,其中可變字串主要是指點播提供的特定萬用字元,可進行動態替換,而固定字串不能動態替換。

說明

該檔案名稱定義規則暫不適用HLSDASH打包的輸出檔案名稱。

  • 可變字串

    可變字串即萬用字元,是指具體取值的替換規則,只需要設定對應的萬用字元,則點播會在產生轉碼檔案名稱時,擷取具體的取值去替換萬用字元,當前點播支援的萬用字元如下:

    • 視頻ID:{MediaId},局部唯一性,一個視頻可產生多路轉碼輸出。

    • 轉碼任務ID:{JobId},完全唯一性,可唯一標記一個轉碼檔案。

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

      說明

      播放清晰度標記為擷取視頻播放地址介面中返回的Definition欄位的取值,且使用英文小寫形式。

  • 固定字串

    固定字串可代表具體的商務資訊。例如:watermark(表示有浮水印輸出)、encrypt(表示加密輸出)等,點播提供的預設規則中對於轉碼加密輸出會具備encrypt-stream關鍵字,也可通過自訂規則配置具體各自業務特性的固定字串。

    樣本:{MediaId}/{JobId}-watermark-sd{MediaId}/encrypt-hd,具備watermark、encrypt關鍵可表示浮水印和加密資訊。

檔案名稱的唯一性

為避免轉碼輸出檔案相互覆蓋,點播要求配置的轉碼輸出的檔案名稱必須具備唯一性。

  • 唯一性樣本:

    {MediaId}/{JobId}:{MediaId} 僅具備局部唯一性,{JobId} 具備全域唯一性,從而確保整個檔案名稱的唯一性。

  • 非唯一性樣本:

    {MediaId}/test:{MediaId} 僅具備局部唯一性,test代表某個商務資訊。當此時需要轉碼輸出兩個解析度、碼率等轉碼參數不同的MP4檔案,對於同一個視頻兩個MP4格式的轉碼輸出檔案,名稱就會相同,且會出現檔案相互覆蓋的情況,最終導致只有一個MP4檔案。

預設規則

點播轉碼會對檔案輸出名稱提供一套預設的建置規則,具體如下:

說明

以下隨機字串主要是為了保證轉碼輸出檔案名稱的唯一性。

  • 非加密輸出

    形式為:

    {MediaId}/[隨機字串]-{PlayDefinition}

    產生樣本:

    99f4f18c560c4f35459ef71tr/1b1196c767003c3dba0543055-40023f3f33e648df975f4dfc4c-sd
  • 加密輸出

    形式為:

    {MediaId}/[隨機字串]-{PlayDefinition}-encrypt-stream

    產生樣本:

    99f4f18c560c4f35459ef71tr/1b1196c767003c3dba0543055-40023f3f33e648df975f4dfc4c-sd-encrypt-stream
    說明

    encrypt-stream關鍵字表示當前轉碼輸出檔案為轉碼加密輸出,僅對HLS加密生效(私人加密/標準加密)。

自訂規則

對於某些特定的業務情境,如使用者為了降低視頻整體的播放回應時間,希望根據某些可行的規則直接拼接處理播放地址,例如:規則為{MediaId}/{PlayDefinition},則可直接通過MediaId +不同的清晰度標記來拼接對應的檔案路徑,而無需通過播放介面擷取播放清單。由此,點播轉碼支援使用者自訂轉碼檔案名稱規則,轉碼會根據規則產生具體的名稱。

規則限制

  • 自訂轉碼檔案名稱只支援特定的萬用字元(可變字串)、英文字串、數字、串連號(-)、底線(_) ,整個自訂規則總長度不能超過128個字元。

  • 自訂轉碼檔案名稱必須以萬用字元 {MediaId} 開始,可首先保證轉碼檔案名稱局部唯一,防止不同視頻轉碼檔案名稱相互影響。

  • 自訂轉碼檔案名稱不需設定檔尾碼名,因為點播轉碼將自動補齊尾碼名,例如:名稱規則為 {MediaId}/{JobId}-watermark-{PlayDefinition},格式 mp4,那麼點播轉碼會在產生實際檔案名稱時自動帶上mp4尾碼。

    樣本:99f4f18c560c4f35459ef71tr/1b1196c767003c3dba0543055-watermark-sd.mp4。

  • 自訂轉碼檔案名稱規則必須確保轉碼輸出檔案名稱具備唯一性,防止檔案覆蓋。

配置方式

當前僅支援通過API自訂轉碼檔案名稱,詳細請參考添加轉碼配置 ,參數詳情請參考 轉碼模板配置TranscodeTemplateTranscodeFileRegular參數。

配置樣本

public static JSONArray buildTranscodeTemplateList() {
        JSONObject transcodeTemplate = new JSONObject();
        //自訂轉碼輸出檔案名稱
        transcodeTemplate.put("TranscodeFileRegular", "{MediaId}/{JobId}-watermark-{PlayDefinition}");
        //模板名稱
        transcodeTemplate.put("TemplateName", "testtemplate");
        //清晰度
        transcodeTemplate.put("Definition", "LD");
        ......
        //視頻轉碼配置、音頻轉碼配置、輸出格式等參數配置
        ......
        JSONArray transcodeTemplateList = new JSONArray();
        transcodeTemplateList.add(transcodeTemplate);
        return transcodeTemplateList;
    }

更多配置詳情請參考轉碼模板中添加轉碼模板組。