1

先日、PHP SDK を使用してトランスコーディング ジョブをプッシュしようとすると、興味深いエラーが発生し始めました。

'Aws\ElasticTranscoder\Exception\ElasticTranscoderException' with message 'Error executing "CreateJob" on "https://elastictranscoder.us-east-1.amazonaws.com/2012-09-25/jobs"; AWS HTTP error: Client error: 400 ValidationException (client): Playlists '64k' is a duplicate of an output key. - {"message":"Playlists '64k' is a duplicate of an output key."}' in /var/www/html/app/1.0/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php:152

Elastic Transcoder にプッシュする設定:

        'PipelineId'      => $this->config['pipeline_id'],
        'OutputKeyPrefix' => "$prefix/",
        'Input'           => [
            'Key' => "uploads/$input_filename.$input_extension",
        ],
        'Playlists'       => [
            'OutputKeys' => [$bitrate],
            'Name'       => $bitrate,
            'Format'     => 'HLSv4',
        ],
        'Outputs'         => [
            'PresetId'        => $preset_id,
            'Key'             => $bitrate,
            'SegmentDuration' => '9.0',
        ],

は、ファイル$bitrate'64k'作成するトランスコーディング ジョブの (ターゲット) 最終結果です: 64k.ts64k.m3u864k_v4.m3u8.

最初に考えたのは、プレフィックスが既に存在するため、おそらく S3 キーの競合でしたが、出力バケットをクリアした後でもエラーは残りました。私が知る限り64k.ts64k.m3u8S3 では別のオブジェクトとして扱われています。

この場合の重複した出力キーは、S3 オブジェクトを参照しているのか、それともトランスコーディング ジョブの競合を参照しているのか?

詳細情報:Playlists:Nameビットレート 以外に変更すると$bitrate . '_v3'、エラーが回避されるようです。指定されたプレフィックスで出力バケットに移動し、問題なく名前64k_v3.m3u8を変更64k.m3u8できます。この場合、Elastic Transcoder が という名前のプレイリストの作成をブロックするのはなぜ64k.m3u8ですか?

4

0 に答える 0