Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 27 additions & 8 deletions api/TimeAddressableMediaStore.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1044,18 +1044,30 @@ paths:
video:
summary: Video Flow - H.264 Codec
externalValue: examples/flow-get-200-video-h264.json
audio:
summary: Audio Flow - AAC Codec
externalValue: examples/flow-get-200-audio-aac.json
rawvideo:
summary: Video Flow - Uncompressed (Quicktime)
externalValue: examples/flow-get-200-video-raw.json
jpegimage:
summary: Image Flow - JPEG Codec
externalValue: examples/flow-get-200-image-jpeg.json
mxf_jpeg2k:
summary: Video Flow - JPEG-2000 (MXF container)
externalValue: examples/flow-get-200-video-jpeg-mxf.json
mxf_h264:
summary: Video Flow - H.264 (MXF container)
externalValue: examples/flow-get-200-video-h264-mxf.json
jp2_jpeg2k_singleframe:
summary: Video Flow - JPEG-2000 (JP2 container, single frame segments)
externalValue: examples/flow-get-200-video-jpeg-jp2.json
video_vfr:
summary: Video Flow - H.264 Codec, Variable Frame Rate
externalValue: examples/flow-get-200-video-h264-vfr.json
audio:
summary: Audio Flow - AAC Codec
externalValue: examples/flow-get-200-audio-aac.json
audio_wav:
summary: Audio Flow - PCM
externalValue: examples/flow-get-200-audio-wav.json
jpegimage:
summary: Image Flow - JPEG Codec
externalValue: examples/flow-get-200-image-jpeg.json
ttml:
summary: Data Flow - TTML
description: TAMS can also be used for storing non-AV content such as subtitles or event data
Expand Down Expand Up @@ -2127,8 +2139,15 @@ paths:
application/json:
schema:
$ref: schemas/flow-storage.json
example:
$ref: examples/flow-storage-post-201.json
examples:
mpegts:
summary: MPEG-TS container Flow
description: Flow using MPEG-TS as the container format, writing to a cloud object store
externalValue: examples/flow-storage-post-201.json
wav_proxy:
summary: WAV Flow
description: Flow using WAV as the container format, writing to an HTTP interface running on the same origin as the TAMS API
externalValue: examples/flow-storage-post-201-wav.json
"400":
description: Bad request. Invalid Flow storage request JSON or the Flow 'container' is not set. If object_ids supplied, some or all already exist.
"403":
Expand Down
27 changes: 27 additions & 0 deletions api/examples/flow-get-200-audio-wav.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"id": "fd25a9fc-3b58-4dc1-93d4-81c52b206562",
"source_id": "8af9d4a3-aff7-44e8-b384-d2bfc0b93533",
"generation": 0,
"created": "2025-02-24T11:33:46Z",
"metadata_updated": "2025-02-24T11:33:46Z",
"segments_updated": "2025-02-24T11:48:22Z",
"description": "Radio off-air recording",
"label": "Radio off-air",
"format": "urn:x-nmos:format:audio",
"created_by": "tams-dev",
"updated_by": "tams-dev",
"tags": {
"input_quality": "contribution"
},
"codec": "audio/x-raw-int",
"container": "audio/wav",
"avg_bit_rate": 192,
"essence_parameters": {
"sample_rate": 48000,
"channels": 2,
"bit_depth": 16,
"unc_parameters": {
"unc_type": "interleaved"
}
}
}
47 changes: 47 additions & 0 deletions api/examples/flow-get-200-video-h264-mxf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"id": "1491ecfb-813d-4453-9554-e417d03161ba",
"source_id": "3e6201e2-4b38-402a-a08f-e2529ec98229",
"generation": 1,
"created": "2026-02-24T09:35:25Z",
"metadata_updated": "2026-02-24T09:36:02Z",
"segments_updated": "2026-02-24T15:38:21Z",
"description": "Video Flow in a MXF container, H264 codec",
"label": "VFX Render - Proxy Quality",
"format": "urn:x-nmos:format:video",
"created_by": "tams-dev",
"updated_by": "tams-dev",
"tags": {
"input_quality": "web"
},
"codec": "video/h264",
"container": "application/mxf",
"avg_bit_rate": 6000,
"essence_parameters": {
"frame_rate": {
"numerator": 50,
"denominator": 1
},
"frame_width": 1920,
"frame_height": 1080,
"bit_depth": 8,
"interlace_mode": "progressive",
"colorspace": "BT709",
"transfer_characteristic": "SDR",
"aspect_ratio": {
"numerator": 16,
"denominator": 9
},
"pixel_aspect_ratio": {
"numerator": 1,
"denominator": 1
},
"component_type": "YCbCr",
"vert_chroma_subs": 2,
"horiz_chroma_subs": 2,
"avc_parameters": {
"profile": 100,
"level": 31,
"flags": 0
}
}
}
3 changes: 3 additions & 0 deletions api/examples/flow-get-200-video-h264.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
"codec": "video/h264",
"container": "video/mp2t",
"avg_bit_rate": 2479,
"segment_duration": {
"numerator": 10
},
"essence_parameters":
{
"frame_rate":
Expand Down
46 changes: 46 additions & 0 deletions api/examples/flow-get-200-video-jpeg-jp2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"id": "49628282-d3c6-4faa-a31f-d35cff98b26c",
"source_id": "3e6201e2-4b38-402a-a08f-e2529ec98229",
"generation": 0,
"created": "2026-02-24T09:25:32Z",
"metadata_updated": "2026-02-24T09:36:54Z",
"segments_updated": "2026-02-24T14:29:14Z",
"description": "Video Flow in a JP2 container, JPEG-2000 codec, single frame segments",
"label": "VFX Render - Full Quality, single frame",
"format": "urn:x-nmos:format:video",
"created_by": "tams-dev",
"updated_by": "tams-dev",
"tags": {
"input_quality": "intermediate"
},
"codec": "video/jp2",
"container": "image/jp2",
"avg_bit_rate": 250000,
"segment_duration": {
"numerator": 1,
"denominator": 50
},
"essence_parameters": {
"frame_rate": {
"numerator": 50,
"denominator": 1
},
"frame_width": 1920,
"frame_height": 1080,
"bit_depth": 10,
"interlace_mode": "progressive",
"colorspace": "BT709",
"transfer_characteristic": "SDR",
"aspect_ratio": {
"numerator": 16,
"denominator": 9
},
"pixel_aspect_ratio": {
"numerator": 1,
"denominator": 1
},
"component_type": "YCbCr",
"vert_chroma_subs": 1,
"horiz_chroma_subs": 2
}
}
45 changes: 45 additions & 0 deletions api/examples/flow-get-200-video-jpeg-mxf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"id": "1a670176-5b40-433b-9d66-8f90efc026b6",
"source_id": "3e6201e2-4b38-402a-a08f-e2529ec98229",
"generation": 0,
"created": "2026-02-24T09:35:25Z",
"metadata_updated": "2026-02-24T09:35:25Z",
"segments_updated": "2026-02-24T14:28:11Z",
"description": "Video Flow in a MXF container, JPEG-2000 codec",
"label": "VFX Render - Full Quality",
"format": "urn:x-nmos:format:video",
"created_by": "tams-dev",
"updated_by": "tams-dev",
"tags": {
"input_quality": "intermediate"
},
"codec": "video/jp2",
"container": "application/mxf",
"avg_bit_rate": 250000,
"segment_duration": {
"numerator": 60
},
"essence_parameters": {
"frame_rate": {
"numerator": 50,
"denominator": 1
},
"frame_width": 1920,
"frame_height": 1080,
"bit_depth": 10,
"interlace_mode": "progressive",
"colorspace": "BT709",
"transfer_characteristic": "SDR",
"aspect_ratio": {
"numerator": 16,
"denominator": 9
},
"pixel_aspect_ratio": {
"numerator": 1,
"denominator": 1
},
"component_type": "YCbCr",
"vert_chroma_subs": 1,
"horiz_chroma_subs": 2
}
}
25 changes: 25 additions & 0 deletions api/examples/flow-storage-post-201-wav.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"media_objects": [
{
"object_id": "e0a3df95-d7f5-4991-be40-500aa22a1ce3",
"put_url": {
"url": "https://example.com/tams/object-proxy/500aa22a1ce3",
"content-type": "audio/wav"
}
},
{
"object_id": "89f565ce-edd1-49fd-b6b7-900b6e4b545f",
"put_url": {
"url": "https://example.com/tams/object-proxy/900b6e4b545f",
"content-type": "audio/wav"
}
},
{
"object_id": "45342cb7-5fc0-4223-b2a8-de05c16453d1",
"put_url": {
"url": "https://example.com/tams/object-proxy/de05c16453d1",
"content-type": "audio/wav"
}
}
]
}
127 changes: 127 additions & 0 deletions api/examples/flows-get-200.json
Original file line number Diff line number Diff line change
Expand Up @@ -133,5 +133,132 @@
"vert_chroma_subs": 1,
"horiz_chroma_subs": 2
}
},
{
"id": "1a670176-5b40-433b-9d66-8f90efc026b6",
"source_id": "3e6201e2-4b38-402a-a08f-e2529ec98229",
"generation": 0,
"created": "2026-02-24T09:35:25Z",
"metadata_updated": "2026-02-24T09:35:25Z",
"segments_updated": "2026-02-24T14:28:11Z",
"description": "Video Flow in a MXF container, JPEG-2000 codec",
"label": "VFX Render - Full Quality",
"format": "urn:x-nmos:format:video",
"created_by": "tams-dev",
"updated_by": "tams-dev",
"tags":
{
"input_quality": "intermediate"
},
"codec": "video/jp2",
"container": "application/mxf",
"avg_bit_rate": 250000,
"essence_parameters":
{
"frame_rate":
{
"numerator": 50,
"denominator": 1
},
"frame_width": 1920,
"frame_height": 1080,
"bit_depth": 10,
"interlace_mode": "progressive",
"colorspace": "BT709",
"transfer_characteristic": "SDR",
"aspect_ratio":
{
"numerator": 16,
"denominator": 9
},
"pixel_aspect_ratio":
{
"numerator": 1,
"denominator": 1
},
"component_type": "YCbCr",
"vert_chroma_subs": 1,
"horiz_chroma_subs": 1
}
},
{
"id": "1491ecfb-813d-4453-9554-e417d03161ba",
"source_id": "3e6201e2-4b38-402a-a08f-e2529ec98229",
"generation": 1,
"created": "2026-02-24T09:35:25Z",
"metadata_updated": "2026-02-24T09:36:02Z",
"segments_updated": "2026-02-24T15:38:21Z",
"description": "Video Flow in a MXF container, H264 codec",
"label": "VFX Render - Proxy Quality",
"format": "urn:x-nmos:format:video",
"created_by": "tams-dev",
"updated_by": "tams-dev",
"tags":
{
"input_quality": "web"
},
"codec": "video/h264",
"container": "application/mxf",
"avg_bit_rate": 6000,
"essence_parameters":
{
"frame_rate":
{
"numerator": 50,
"denominator": 1
},
"frame_width": 1920,
"frame_height": 1080,
"bit_depth": 8,
"interlace_mode": "progressive",
"colorspace": "BT709",
"transfer_characteristic": "SDR",
"aspect_ratio":
{
"numerator": 16,
"denominator": 9
},
"pixel_aspect_ratio":
{
"numerator": 1,
"denominator": 1
},
"component_type": "YCbCr",
"vert_chroma_subs": 2,
"horiz_chroma_subs": 2,
"avc_parameters":
{
"profile": 100,
"level": 31,
"flags": 0
}
}
},
{
"id": "fd25a9fc-3b58-4dc1-93d4-81c52b206562",
"source_id": "8af9d4a3-aff7-44e8-b384-d2bfc0b93533",
"generation": 0,
"created": "2025-02-24T11:33:46Z",
"metadata_updated": "2025-02-24T11:33:46Z",
"segments_updated": "2025-02-24T11:48:22Z",
"description": "Radio off-air recording",
"label": "Radio off-air",
"format": "urn:x-nmos:format:audio",
"created_by": "tams-dev",
"updated_by": "tams-dev",
"tags": {
"input_quality": "contribution"
},
"codec": "audio/x-raw-int",
"container": "audio/wav",
"avg_bit_rate": 192,
"essence_parameters": {
"sample_rate": 48000,
"channels": 2,
"bit_depth": 16,
"unc_parameters": {
"unc_type": "interleaved"
}
}
}
]
Loading
Loading