# remote-ffmpeg **Repository Path**: stupid1t/remote-ffmpeg ## Basic Information - **Project Name**: remote-ffmpeg - **Description**: 远程调用批量转码命,并回调答应 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2020-06-05 - **Last Updated**: 2023-03-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README * 提供三个接口 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0605/112809_f14ce41d_1215820.png "屏幕截图.png") ## 查询视频的时长 **接口地址**:`/ffmpeg/api/duration` **请求方式**:`GET` **请求数据类型**:`*` **响应数据类型**:`*/*` **接口描述**: **请求参数**: **请求参数**: | 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |callBackUrl|回调地址|query|false|string|| |ext|回调附带参数|query|false|string|| |resourcePath|资源路径|query|false|string|| |taskId|任务ID|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 执行ffmpeg批命令 **接口地址**:`/ffmpeg/api/operation` **请求方式**:`POST` **请求数据类型**:`application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: 以下表示添加跑马灯和视频分片 ```javascript { "callBackUrl": "http://localhost:8080/ffmpeg/api/callback", "commands": [ { "command": "ffmpeg -i C:\\Users\\Administrator\\Downloads\\video\\marry\\625.mp4 -vf drawtext=:text='拍摄时间2021-9-30,视频仅供各位亲戚朋友们观看分享,不要外传哦!':expansion=normal:fontfile=C:\\Windows\\Fonts\\simhei.ttf:y=10:x=(mod(5*n\\,w+tw)-tw):fontcolor=white:fontsize=40:shadowx=2:shadowy=2 -y C:\\Users\\Administrator\\Downloads\\video\\marry\\625-1.mp4", "name": "跑马灯添加" }, { "command": "ffmpeg -i C:\\Users\\Administrator\\Downloads\\video\\marry\\625-1.mp4 -c copy -strict -2 -bsf:v h264_mp4toannexb -f hls -hls_list_size 0 -hls_time 5 C:\\Users\\Administrator\\Downloads\\video\\marry\\625.m3u8", "name": "视频分片" } ], "ext": "", "resourcePath": "C:\\Users\\Administrator\\Downloads\\video\\marry\\625.mp4", "taskDesc": "婚礼视频", "taskId": "625" } ``` **请求参数**: **请求参数**: | 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |param|param|body|true|OperationRequestParam|OperationRequestParam| |  callBackUrl|回调地址||false|string|| |  commands|命令||false|array|CommandDesc| |    command|子命令||false|string|| |    name|子命令标题||false|string|| |  ext|回调附带参数||false|string|| |  resourcePath|资源路径||false|string|| |  taskDesc|批命令名称||false|string|| |  taskId|任务ID||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|ResponseEntity| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |body||object|| |statusCode|可用值:100 CONTINUE,101 SWITCHING_PROTOCOLS,102 PROCESSING,103 CHECKPOINT,200 OK,201 CREATED,202 ACCEPTED,203 NON_AUTHORITATIVE_INFORMATION,204 NO_CONTENT,205 RESET_CONTENT,206 PARTIAL_CONTENT,207 MULTI_STATUS,208 ALREADY_REPORTED,226 IM_USED,300 MULTIPLE_CHOICES,301 MOVED_PERMANENTLY,302 FOUND,302 MOVED_TEMPORARILY,303 SEE_OTHER,304 NOT_MODIFIED,305 USE_PROXY,307 TEMPORARY_REDIRECT,308 PERMANENT_REDIRECT,400 BAD_REQUEST,401 UNAUTHORIZED,402 PAYMENT_REQUIRED,403 FORBIDDEN,404 NOT_FOUND,405 METHOD_NOT_ALLOWED,406 NOT_ACCEPTABLE,407 PROXY_AUTHENTICATION_REQUIRED,408 REQUEST_TIMEOUT,409 CONFLICT,410 GONE,411 LENGTH_REQUIRED,412 PRECONDITION_FAILED,413 PAYLOAD_TOO_LARGE,413 REQUEST_ENTITY_TOO_LARGE,414 URI_TOO_LONG,414 REQUEST_URI_TOO_LONG,415 UNSUPPORTED_MEDIA_TYPE,416 REQUESTED_RANGE_NOT_SATISFIABLE,417 EXPECTATION_FAILED,418 I_AM_A_TEAPOT,419 INSUFFICIENT_SPACE_ON_RESOURCE,420 METHOD_FAILURE,421 DESTINATION_LOCKED,422 UNPROCESSABLE_ENTITY,423 LOCKED,424 FAILED_DEPENDENCY,425 TOO_EARLY,426 UPGRADE_REQUIRED,428 PRECONDITION_REQUIRED,429 TOO_MANY_REQUESTS,431 REQUEST_HEADER_FIELDS_TOO_LARGE,451 UNAVAILABLE_FOR_LEGAL_REASONS,500 INTERNAL_SERVER_ERROR,501 NOT_IMPLEMENTED,502 BAD_GATEWAY,503 SERVICE_UNAVAILABLE,504 GATEWAY_TIMEOUT,505 HTTP_VERSION_NOT_SUPPORTED,506 VARIANT_ALSO_NEGOTIATES,507 INSUFFICIENT_STORAGE,508 LOOP_DETECTED,509 BANDWIDTH_LIMIT_EXCEEDED,510 NOT_EXTENDED,511 NETWORK_AUTHENTICATION_REQUIRED|string|| |statusCodeValue||integer(int32)|integer(int32)| **响应示例**: ```javascript { "body": {}, "statusCode": "", "statusCodeValue": 0 } ``` ## 查询批命令的执行进度 **接口地址**:`/ffmpeg/api/query/{taskIds}` **请求方式**:`GET` **请求数据类型**:`*` **响应数据类型**:`*/*` **接口描述**: **请求参数**: **请求参数**: | 参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |taskIds|taskIds|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ```