RenderIO
Concepts

File Metadata

RenderIO automatically extracts rich metadata from every processed file using ffprobe, including duration, resolution, codec, bitrate, and more.

File Metadata

Every file that RenderIO processes is automatically analyzed with ffprobe to extract detailed media metadata. This happens for command output files, stored files, and uploaded files -- no extra API calls needed.

Available metadata fields

The following fields are extracted and returned with every file:

FieldTypeDescriptionExample
durationnumberDuration in seconds30.5
file_typestringGeneral type of the media"video", "audio", "image"
file_formatstringContainer format"mp4", "webm", "png"
codecstringPrimary codec used"h264", "aac", "vp9"
pixel_formatstringPixel format (video/image only)"yuv420p", "rgb24"
mime_typestringMIME type of the file"video/mp4", "audio/mpeg"
widthnumberWidth in pixels (video/image only)1920
heightnumberHeight in pixels (video/image only)1080
frame_ratenumberFrames per second (video only)29.97
bitrate_video_kbnumberVideo bitrate in kilobits/sec2500
bitrate_audio_kbnumberAudio bitrate in kilobits/sec128
sample_ratenumberAudio sample rate in Hz44100
channelsnumberNumber of audio channels2
size_mbytesnumberFile size in megabytes12.4

Fields that do not apply to a particular file type are returned as null. For example, an audio-only file will have null for width, height, frame_rate, and pixel_format.

Where metadata appears

In command poll responses

When you poll a completed command, each entry in the output_files map includes its metadata:

curl https://renderio.dev/api/v1/commands/550e8400-e29b-41d4-a716-446655440000 \
  -H "X-API-KEY: ffsk_your_api_key"
{
  "command_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "SUCCESS",
  "output_files": {
    "out_video": {
      "file_id": "a1b2c3d4-...",
      "storage_url": "https://storage.renderio.dev/...",
      "status": "STORED",
      "filename": "output.mp4",
      "size_mbytes": 12.4,
      "duration": 30.5,
      "file_type": "video",
      "file_format": "mp4",
      "codec": "h264",
      "pixel_format": "yuv420p",
      "mime_type": "video/mp4",
      "width": 1920,
      "height": 1080,
      "frame_rate": 29.97,
      "bitrate_video_kb": 2500,
      "bitrate_audio_kb": 128
    }
  }
}

In file detail responses

You can also retrieve metadata for any individual file using its file_id:

curl https://renderio.dev/api/v1/files/a1b2c3d4-... \
  -H "X-API-KEY: ffsk_your_api_key"
{
  "file_id": "a1b2c3d4-...",
  "storage_url": "https://storage.renderio.dev/...",
  "status": "STORED",
  "rendi_store_type": "OUTPUT",
  "is_deleted": false,
  "size_mbytes": 12.4,
  "duration": 30.5,
  "file_type": "video",
  "file_format": "mp4",
  "codec": "h264",
  "pixel_format": "yuv420p",
  "mime_type": "video/mp4",
  "width": 1920,
  "height": 1080,
  "frame_rate": 29.97,
  "bitrate_video_kb": 2500,
  "bitrate_audio_kb": 128,
  "sample_rate": 44100,
  "channels": 2,
  "created_at": "2025-01-15T10:30:00Z"
}

Stored files and uploads

Metadata extraction is not limited to command outputs. Files stored via POST /api/v1/files/store-file and files uploaded via POST /api/v1/files/upload also get full metadata extraction automatically.

# Store a remote file - metadata is extracted automatically
curl -X POST https://renderio.dev/api/v1/files/store-file \
  -H "X-API-KEY: ffsk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "file_url": "https://example.com/my-video.mp4" }'

Use cases for metadata

Metadata makes it easy to validate your FFmpeg output without downloading the file:

  • Verify dimensions after resize: Check that width and height match your target resolution
  • Confirm codec after transcode: Ensure codec is "h264" after converting from another format
  • Check file size: Use size_mbytes to confirm compression was effective
  • Validate duration: Make sure duration matches the expected length after trimming or concatenation
  • Audio properties: Verify sample_rate and channels for audio processing workflows

Audio-specific fields

For audio files or media with audio tracks, these fields provide audio stream details:

FieldDescription
sample_rateSample rate in Hz (e.g., 44100, 48000)
channelsNumber of channels (1 = mono, 2 = stereo, 6 = 5.1 surround)
bitrate_audio_kbAudio bitrate in kilobits per second
codecAudio codec when the file is audio-only (e.g., "aac", "mp3", "opus")

On this page