개요
작업 또는 출력 파일이 완료된 후 여러 방법으로 이에 대해 알아볼 수 있습니다.
- 세부 정보와 함께 애플리케이션에 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";
?>