for localtest: place your videos inside ./videos folder
for server test: see the docker-compose.yml, which ./videos folder is projected, and then put the videos inside that folder.
See the docker-compose.yml
BODY
{
"cakes" : [
{
"hash": "9b9a6b534566e1425b9a59e4a3ad8934",
"ranges": [
{
"start": 0,
"end": 140
},
{
"start": 786,
"end": 901
}
],
"clips": [
{
"offset": 0,
"video": {
"offset": 0,
"ref": "77b2229en0b5dn4f4fn88e2n4798bfff66aa",
"duration": 1118
}
}
]
},
{
"hash": "e19cb00c065230a22f3ee596d9d2f3da",
"ranges": [
{
"start": 0,
"end": 156
},
{
"start": 325,
"end": 463
},
{
"start": 784,
"end": 915
}
],
"clips": [
{
"offset": 0,
"video": {
"offset": 0,
"ref": "42452a7dne624n4363nbaadn64d422d53f12",
"duration": 915
}
}
]
},
{
"hash": "dee075b4358e45d991a3862698b686f4",
"ranges": [
{
"start": 0,
"end": 169
}
],
"clips": [
{
"offset": 0,
"video": {
"offset": 0,
"ref": "4f7b022fn88b3n4703n9ac4n642fbdcc817a",
"duration": 513
}
}
]
},
{
"hash": "79a36da9e910f3e97677ecf9d4ef0092",
"ranges": [
{
"start": 580,
"end": 786
}
],
"clips": [
{
"offset": 0,
"video": {
"offset": 0,
"ref": "77b2229en0b5dn4f4fn88e2n4798bfff66aa",
"duration": 1118
}
},
{
"offset": 273,
"adjust-crop": {
"mode": "trim",
"trim-rect": {
"right": "88.8889"
}
},
"video": {
"offset": 0,
"ref": "4f7b022fn88b3n4703n9ac4n642fbdcc817a",
"duration": 513
}
}
]
}
]
}
RESPONSE 200
{
"ffmpeg_cakes":
[
"9b9a6b534566e1425b9a59e4a3ad8934-0-140",
"9b9a6b534566e1425b9a59e4a3ad8934-786-901",
"e19cb00c065230a22f3ee596d9d2f3da-0-156",
"e19cb00c065230a22f3ee596d9d2f3da-325-463",
"e19cb00c065230a22f3ee596d9d2f3da-784-915",
"dee075b4358e45d991a3862698b686f4-0-169",
"79a36da9e910f3e97677ecf9d4ef0092-580-786"
]
}
Redis key, value
If in progress
key: 79a36da9e910f3e97677ecf9d4ef0092-580-786
value:
{
'out_time': '00:00:03.133333',
'dup_frames': '0',
'total_size': '1436163',
'speed': '0.383x',
'frame': '116',
'percent': 56,
'out_time_ms': '3133333',
'fps': '14.2',
'stream_0_0_q': '24.0',
'progress': 'continue',
'bitrate': '3666.8kbits/s',
'drop_frames': '0'
}
If ended
key: e19cb00c065230a22f3ee596d9d2f3da-0-156
value:
{
'out_time': '00:00:05.133333',
'dup_frames': '0',
'total_size': '3547511',
'speed': '1.09x',
'frame': '156',
'percent': 100,
'out_time_ms': '5133333',
'fps': '33.3',
'stream_0_0_q': '-1.0',
'progress': 'end',
'bitrate': '5528.6kbits/s',
'drop_frames': '0'
}
POST /app/concat
BODY
{
"sequence" : [
{
"src": "9b9a6b534566e1425b9a59e4a3ad8934-0-140",
"start": 0,
"end": 117
}, {
"src": "e19cb00c065230a22f3ee596d9d2f3da-0-156"
}, {
"src": "dee075b4358e45d991a3862698b686f4-0-169"
}, {
"src": "e19cb00c065230a22f3ee596d9d2f3da-325-463"
}, {
"src": "79a36da9e910f3e97677ecf9d4ef0092-580-786"
}, {
"src": "9b9a6b534566e1425b9a59e4a3ad8934-786-901"
}, {
"src": "e19cb00c065230a22f3ee596d9d2f3da-784-915"
}
]
}
RESPONSE 200
# if failed, for example, some video parts are missing.
{"success": false, "result_file_name": "demo-20161023-045228.mp4"}
# if good
{"success": true, "result_file_name": "demo-20161023-045558.mp4"}