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