비디오 완료 시 알림 받기

이 항목에서는 Zencoder 작업이 완료되었을 때 알림을 받는 방법을 보여 줍니다.

개요

작업 또는 출력 파일이 완료된 후 여러 방법으로 이에 대해 알아볼 수 있습니다.

  • 세부 정보와 함께 애플리케이션에 HTTP 요청을 게시 할 수 있습니다.
  • 다음과 같은 타사 도구를 사용하여 알림을 요청할 수 있습니다. ngrok . 이것은 로컬에서 개발 중이고 Zencoder가 개발 서버에 연결할 수 없을 때 유용합니다.
  • 이메일을 보낼 수 있습니다.
  • Zencoder 대시 보드에서 작업 상태를 확인할 수 있습니다.

HTTP / 이메일 알림 받기

HTTP 또는 이메일 알림을 받으려면 다음을 추가하십시오. 알림 옵션다음과 같이 API 요청에

{
  "api_key": "93h630j1dsyshjef620qlkavnmzui3",
  "input": "s3://bucket-name/file-name.avi",
  "notifications": [
  "http://user:password@example.com/zencoder",
  "admin@example.com"
  ],
  "outputs": [
  {
      "label": "web",
      "url": "s3://output-bucket/web.mp4",
      "size": "512x384",
      "notifications": [
      "http://user:password@example.com/zencoder",
      "admin@example.com"
      ]
  },
  {
      "label": "iphone",
      "url": "s3://output-bucket/iphone.m4v",
      "size": "480x320",
      "notifications": [
      {"format": "xml", "url": "http://user:password@example.com/zencoder1"},
      {"format": "json", "url": "http://user:password@example.com/zencoder2"},
      "http://example.com/zencoder3",
      "admin@example.com"
      ]
  }
  ]
}

이 예에서 첫 번째 출력 파일이 완료되면 두 개의 알림이 전송됩니다.

  • 출력 및 입력/작업에 대한 정보를 전자 메일로 보냅니다. admin@example.com
  • HTTP POST 대상http://user:password@example.com/zencoder출력 및 입력 / 작업에 대한 정보와 함께 Content-Type 헤더를 'application / json'으로 설정합니다.

두 번째 출력 파일이 완료되면 4 개의 추가 알림이 전송됩니다.

  • HTTP POST 대상http://example.com/zencoder1 Content-Type 헤더가 'application / xml'로 설정되고 출력 및 입력에 대한 정보가 있습니다.
  • HTTP POST 대상http://example.com/zencoder2출력 및 입력 / 작업에 대한 정보와 함께 Content-Type 헤더를 'application / json'으로 설정합니다.
  • 출력 및 입력/작업에 대한 정보를 전자 메일로 보냅니다. admin@example.com
  • HTTP POST 대상http://example.com/zencoder3출력 및 입력 / 작업에 대한 정보와 함께 Content-Type 헤더를 'application / json'으로 설정합니다.

작업이 완료되면 두 개의 추가 알림이 전송됩니다.

  • 받는 사람admin@example.com출력 및 입력에 대한 정보와 함께.
  • HTTP POST 대상http://user:password@example.com/zencoder Content-Type 헤더가 'application / json'으로 설정되고 출력 및 입력에 대한 정보가 있습니다.

참고: 알림을 보낼 때 Zencoder가 대상 서버에 성공적으로 연결할 수없는 경우 알림이 대기열에 추가되어 다시 시도합니다. 알림은 최대 20 번 시도되며 시도 간격은 매번 두 배로 늘어납니다.

HTTP 알림

알림에는 작업 및 입력 및 출력 파일에 대한 훨씬 더 많은 정보가 포함 된 풍부한 콘텐츠가 포함됩니다. 알림 본문에는 JSON 또는 XML이 포함될 수 있습니다. 업로드가 실패하면 알림에 다음 정보도 포함됩니다. 사용 된 오류 및 백업 서버 .

작업 알림 예

