Benachrichtigungen erhalten, wenn Videos fertig sind

Dieses Thema zeigt Ihnen, wie Sie Benachrichtigungen erhalten, wenn Ihr Zencoder-Auftrag abgeschlossen ist.

Überblick

Nachdem ein Auftrag oder eine Ausgabedatei abgeschlossen ist, können Sie dies auf verschiedene Arten herausfinden.

  • Wir können eine HTTP-Anfrage mit den Details an Ihre Anwendung senden.
  • Sie können Ihre Benachrichtigungen mit einem Drittanbieter-Tool wie z ngrok. Dies ist nützlich, wenn Sie lokal entwickeln und Zencoder Ihren Entwicklungsserver nicht erreichen kann.
  • Wir können eine E-Mail senden.
  • Sie können das Zencoder-Dashboard auf den Auftragsstatus überprüfen.

Erhalten Sie HTTP / E-Mail-Benachrichtigungen

Fügen Sie hinzu, um HTTP- oder E-Mail-Benachrichtigungen zu erhalten Benachrichtigungsoptionen zu Ihrer API-Anfrage wie folgt:

{
  "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"
      ]
  }
  ]
}

In diesem Beispiel werden nach Abschluss der ersten Ausgabedatei zwei Benachrichtigungen gesendet:

  • E-Mail an admin@example.com mit Informationen über die Ausgabe und die Eingabe / den Job.
  • HTTP POST an http://user:password@example.com/zencoder mit einem Content-Type-Header auf 'application / json' mit Informationen zur Ausgabe und zur Eingabe / zum Job.

Wenn die zweite Ausgabedatei vollständig ist, werden vier weitere Benachrichtigungen gesendet:

  • HTTP POST an http://example.com/zencoder1 mit einem Content-Type-Header auf 'application / xml' mit Informationen zur Ausgabe und zur Eingabe.
  • HTTP POST an http://example.com/zencoder2 mit einem Content-Type-Header auf 'application / json' mit Informationen zur Ausgabe und zur Eingabe / zum Job.
  • E-Mail an admin@example.com mit Informationen über die Ausgabe und die Eingabe / den Job.
  • HTTP POST an http://example.com/zencoder3 mit einem Content-Type-Header auf 'application / json' mit Informationen zur Ausgabe und zur Eingabe / zum Job.

Wenn der Auftrag abgeschlossen ist, werden zwei weitere Benachrichtigungen gesendet:

  • E-Mail an admin@example.com mit Informationen über die Ausgabe und die Eingabe.
  • HTTP POST an http://user:password@example.com/zencoder mit einem Content-Type-Header auf 'application / json' mit Informationen zur Ausgabe und zur Eingabe.

Hinweis: Wenn Zencoder beim Senden einer Benachrichtigung keine erfolgreiche Verbindung zum Zielserver herstellen kann, wird die Benachrichtigung in die Warteschlange gestellt, um es erneut zu versuchen. Die Benachrichtigung wird bis zu 20 Mal versucht, wobei sich die Verzögerung zwischen den Versuchen jedes Mal verdoppelt.

HTTP-Benachrichtigungen

Benachrichtigungen enthalten umfangreiche Inhalte mit viel mehr Informationen zum Job sowie zu Eingabe- und Ausgabedateien. Der Hauptteil der Benachrichtigung kann JSON oder XML enthalten. Wenn das Hochladen fehlschlägt, enthalten Benachrichtigungen auch Informationen zu Fehler und Sicherungsserver verwendet.

Beispiel für eine Jobbenachrichtigung

{
  "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"
  }
}

Beispiel für eine Ausgabemeldung

{
  "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"
  }
}

Beispiel für einen Notification Handler

Nachfolgend finden Sie eine einfache PHP-Anwendung für die Handhabung von Benachrichtigungen.

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";
  ?>