| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |

$ curl -X GET http://api.host.com/providers
[
"elastictranscoder",
"elementalconductor",
"encodingcom"
]$ curl -X GET http://api.host.com/providers/encodingcom
{
"name": "encodingcom",
"capabilities": {
"input": [
"prores",
"h264"
],
"output": [
"mp4",
"hls",
"webm"
],
"destinations": [
"akamai",
"s3"
]
},
"health": {
"ok": true
},
"enabled": true
}Given a JSON file called preset.json:
{
"providers": ["elastictranscoder", "elementalconductor", "encodingcom"],
"preset": {
"name": "sample_preset",
"description": "This is an example preset",
"container": "m3u8",
"profile": "Main",
"profileLevel": "3.1",
"rateControl": "VBR",
"video": {
"height": "720",
"width": "1080",
"codec": "h264",
"bitrate": "1000000",
"gopSize": "90",
"gopMode": "fixed",
"interlaceMode": "progressive"
},
"audio": {
"codec": "aac",
"bitrate": "64000"
}
}
}The Encoding API will try to create the preset in all providers specified in the providers field. It will also create a PresetMap registry on Redis, which is a map for all the provider's PresetIDs.
You can just set width or height instead of both if you want to maintain source's aspect ratio.
$ curl -X POST -d @preset.json http://api.host.com/presets
{
"Results": {
"elastictranscoder": {
"PresetID": "1477507104705-jb2p0b",
"Error": ""
},
"elementalconductor": {
"PresetID": "sample_preset",
"Error": ""
},
"encodingcom": {
"PresetID": "sample_preset",
"Error": ""
}
},
"PresetMap": "sample_preset"
}$ curl -XDELETE http://api.host.com/presets/preset-1
Sometimes users want to reuse a preset that's already defined in the provider, so it's possible to skip the preset creation and just map it to a Video Transcoding API preset. This is called a PresetMap in the API, and creating a new presetmap is very simple:
$ curl -XPOST -d '{"name":"1080p_mp4", "providerMapping": {"elastictranscoder": "1351620000001-000001"}, "output": {"extension": "mp4"}}' http://api.host.com/presetmaps
{
"name": "1080p_mp4",
"providerMapping": {
"elastictranscoder": "1351620000001-000001"
},
"output": {
"extension": "mp4"
}
}$ curl -X GET http://api.host.com/presetmaps
{
"1080p_mp4": {
"name": "1080p_mp4",
"providerMapping": {
"elastictranscoder": "1351620000001-000001"
},
"output": {
"extension": "mp4"
}
},
"sample_preset": {
"name": "sample_preset",
"providerMapping": {
"elastictranscoder": "1477507104705-jb2p0b",
"elementalconductor": "sample_preset",
"encodingcom": "sample_preset"
},
"output": {
"extension": "m3u8"
}
}
}$ curl -XDELETE http://api.host.com/presetmaps/preset-1
To create a job you need to specify a few required parameters: one or more outputs (preset + file name), a provider and a video source. Additionally, you can also provide some streaming parameters, used for Adaptive Streaming outputs (such as HLS and DASH, currently only HLS is supported).
See an example below for job.json:
{
"outputs": [
{"preset": "720p_mp4", "fileName": "my_video_720p.mp4"},
{"preset": "1080p_mp4", "fileName": "my_video_1080p.mp4"},
{"preset": "256p_hls", "fileName": "hls/my_video_480p.m3u8"},
{"preset": "480p_hls", "fileName": "hls/my_video_480p.m3u8"},
{"preset": "720p_hls", "fileName": "hls/my_video_720p.m3u8"},
{"preset": "1080p_hls", "fileName": "hls/my_video_1080p.m3u8"},
{"preset": "2160p_hls", "fileName": "hls/my_video_2160p.m3u8"}
],
"provider": "encodingcom",
"source": "s3://somebucket/folder/my_video.mov",
"streamingParams": {
"playlistFileName": "hls/playlist.m3u8",
"segmentDuration": 5,
"protocol": "hls"
}
}Then, make a POST request to the API:
$ curl -X POST -H "Content-Type: application/json" -d @job.json http://api.host.com/jobs
{"jobId":"95e1ebbd6330f2b3"}All file names are optional, the transcoding-api will pick some defaults:
With the jobId returned by job creation:
$ curl -X GET http://api.host.com/jobs/cbdf9a3886b84c10
{
"providerJobId": "1477508730516-t2yo6o",
"status": "finished",
"providerName": "elastictranscoder",
"progress": 100,
"providerStatus": {
"outputs": {
"cbdf9a3886b84c10/awesome_video.mp4": ""
}
},
"output": {
"destination": "s3://mybucket/cbdf9a3886b84c10",
"files": [
{
"path": "s3://mybucket/cbdf9a3886b84c10/awesome_video.mp4",
"container": "mp4",
"videoCodec": "H.264",
"height": 1080,
"width": 1920
}
]
},
"mediaInfo": {
"duration": 349315000000,
"height": 1080,
"width": 1920
}
}Please notice the the "providerStatus" field is provider specific and intended for debugging. All the other fields are reported in all providers.
| Back | FazBrowse Home | New Git URL |