{
  "outputs":[
  {
      "height":120,
      "audio_sample_rate":8000,
      "frame_rate":8.0,
      "channels":"1",
      "duration_in_ms":1920,
      "video_bitrate_in_kbps":70,
      "video_codec":"h264",
      "format":"mpeg4",
      "audio_codec":"aac",
      "label":null,
      "file_size_in_bytes":17938,
      "width":160,
      "audio_bitrate_in_kbps":9,
      "id":235314,
      "total_bitrate_in_kbps":79,
      "state":"finished",
      "url":"ftp://example.com/file.mp4",
      "md5_checksum":"7f106918e02a69466afa0ee014172496",
      "thumbnails": [
      {
          "label":"poster",
          "images":
          [
          {
              "url": "ftp://example.com/images/123.png",
              "format": "PNG",
              "file_size_bytes": 1273573,
              "dimensions": "1280x720"
          }
          ]
      }
      ]
  },
  {
      "height":120,
      "audio_sample_rate":8000,
      "frame_rate":8.0,
      "channels":"1",
      "duration_in_ms":1920,
      "video_bitrate_in_kbps":70,
      "video_codec":"h264",
      "format":"mpeg4",
      "audio_codec":"aac",
      "label":null,
      "file_size_in_bytes":17938,
      "width":160,
      "audio_bitrate_in_kbps":9,
      "id":235314,
      "total_bitrate_in_kbps":79,
      "state":"finished",
      "url":"ftp://example.com/file.mp4",
      "md5_checksum":"7f106918e02a69466afa0ee014172496",
      "thumbnails": [
      {
          "label":"poster",
          "images":
          [
          {
              "url": "ftp://example.com/images/123.png",
              "format": "PNG",
              "file_size_bytes": 1273573,
              "dimensions": "1280x720"
          }
          ]
      }
      ]
  }
  ],
  "job":{
      "created_at":"2011-09-27T04:20:10Z",
      "pass_through":null,
      "updated_at":"2011-09-27T04:21:18Z",
      "submitted_at":"2011-09-27T04:20:10Z",
      "id":172151,
      "state":"finished"
  },
  "input":{
      "height":120,
      "audio_sample_rate":8000,
      "frame_rate":8.0,
      "channels":"1",
      "duration_in_ms":1552,
      "video_bitrate_in_kbps":32,
      "video_codec":"mpeg4",
      "format":"mpeg4",
      "audio_codec":"aac",
      "file_size_in_bytes":13960,
      "width":160,
      "audio_bitrate_in_kbps":9,
      "id":172149,
      "state":"finished",
      "total_bitrate_in_kbps":41,
      "md5_checksum":"7f106918e02a69466afa0ee014174143"
  }
}

출력 알림 예

{
  "output":{
      "height":120,
      "audio_sample_rate":8000,
      "frame_rate":8.0,
      "channels":"1",
      "duration_in_ms":1920,
      "video_bitrate_in_kbps":70,
      "video_codec":"h264",
      "format":"mpeg4",
      "audio_codec":"aac",
      "label":null,
      "file_size_in_bytes":17938,
      "width":160,
      "audio_bitrate_in_kbps":9,
      "id":235314,
      "total_bitrate_in_kbps":79,
      "state":"finished",
      "url":"ftp://example.com/file.mp4",
      "md5_checksum":"7f106918e02a69466afa0ee014172496",
      "thumbnails":
      [
      {
          "label":"poster",
          "images":
          [
          {
              "url": "ftp://example.com/images/123.png",
              "format": "PNG",
              "file_size_bytes": 1273573,
              "dimensions": "1280x720"
          }
          ]
      }
      ]
  },
  "job":{
      "created_at":"2011-09-27T04:20:10Z",
      "pass_through":null,
      "updated_at":"2011-09-27T04:21:18Z",
      "submitted_at":"2011-09-27T04:20:10Z",
      "id":172151,
      "state":"finished"
  },
  "input":{
      "height":120,
      "audio_sample_rate":8000,
      "frame_rate":8.0,
      "channels":"1",
      "duration_in_ms":1552,
      "video_bitrate_in_kbps":32,
      "video_codec":"mpeg4",
      "format":"mpeg4",
      "audio_codec":"aac",
      "file_size_in_bytes":13960,
      "width":160,
      "audio_bitrate_in_kbps":9,
      "id":172149,
      "state":"finished",
      "total_bitrate_in_kbps":41,
      "md5_checksum":"7f106918e02a69466afa0ee014174143"
  }
}

샘플 알림 핸들러

다음은 알림을 처리하기 위한 간단한 PHP 앱입니다.

getMessage();
      $notification = $json;
  }

  $logEntry = $notification."\n \n";

  // Tell PHP where it can find the log file and tell PHP to open it
  // and add the string we created earlier to it.
      $logFileLocation = "live-log.txt";
      $fileHandle      = fopen($logFileLocation, 'a') or die("-1");
      fwrite($fileHandle, $logEntry);
      fclose($fileHandle);

  // line below is displayed when you browse the app directly
  echo "Zencoder callback app is running";
  ?>