API
FFmpeg Commands

Get Command Status

Changed on

Get the status of a previously submitted FFmpeg command. Works for regular commands and chained commands.

get/v1/commands/{command_id}

Request

  • Base URL
    https://api.rendi.dev
  • URL
    https://api.rendi.dev/v1/commands/{command_id}
  • Auth
    API key in header X-API-KEY

Path parameters

command_idstring required

The UUID of the FFmpeg command to check status for

Query parameters

presigned_ttl_secondsinteger nullable

If set, output files that are private AND already stored return storage_url as a presigned URL valid for this many seconds. For any other file (public, not yet stored, or deleted) the default storage_url is returned unchanged. See the private files guide.

Response

Successful Response

command_idstring required

Unique identifier for the submitted command

environment_namestring nullable required

The environment this command was created in (e.g., 'main', 'test', 'dev').

status'QUEUED' | 'PROCESSING' | 'PREPARED_FFMPEG_COMMAND' | 'FAILED' | 'SUCCESS' required
processing_stage'DOWNLOADING' | 'PREPARING_INPUT_FILES' | 'FFMPEG_PROCESSING' | 'UPLOADING'
command_type'FFMPEG_COMMAND' | 'FFMPEG_CHAINED_COMMANDS' required
error_statusstring nullable

Status of any error that occurred during command execution

error_messagestring nullable

Error details if the command failed

total_processing_secondsnumber nullable

Processing time, in seconds, since receiving the command, this includes network times, parsing times, and FFMPEG command execution time

queued_secondsnumber nullable

Time, in seconds, the command waited in the queue before a server started processing it. While the command is still queued, this is the time waited so far. Includes time spent waiting for free vCPUs while your account's other commands are using its vCPU limit.

ffmpeg_command_run_secondsnumber nullable

The exact time the specific FFMPEG command took on our servers, in seconds

vcpu_countinteger nullable

Number of virtual CPUs used for the command

output_filesobject nullable

Dictionary mapping file aliases to their output file storage, for output folder, the key is 'OUTPUT_FOLDER'

original_requestobject required

The original request that was sent to the server

processing_quota_usednumber nullable

Amount of processing quota used in MB

metadataobject nullable

Metadata stored with the command, used for custom tracking and reporting

Example response

{
  "command_id": "123e4567-e89b-12d3-a456-426614174000",
  "command_type": "FFMPEG_COMMAND",
  "environment_name": "main",
  "ffmpeg_command_run_seconds": 19.58051347732544,
  "metadata": {
    "key": "value"
  },
  "original_request": {
    "ffmpeg_command": "-i {{in_1}} -ss 00:00 -to 00:30 -filter_complex \"[0:v]split=2[vid1][vid2];[vid1]scale=trunc(oh*a/2)*2:320:force_original_aspect_ratio=decrease,pad=trunc(oh*a/2)*2:320:-1:-1[320p];[vid2]scale=trunc(oh*a/2)*2:180:force_original_aspect_ratio=decrease,pad=trunc(oh*a/2)*2:180:-1:-1[180p]\" -map [320p] -map 0:a -c:a copy -c:v libx264 -preset medium {{out_1}}  -map [180p] -map 0:a -c:a copy -c:v libx264 -preset medium {{out_2}}",
    "input_files": {
      "in_1": "https://storage.rendi.dev/sample/sample.avi"
    },
    "max_command_run_seconds": 300,
    "output_files": {
      "out_1": "output_320p.mp4",
      "out_2": "output_180p.mp4"
    },
    "vcpu_count": 8
  },
  "output_files": {
    "out_1": {
      "bitrate_audio_kb": 242.349609375,
      "bitrate_video_kb": 370.5654296875,
      "codec": "h264",
      "duration": 30,
      "file_format": "mp4",
      "file_id": "f775b15d-67e9-4235-b89f-4bb33c0a5f57",
      "file_type": "video",
      "frame_rate": 24,
      "height": 320,
      "is_varying_frame_rate": false,
      "mime_type": "video/mp4",
      "pixel_format": "yuv420p",
      "size_mbytes": 2.2677812576293945,
      "storage_url": "https://storage.rendi.dev/files/224ea098-5c10-419b-8a77-707d89443c56/42c95292-d953-4b5a-8a58-cf1513363a33/output_320p.mp4",
      "timebase": "1/25",
      "width": 568
    },
    "out_2": {
      "bitrate_audio_kb": 239.9833984375,
      "bitrate_video_kb": 160.955078125,
      "codec": "h264",
      "duration": 596.459,
      "file_format": "mp4",
      "file_id": "9df00eca-3221-49c6-8a64-07850c9a5921",
      "file_type": "video",
      "frame_rate": 24,
      "height": 180,
      "is_varying_frame_rate": false,
      "mime_type": "video/mp4",
      "pixel_format": "yuv420p",
      "size_mbytes": 29.620187759399414,
      "storage_url": "https://storage.rendi.dev/files/224ea098-5c10-419b-8a77-707d89443c56/42c95292-d953-4b5a-8a58-cf1513363a33/output_180p.mp4",
      "timebase": "1/25",
      "width": 320
    }
  },
  "processing_quota_used": 12.5,
  "queued_seconds": 0.42,
  "status": "SUCCESS",
  "total_processing_seconds": 24.955581,
  "vcpu_count": 8
}

Changes