すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo VOD:トランスコードされたファイルの命名規則

最終更新日:Jun 23, 2022

ApsaraVideo VODは、トランスコードされたファイルに名前を付けるデフォルトルールを提供します。 トランスコードされたファイルの名前は、ファイルへの相対パスとして使用できます。 このトピックでは、トランスコードされたファイルに名前を付けるための既定のルールと、名前をカスタマイズする方法について説明します。

ファイル名の定义

トランスコードされたファイルに名前を付けるルールには、可変文字列と不変文字列を含めることができます。 変更可能な文字列は、ApsaraVideo VODでサポートされているワイルドカードであり、対応する値で動的に置き換えることができます。 不変文字列は置き換えることができません。

説明

この命名規則は、HTTPライブストリーミング (HLS) およびDynamic Adaptive Streaming over HTTP (DASH) 形式の出力ファイルには適用されません。

  • 変更可能な文字列

    変更可能な文字列は、対応する値で動的に置き換えることができるワイルドカードです。 トランスコードされたファイルがビデオから生成されると、ApsaraVideo VODは対応する値を取得して名前のワイルドカードを置き換えます。 ApsaraVideo VODは、ビデオファイルの命名に次のワイルドカードをサポートします。

    • {MediaId}: ビデオのID。 各ビデオのIDは一意である必要がありますが、同じビデオの出力ファイルの名前には同じビデオIDが含まれています。 ビデオから複数のトランスコードされたストリームを生成できます。

    • {JobId}: トランスコードジョブのID。 ジョブIDは、トランスコードファイルを識別するためにグローバルに一意である必要があります。

    • {PlayDefinition}: トランスコードされたファイルの解像度。 このパラメータは一意である必要はありません。

      説明

      このフィールドは、小文字のGetPlayInfo操作によって返されるDefinitionパラメーターの値に設定されます。 詳細については、「GetPlayInfo」をご参照ください。

  • 不変文字列

    不変文字列は、詳細なビジネス情報を示します。 たとえば、文字列「watermark」は出力ファイルにウォーターマークが含まれていることを示し、「encrypt」はソースビデオが暗号化されていることを示します。 デフォルトでは、ApsaraVideo VODは、ビデオ暗号化後に出力ファイルの名前にencrypt-streamを追加します。 カスタム不変文字列を使用して、さまざまなビジネス機能を示すこともできます。

    たとえば、{MediaId}/{JobId}-watermark-sdおよび {MediaId}/encrypt-hdには、"watermark" および "encrypt" 文字列が含まれています。

ファイル名の一意性

トランスコードされたファイルの上書きを防ぐには、各トランスコードされたファイルの名前が一意である必要があります。

  • たとえば、{MediaId}/{JobId} は、{JobId} 文字列がグローバルな一意性を保証するため、各ファイル名の一意性を保証できます。

  • ただし、{MediaId}/testでは、グローバルな一意性を確保するための文字列が含まれていないため、ファイル名が重複する可能性があります。 仕様の異なる2つのMP4ファイルにビデオをトランスコードするときにこの命名規則を適用すると、ApsaraVideo VODはトランスコードされた2つのファイルに同じ名前を設定します。 その結果、後に生成されるトランスコードされたファイルは、前に生成されたトランスコードされたファイルを上書きする。

デフォルトルール

ApsaraVideo VODには、トランスコードされたファイルの名前付けに関する次のルールがあります。

説明

次の命名規則のカスタム文字列を使用して、トランスコードされた各ファイルの名前が一意になるようにします。

  • 非暗号化出力

    ルール:

    {MediaId}/[カスタム文字列]-{PlayDefinition}

    例:

    99f4f18c560c4f35459ef7 1tr/1b1196c767003c3dba0543055-40023f3f33e648df975f4dfc4c-sd

  • 暗号化された出力

    ルール:

    {MediaId}/[カスタム文字列]-{PlayDefinition}-encrypt-stream

    例:

    99f4f18c560c4f35459ef7 1tr/1b1196c767003c3dba0543055-40023f3f33e648df975f4dfc4c-sd-encrypt-ストリーム
    説明

    encrypt-stream文字列は、暗号化とトランスコーディングの後に出力ファイルが生成されることを示します。 このルールは、Alibaba Cloud独自の暗号化とHLS暗号化にのみ適用されます。

カスタムルール

ビデオファイルを再生するには、メディアプレーヤーはストリーミングURLを取得する必要があります。 特定のシナリオでビデオ再生の応答時間を短縮する必要がある場合は、ストリーミングURLの生成に必要なパラメーターを含む命名規則をカスタマイズできます。 たとえば、命名規則 {MediaId}/{PlayDefinition} を設定した場合、ApsaraVideo VODはビデオIDと解像度に基づいてストリーミングURLを生成します。 この場合、ストリーミングURLを照会する操作を呼び出す必要はありません。 ApsaraVideo VODは、トランスコードされたファイルのカスタム命名規則をサポートします。 トランスコードされたファイルが生成されると、ApsaraVideo VODはカスタムルールに基づいてファイルに名前を付けます。

制限

  • トランスコードされたファイルのカスタム命名規則は、特定のワイルドカード、文字、数字、ハイフン (-) 、およびアンダースコア (_) のみをサポートします。 ルールの長さは128文字を超えてはなりません。

  • トランスコードされたファイルのカスタム命名規則は、ワイルドカード {MediaId} で始まり、ソースビデオを指定する必要があります。 これにより、異なるビデオのトランスコードされたファイルが同じ名前を使用できなくなります。

  • ApsaraVideo VODは、トランスコードされたファイルの名前に自動的にサフィックスを追加します。 コード変換後に {MediaId}/{JobId}-watermark-{PlayDefinition} 形式の名前でMP4ファイルを生成するルールを設定した場合、ApsaraVideo VODは トランスコードされたファイルの名前にmp4サフィックス。

    例: 99f4f18c560c4f35459ef7 1tr/1b1196c767003c3dba0543055-watermark-sd.mp4

  • Make sure that your custom rules generate a unique name for each transcoded file to prevent files from being overwritten.

設定方法

トランスコードされたファイルに名前を付けるルールをカスタマイズするには、ApsaraVideo VOD APIのみを使用できます。 詳細については、「AddTranscodeTemplateGroup」をご参照ください。 この操作のパラメーターについては、TranscodeTemplateTranscodeFileRegularパラメーターをご参照ください。

設定例

public static JSONArray buildTranscodeTemplateList() {
        JSONObject transcodeTemplate = new JSONObject();
        // トランスコードされたファイルに名前を付けるルールをカスタマイズします。
        transcodeTemplate.put("TranscodeFileRegular", "{MediaId}/{JobId}-ウォーターマーク-{PlayDefinition}");
        // テンプレート名を指定します。
        transcodeTemplate.put("TemplateName" 、"testtemplate");
        // 定義を指定します。
        transcodeTemplate.put("定義" 、"LD");
        ......
        // ビデオトランスコーディング、オーディオトランスコーディング、および出力フォーマットの設定を行います。
        ......
        JSONArray transcodeTemplateList = new JSONArray();
        transcodeTemplateList.add(transcodeTemplate);
        transcodeTemplateListを返します。
    }

詳細については、「コード変換テンプレート」をご参照ください。