The InputMetadata object
The InputMetadata object contains detailed information about your input file, populated automatically when Transcodely probes the source video. It is available on the Job object as input_metadata once the job reaches the probing status or later.
Use input metadata to inspect source properties (resolution, codec, frame rate, HDR format) before or during encoding. For delayed start jobs, metadata is available during the awaiting_confirmation status, allowing you to review source details and estimated costs before confirming.
Attributes
| Attribute | Type | Description |
|---|---|---|
format | string | Container format of the input file (e.g., mp4, mkv, webm, mov, avi). |
duration_ms | integer | Total duration in milliseconds. |
size_bytes | integer | File size in bytes. |
bit_rate | integer | Overall bitrate in bits per second. |
video | object | null | Video stream information. See Video stream info. null if the input has no video stream. |
audio | object | null | Audio stream information. See Audio stream info. null if the input has no audio stream. |
probed_at | string | ISO 8601 timestamp of when probing completed. |
{
"format": "mp4",
"duration_ms": 185400,
"size_bytes": 245366784,
"bit_rate": 10587000,
"video": {
"codec": "h264",
"width": 1920,
"height": 1080,
"frame_rate": 23.976,
"bit_rate": 10200000,
"pixel_format": "yuv420p",
"color_space": "bt709",
"color_transfer": "bt709",
"color_primaries": "bt709",
"duration_ms": 185400,
"chroma_location": "left",
"bit_depth": 8,
"interlaced": false,
"frame_count": 4445,
"display_aspect_ratio": "16:9",
"sample_aspect_ratio": "1:1"
},
"audio": {
"codec": "aac",
"sample_rate": 48000,
"channels": 2,
"channel_layout": "stereo",
"bit_rate": 320000,
"duration_ms": 185400,
"bits_per_sample": 32,
"language": "eng",
"is_default": true
},
"probed_at": "2025-02-28T10:00:02Z"
}Video stream info
The video object contains properties of the primary video stream.
| Attribute | Type | Description |
|---|---|---|
codec | string | Video codec identifier (e.g., h264, hevc, vp9, av1, prores, mpeg2video). |
width | integer | Frame width in pixels. |
height | integer | Frame height in pixels. |
frame_rate | number | Frame rate in frames per second (e.g., 23.976, 29.97, 30, 59.94, 60). |
bit_rate | integer | Video stream bitrate in bits per second. |
pixel_format | string | Pixel format (e.g., yuv420p, yuv422p10le, yuv420p10le, rgb24). The 10le suffix indicates 10-bit depth. |
color_space | string | null | Color space (e.g., bt709, bt2020nc, smpte170m). Indicates SDR vs HDR source. |
color_transfer | string | null | Transfer characteristics (e.g., bt709, smpte2084 for PQ/HDR10, arib-std-b67 for HLG). |
color_primaries | string | null | Color primaries (e.g., bt709, bt2020). |
duration_ms | integer | Video stream duration in milliseconds. |
chroma_location | string | null | Chroma sample location (e.g., left, center, topleft). |
bit_depth | integer | null | Bits per color channel. Common values: 8 (SDR), 10 (HDR), 12 (professional). |
interlaced | boolean | null | Whether the source is interlaced. false for progressive scan. |
frame_count | integer | null | Total number of frames in the video stream. |
display_aspect_ratio | string | null | Display aspect ratio (e.g., 16:9, 4:3, 2.35:1). |
sample_aspect_ratio | string | null | Sample (pixel) aspect ratio (e.g., 1:1 for square pixels). |
Detecting HDR content
You can identify HDR content by inspecting the color properties:
| HDR Format | color_transfer | color_primaries | bit_depth |
|---|---|---|---|
| SDR | bt709 | bt709 | 8 |
| HDR10 / HDR10+ | smpte2084 | bt2020 | 10 |
| HLG | arib-std-b67 | bt2020 | 10 |
| Dolby Vision | smpte2084 | bt2020 | 10 |
{
"codec": "hevc",
"width": 3840,
"height": 2160,
"frame_rate": 23.976,
"bit_rate": 45000000,
"pixel_format": "yuv420p10le",
"color_space": "bt2020nc",
"color_transfer": "smpte2084",
"color_primaries": "bt2020",
"duration_ms": 7200000,
"bit_depth": 10,
"interlaced": false,
"frame_count": 172657,
"display_aspect_ratio": "16:9",
"sample_aspect_ratio": "1:1"
}Audio stream info
The audio object contains properties of the primary audio stream.
| Attribute | Type | Description |
|---|---|---|
codec | string | Audio codec identifier (e.g., aac, opus, mp3, flac, ac3, eac3, pcm_s16le). |
sample_rate | integer | Sample rate in Hz (e.g., 44100, 48000, 96000). |
channels | integer | Number of audio channels (e.g., 1 for mono, 2 for stereo, 6 for 5.1). |
channel_layout | string | Channel layout (e.g., mono, stereo, 5.1, 7.1). |
bit_rate | integer | Audio stream bitrate in bits per second. |
duration_ms | integer | Audio stream duration in milliseconds. |
bits_per_sample | integer | null | Bits per audio sample (e.g., 16, 24, 32). |
language | string | null | Audio language as ISO 639-2 three-letter code (e.g., eng, spa, fra). |
is_default | boolean | null | Whether this is the default audio track. |
{
"codec": "eac3",
"sample_rate": 48000,
"channels": 6,
"channel_layout": "5.1",
"bit_rate": 640000,
"duration_ms": 7200000,
"bits_per_sample": 32,
"language": "eng",
"is_default": true
}Availability
The input_metadata field on the Job object is populated after probing completes. Its availability depends on the current job status:
| Job Status | input_metadata |
|---|---|
pending | null — probing has not started. |
probing | null — probing is in progress. |
awaiting_confirmation | Available — probing is complete, job is paused for cost review. |
processing | Available. |
completed | Available. |
failed | May be available if probing completed before the failure. |
canceled | May be available if probing completed before cancellation. |