1

私はPHPでいくつかのビデオを扱っており、zencoderを使用してビデオをエンコードし、s3に保存してから、すべて完了したらサイトに通知します。json として返された通知を処理し、保存されたビデオへの新しい URL を引き出す必要があるまで、すべてが機能しています。

これ:

$notification = $zencoder->notifications->parseIncoming();

if($notification->job->state == "finished")
{
    $encode_id=$notification->job->id;
}

正常に動作します。URLにアクセスするためのポインタが必要です。

通知は次のように送信されます。

{
    "output": {
        "frame_rate": 30.0,
        "label": "video_id_",
        "total_bitrate_in_kbps": 3115,
        "md5_checksum": null,
        "channels": "2",
        "audio_codec": "aac",
        "duration_in_ms": 4225,
        "video_codec": "h264",
        "url": "http://my_url/597bd3592bf4a9d70f04dc676c44de6d.mp4",
        "thumbnails": [{
            "label": null,
            "images": [{
                "url": "http://my_url/_key__0000.png",
                "format": "PNG",
                "dimensions": "640x360",
                "file_size_bytes": 482422
            }]
        }],
        "video_bitrate_in_kbps": 3052,
        "width": 640,
        "format": "mpeg4",
        "height": 360,
        "audio_sample_rate": 44100,
        "state": "finished",
        "audio_bitrate_in_kbps": 63,
        "id": 41424918,
        "file_size_in_bytes": 1625847
    },
    "input": {
        "frame_rate": 30.0,
        "total_bitrate_in_kbps": 3867,
        "md5_checksum": null,
        "channels": "2",
        "audio_codec": "aac",
        "duration_in_ms": 4167,
        "video_codec": "h264",
        "video_bitrate_in_kbps": 3764,
        "width": 640,
        "format": "mpeg4",
        "height": 360,
        "audio_sample_rate": 44100,
        "state": "finished",
        "audio_bitrate_in_kbps": 103,
        "id": 22371764,
        "file_size_in_bytes": 2028809
    },
    "job": {
        "created_at": "2012-07-14T22:25:08Z",
        "test": true,
        "updated_at": "2012-07-14T22:25:47Z",
        "submitted_at": "2012-07-14T22:25:08Z",
        "pass_through": null,
        "state": "finished",
        "id": 22377083
    }
}

しかし、次のようなもの $video_file=$notification->output->url;はありません。私は何が欠けていますか?

4

1 に答える 1

2

parseIncoming メソッドを使用したくない場合... 使用:

$notification = json_decode(trim(file_get_contents('php://input')), true);

次のように:

$notification = $zencoder->notifications->parseIncoming();

'true' の 2 番目のパラメーターは、オブジェクトに並置された配列として結果をフォーマットします。そこから、次のようなすべての値にアクセスできます。

$notification['output']['file_size_in_bytes'];

parseIncoming メソッドは stdClass を返すため、その中の値を参照するには次のようにします。

$notification->key
于 2012-07-30T23:34:15.493 に答える