Videon Streaming REST API
This document presents the REST API for Videon streaming devices. Multimedia encoder settings and media destinations(outputs) can be configured through the REST API.
For specific possible values, please refer to the particular streaming device you are using. All Videon streaming devices share a common REST API, but the specific features supported will vary for each device model.
System ¶
System ¶
Get System SettingsGET/v2/system
Get the system-wide settings for the device.
These settings include network settings, name, id and other attributes not related to encode or media transmission.
Example URI
200
Headers
Content-Type: application/json
Body
{
"device_name": "StreamDevices1",
"ip_scheme": "dhcp",
"net_connected": true,
"mac_address": "ab:cd:ef:12:34:56",
"ip_address": "1.2.3.4",
"network": {
"ip_address": "1.2.3.4",
"netmask": "255.255.255.0",
"gateway": "1.2.3.1",
"dns_addresses": [
"1.1.1.1",
"8.8.8.8"
]
},
"static_network": {
"ip_address": "1.2.3.4",
"netmask": "255.255.255.0",
"gateway": "1.2.3.1",
"dns_addresses": [
"1.1.1.1",
"8.8.8.8"
]
},
"version": "versionstring",
"device_id": "deviceid",
"clock": {
"ntp_server": "time.nist.gov",
"timezone": "America/New_York"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"device_name": {
"type": "string"
},
"ip_scheme": {
"type": "string"
},
"net_connected": {
"type": "boolean"
},
"mac_address": {
"type": "string"
},
"ip_address": {
"type": "string"
},
"network": {
"type": "object",
"properties": {
"ip_address": {
"type": "string"
},
"netmask": {
"type": "string"
},
"gateway": {
"type": "string"
},
"dns_addresses": {
"type": "array"
}
},
"required": [
"ip_address",
"netmask",
"gateway",
"dns_addresses"
]
},
"static_network": {
"type": "object",
"properties": {
"ip_address": {
"type": "string"
},
"netmask": {
"type": "string"
},
"gateway": {
"type": "string"
},
"dns_addresses": {
"type": "array"
}
},
"required": [
"ip_address",
"netmask",
"gateway",
"dns_addresses"
]
},
"version": {
"type": "string"
},
"device_id": {
"type": "string"
},
"clock": {
"type": "object",
"properties": {
"ntp_server": {
"type": "string"
},
"timezone": {
"type": "string"
}
},
"required": [
"ntp_server",
"timezone"
]
}
},
"required": [
"device_name",
"ip_scheme",
"net_connected",
"mac_address",
"ip_address",
"network",
"static_network",
"version",
"device_id",
"clock"
]
}
Update System SettingsPUT/v2/system
Update the system-wide settings for the device.
These settings include network settings, name, id and other attributes not related to encode or media transmission.
Example URI
Headers
Content-Type: application/json
Body
{
"device_name": "StreamDevices1",
"ip_scheme": "static",
"static_network": {
"ip_address": "1.2.3.4",
"netmask": "255.255.255.0",
"gateway": "1.2.3.1",
"dns_addresses": [
"1.1.1.1",
"8.8.8.8"
]
},
"clock": {
"ntp_server": "time.nist.gov",
"timezone": "America/New_York"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"device_name": {
"type": "string"
},
"ip_scheme": {
"type": "string"
},
"static_network": {
"type": "object",
"properties": {
"ip_address": {
"type": "string"
},
"netmask": {
"type": "string"
},
"gateway": {
"type": "string"
},
"dns_addresses": {
"type": "array"
}
},
"required": [
"ip_address",
"netmask",
"gateway",
"dns_addresses"
]
},
"clock": {
"type": "object",
"properties": {
"ntp_server": {
"type": "string"
},
"timezone": {
"type": "string"
}
},
"required": [
"ntp_server",
"timezone"
]
}
},
"required": [
"device_name",
"ip_scheme",
"static_network",
"clock"
]
}
204
Input Channels ¶
Input Channels ¶
Get Input Channel ListGET/v2/in_channels
Get the list of input channels.
Example URI
200
Headers
Content-Type: application/json
Body
{
"in_channels": [
{
"in_channel_id": 1
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"in_channels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"in_channel_id": {
"type": "number"
}
},
"required": [
"in_channel_id"
]
}
}
}
}
Input Channel Configuration ¶
Get Input Channel ConfigurationGET/v2/in_channels/{id}
Get the input channel configuration.
Example URI
- id
integer
(required) Example: 0
200
Headers
Content-Type: application/json
Body
{
"in_channel_id": 1,
"audio_input": {
"value": "input_embedded",
"possible_values": [
"input_auto",
"input_embedded",
"input_3p5mm"
],
"detected": true
},
"video_input": {
"value": "input_hdmi",
"possible_values": [
"input_auto",
"input_hdmi",
"input_sdi"
],
"detected_format": {
"value": "FORMAT_1080p60"
}
},
"video_rotation": {
"value": "ROTATE_0",
"possible_values": [
"ROTATE_0",
"ROTATE_90",
"ROTATE_180",
"ROTATE_270"
]
},
"graphic_overlay": {
"enable": true,
"position": {
"preset": {
"value": "MANUAL",
"possible_values": [
"MANUAL",
"FULLSCREEN",
"LOWER_THIRD",
"TOP_LEFT",
"BOTTOM_LEFT",
"TOP_CENTER",
"CENTER",
"BOTTOM_CENTER",
"TOP_RIGHT",
"BOTTOM_RIGHT"
]
},
"x": 0,
"y": 0,
"width": 100,
"height": 100,
"lock_aspect_ratio": {
"value": "NO_LOCK",
"possible_values": [
"NO_LOCK",
"LOCK_TO_WIDTH",
"LOCK_TO_HEIGHT"
]
}
},
"image_status": "NO_IMAGE"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"in_channel_id": {
"type": "number"
},
"audio_input": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
},
"detected": {
"type": "boolean"
}
},
"required": [
"value",
"possible_values",
"detected"
]
},
"video_input": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
},
"detected_format": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
}
},
"required": [
"value",
"possible_values",
"detected_format"
]
},
"video_rotation": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"graphic_overlay": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"position": {
"type": "object",
"properties": {
"preset": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"lock_aspect_ratio": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
}
},
"required": [
"preset",
"x",
"y",
"width",
"height",
"lock_aspect_ratio"
]
},
"image_status": {
"type": "string"
}
},
"required": [
"enable",
"position",
"image_status"
]
}
},
"required": [
"in_channel_id",
"audio_input",
"video_input",
"video_rotation",
"graphic_overlay"
]
}
Update Input Channel ConfigurationPUT/v2/in_channels/{id}
Set the input channel configuration.
Example URI
- id
integer
(required) Example: 0
Headers
Content-Type: application/json
Body
{
"audio_input": {
"value": "input_embedded"
},
"video_input": {
"value": "input_hdmi"
},
"video_rotation": {
"value": "ROTATE_0"
},
"graphic_overlay": {
"enable": true,
"position": {
"preset": {
"value": "MANUAL"
},
"x": 0,
"y": 0,
"width": 100,
"height": 100,
"lock_aspect_ratio": {
"value": "NO_LOCK"
}
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"audio_input": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"video_input": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"video_rotation": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"graphic_overlay": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"position": {
"type": "object",
"properties": {
"preset": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"lock_aspect_ratio": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
}
},
"required": [
"preset",
"x",
"y",
"width",
"height",
"lock_aspect_ratio"
]
}
},
"required": [
"enable",
"position"
]
}
},
"required": [
"audio_input",
"video_input",
"graphic_overlay"
]
}
204
Overlay Graphic ¶
Retrieve Overlay GraphicGET/v2/in_channels/{id}/overlay_graphic
Example URI
- id
integer
(required) Example: 0
200
Headers
Content-Type: image/png; Content-Transfer-Encoding: base64
Body
<base64 png>
Upload Overlay GraphicPOST/v2/in_channels/{id}/overlay_graphic
Upload overlay graphic.
Example URI
- id
integer
(required) Example: 0
Headers
Content-Type: multipart/form-data; boundary=---------BOUNDARY
Body
---------BOUNDARY
Content-Disposition: form-data; image="image[file]"; filename="image.png"
Content-Type: image/png
Content-Transfer-Encoding: base64
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAABAAEDASIA
AhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEB
AAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AL+AD//Z
---------BOUNDARY
204
Delete overlay graphicDELETE/v2/in_channels/{id}/overlay_graphic
Delete the stored overlay graphic.
Example URI
- id
integer
(required) Example: 0
204
Encoders ¶
Encoders ¶
Get Encoders ListGET/v2/encoders
Get the list of encoders present in the device.
Example URI
200
Headers
Content-Type: application/json
Body
{
"vid_encoders": [
{
"vid_encoder_id": 1,
"active": true,
"status": "DISABLED",
"seconds_in_status": 1
}
],
"max_vid_encoders": 1,
"aud_encoders": [
{
"aud_encoder_id": 1,
"active": true,
"status": "DISABLED",
"seconds_in_status": 1
}
],
"max_aud_encoders": 1,
"data_encoders": [
{
"data_encoder_id": 1,
"codec": "klv_sync",
"active": true,
"status": "DISABLED",
"seconds_in_status": 1
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"vid_encoders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vid_encoder_id": {
"type": "number"
},
"active": {
"type": "boolean"
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
}
},
"required": [
"vid_encoder_id",
"active"
]
}
},
"max_vid_encoders": {
"type": "number"
},
"aud_encoders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"aud_encoder_id": {
"type": "number"
},
"active": {
"type": "boolean"
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
}
},
"required": [
"aud_encoder_id",
"active"
]
}
},
"max_aud_encoders": {
"type": "number"
},
"data_encoders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"data_encoder_id": {
"type": "number"
},
"codec": {
"type": "string",
"enum": [
"klv_sync",
"scte35"
]
},
"active": {
"type": "boolean"
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
}
},
"required": [
"data_encoder_id",
"codec",
"active"
]
}
}
},
"required": [
"vid_encoders",
"max_vid_encoders",
"aud_encoders",
"max_aud_encoders",
"data_encoders"
]
}
Video Encoders ¶
Video Encoders ¶
Get Video Encoders ListGET/v2/encoders/vid_encoders
Get the list of video encoders present in the device.
Example URI
200
Headers
Content-Type: application/json
Body
{
"vid_encoders": [
{
"vid_encoder_id": 1,
"active": true,
"status": "DISABLED",
"seconds_in_status": 1
}
],
"available_codecs": [
"H264",
"H265"
],
"max_vid_encoders": 1,
"sync_groups": [
{
"active": true,
"sync_group_id": 1
}
],
"max_sync_groups": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"vid_encoders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vid_encoder_id": {
"type": "number"
},
"active": {
"type": "boolean"
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
}
},
"required": [
"vid_encoder_id",
"active"
]
}
},
"available_codecs": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
},
"max_vid_encoders": {
"type": "number"
},
"sync_groups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"active": {
"type": "boolean"
},
"sync_group_id": {
"type": "number"
}
},
"required": [
"active",
"sync_group_id"
]
}
},
"max_sync_groups": {
"type": "number"
}
},
"required": [
"vid_encoders",
"available_codecs",
"max_vid_encoders",
"sync_groups",
"max_sync_groups"
]
}
Video Encoder Configuration ¶
This will describe all attributes of the input video source and the encoded video output.
Get Video Encoder ConfigurationGET/v2/encoders/vid_encoders/{id}
Get the current encoder settings.
Example URI
- id
integer
(required) Example: 0
200
Headers
Content-Type: application/json
Body
{
"name": "VideoEncoder1",
"active": true,
"vid_encoder_id": 1,
"in_channel_id": 1,
"sync_group_id": 1,
"bitrate": {
"value": 500,
"value_range": {
"min": 32,
"max": 512
}
},
"latency_mode": {
"value": "HIGH",
"possible_values": [
"HIGH",
"NORMAL",
"LOW",
"LOWEST"
]
},
"bitrate_mode": {
"value": "variable",
"possible_values": [
"constant",
"variable"
]
},
"keyframe_interval": {
"interval": 100,
"unit": "FRAMES",
"possible_units": [
"FRAMES",
"MILLISECONDS"
],
"interval_range_frames": {
"min": 32,
"max": 512
},
"interval_range_milliseconds": {
"min": 32,
"max": 512
}
},
"scaling_resolution": {
"value": "RES_1920X1080",
"possible_values": [
"RES_PASSTHROUGH",
"RES_3840X2160",
"RES_1920X1080",
"RES_1280X720",
"RES_960X540",
"RES_720X576",
"RES_854x480",
"RES_640X360",
"RES_480X270",
"RES_320X180"
]
},
"limit_to_30_fps": true,
"codec": {
"value": "H264",
"possible_values": [
"H264",
"H265"
],
"h264": {
"profile": {
"value": "PROFILE_BASELINE",
"possible_values": [
"PROFILE_BASELINE",
"PROFILE_MAIN",
"PROFILE_HIGH"
]
},
"level": {
"value": "LVL5P1"
}
},
"h265": {
"profile": {
"value": "PROFILE_MAIN",
"possible_values": [
"PROFILE_MAIN"
]
},
"level": {
"value": "LVL_5P1_HIGH"
}
}
},
"klv_timestamp_enabled": true,
"status": "DISABLED",
"seconds_in_status": 1,
"current_bitrate": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"active": {
"type": "boolean"
},
"vid_encoder_id": {
"type": "number"
},
"in_channel_id": {
"type": "number"
},
"sync_group_id": {
"type": "number"
},
"bitrate": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"value_range": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
}
},
"required": [
"value",
"value_range"
]
},
"latency_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"bitrate_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"keyframe_interval": {
"type": "object",
"properties": {
"interval": {
"type": "number"
},
"unit": {
"type": "string"
},
"possible_units": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
},
"interval_range_frames": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
},
"interval_range_milliseconds": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
}
},
"required": [
"interval",
"unit",
"possible_units"
]
},
"scaling_resolution": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"limit_to_30_fps": {
"type": "boolean"
},
"codec": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
},
"h264": {
"type": "object",
"properties": {
"profile": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"level": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
}
},
"required": [
"profile",
"level"
]
},
"h265": {
"type": "object",
"properties": {
"profile": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"value",
"possible_values"
]
},
"level": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
}
},
"required": [
"profile",
"level"
]
}
},
"required": [
"value",
"possible_values"
]
},
"klv_timestamp_enabled": {
"type": "boolean"
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
},
"current_bitrate": {
"type": "number"
}
},
"required": [
"name",
"active",
"vid_encoder_id",
"in_channel_id",
"bitrate",
"latency_mode",
"bitrate_mode",
"keyframe_interval",
"scaling_resolution",
"limit_to_30_fps",
"codec",
"klv_timestamp_enabled"
]
}
Update Video Encoder ConfigurationPUT/v2/encoders/vid_encoders/{id}
Update the current encoder settings.
Example URI
- id
integer
(required) Example: 0
Headers
Content-Type: application/json
Body
{
"name": "VideoEncoder1",
"in_channel_id": 1,
"sync_group_id": 1,
"bitrate": {
"value": 500
},
"latency_mode": {
"value": "HIGH"
},
"bitrate_mode": {
"value": "variable"
},
"keyframe_interval": {
"interval": 100,
"unit": "FRAMES"
},
"scaling_resolution": {
"value": "RES_1920X1080"
},
"limit_to_30_fps": true,
"klv_timestamp_enabled": true,
"codec": {
"value": "H264",
"h264": {
"profile": {
"value": "PROFILE_MAIN"
}
},
"h265": {
"profile": {
"value": "PROFILE_MAIN"
}
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"in_channel_id": {
"type": "number"
},
"sync_group_id": {
"type": "number"
},
"bitrate": {
"type": "object",
"properties": {
"value": {
"type": "number"
}
},
"required": [
"value"
]
},
"latency_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"bitrate_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"keyframe_interval": {
"type": "object",
"properties": {
"interval": {
"type": "number"
},
"unit": {
"type": "string"
}
},
"required": [
"interval",
"unit"
]
},
"scaling_resolution": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"limit_to_30_fps": {
"type": "boolean"
},
"klv_timestamp_enabled": {
"type": "boolean"
},
"codec": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"h264": {
"type": "object",
"properties": {
"profile": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
}
},
"required": [
"profile"
]
},
"h265": {
"type": "object",
"properties": {
"profile": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
}
},
"required": [
"profile"
]
}
},
"required": [
"value"
]
}
},
"required": [
"name",
"in_channel_id",
"bitrate",
"latency_mode",
"bitrate_mode",
"keyframe_interval",
"scaling_resolution",
"limit_to_30_fps",
"klv_timestamp_enabled",
"codec"
]
}
204
Create New Video EncoderPOST/v2/encoders/vid_encoders
Create new video encoder with the specified settings.
Example URI
201
Headers
Content-Type: application/json
Body
{
"id": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
}
},
"required": [
"id"
]
}
Delete Video EncoderDELETE/v2/encoders/vid_encoders/{id}
Delete the specified video encoder.
Example URI
- id
integer
(required) Example: 0
204
Sync Groups ¶
Sync Groups ¶
Get Sync Group ListGET/v2/encoders/vid_encoders/sync_groups
Get the list of sync groups.
Example URI
200
Headers
Content-Type: application/json
Body
{
"sync_groups": [
{
"active": true,
"sync_group_id": 1
}
],
"max_sync_groups": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"sync_groups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"active": {
"type": "boolean"
},
"sync_group_id": {
"type": "number"
}
},
"required": [
"active",
"sync_group_id"
]
}
},
"max_sync_groups": {
"type": "number"
}
},
"required": [
"sync_groups",
"max_sync_groups"
]
}
Sync Group Configuration ¶
Get Sync Group ConfigurationGET/v2/encoders/vid_encoders/sync_groups/{id}
Get settings for the specified sync group.
Example URI
- id
integer
(required) Example: 0
200
Headers
Content-Type: application/json
Body
{
"name": "SyncGroup1",
"active": true,
"sync_group_id": 1,
"in_channel_id": 1,
"encoder_ids": [
1,
2,
3,
4
],
"keyframe_interval": {
"interval": 100,
"unit": "MILLISECONDS",
"possible_units": [
"FRAMES",
"MILLISECONDS"
],
"interval_range_frames": {
"min": 32,
"max": 512
},
"interval_range_milliseconds": {
"min": 32,
"max": 512
}
},
"limit_to_30_fps": true,
"latency_mode": {
"value": "HIGH",
"possible_values": [
"HIGH",
"NORMAL",
"LOW",
"LOWEST"
]
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"active": {
"type": "boolean"
},
"sync_group_id": {
"type": "number"
},
"in_channel_id": {
"type": "number"
},
"encoder_ids": {
"type": "array"
},
"keyframe_interval": {
"type": "object",
"properties": {
"interval": {
"type": "number"
},
"unit": {
"type": "string"
},
"possible_units": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
},
"interval_range_frames": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
},
"interval_range_milliseconds": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
}
},
"required": [
"interval",
"unit",
"possible_units"
]
},
"limit_to_30_fps": {
"type": "boolean"
},
"latency_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
}
},
"required": [
"name",
"active",
"sync_group_id",
"in_channel_id",
"encoder_ids",
"keyframe_interval",
"limit_to_30_fps",
"latency_mode"
]
}
Update Sync Group ConfigurationPUT/v2/encoders/vid_encoders/sync_groups/{id}
Update settings for the specified sync group.
Example URI
- id
integer
(required) Example: 0
Headers
Content-Type: application/json
Body
{
"name": "SyncGroup1",
"in_channel_id": 1,
"keyframe_interval": {
"interval": 100,
"unit": "MILLISECONDS"
},
"limit_to_30_fps": true,
"latency_mode": {
"value": "HIGH"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"in_channel_id": {
"type": "number"
},
"keyframe_interval": {
"type": "object",
"properties": {
"interval": {
"type": "number"
},
"unit": {
"type": "string"
}
},
"required": [
"interval",
"unit"
]
},
"limit_to_30_fps": {
"type": "boolean"
},
"latency_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
}
},
"required": [
"name",
"in_channel_id",
"keyframe_interval",
"limit_to_30_fps",
"latency_mode"
]
}
204
Create Sync GroupPOST/v2/encoders/vid_encoders/sync_groups
Create sync group with the specified settings.
Example URI
201
Headers
Content-Type: application/json
Body
{
"id": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
}
},
"required": [
"id"
]
}
Delete Sync GroupDELETE/v2/encoders/vid_encoders/sync_groups/{id}
Delete the specified sync group.
Example URI
- id
integer
(required) Example: 0
204
Audio Encoders ¶
Audio Encoders ¶
Get Audio Encoders ListGET/v2/encoders/aud_encoders
Get the list of audio encoders present in the device.
Example URI
200
Headers
Content-Type: application/json
Body
{
"aud_encoders": [
{
"aud_encoder_id": 1,
"active": true,
"status": "DISABLED",
"seconds_in_status": 1
}
],
"available_codecs": [
"mpeg4_aac"
],
"max_aud_encoders": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"aud_encoders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"aud_encoder_id": {
"type": "number"
},
"active": {
"type": "boolean"
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
}
},
"required": [
"aud_encoder_id",
"active"
]
}
},
"available_codecs": {
"type": "array",
"items": {
"type": "string"
}
},
"max_aud_encoders": {
"type": "number"
}
},
"required": [
"aud_encoders",
"available_codecs",
"max_aud_encoders"
]
}
Audio Encoder Configuration ¶
This will describe all attributes of the input audio source and the encoded audio output.
Get Audio Encoder ConfigurationGET/v2/encoders/aud_encoders/{id}
Get the current audio encoder settings.
Example URI
- id
integer
(required) Example: 0
200
Headers
Content-Type: application/json
Body
{
"name": "AudioEncoder1",
"active": true,
"aud_encoder_id": 1,
"in_channel_id": 1,
"codec": {
"value": "mpeg4_aac",
"possible_values": [
"mpeg4_aac"
]
},
"sample": {
"value": "SAMPLE_48_khz",
"possible_values": [
"SAMPLE_16_khz",
"SAMPLE_32_khz",
"SAMPLE_44p1_khz",
"SAMPLE_48_khz",
"SAMPLE_96_khz",
"SAMPLE_192_khz"
]
},
"mix_mode": {
"value": "STEREO",
"possible_values": [
"STEREO",
"DUAL_MONO",
"LEFT_MONO",
"RIGHT_MONO",
"CROSS_MONO"
]
},
"bitrate": {
"value": 64,
"value_range": {
"min": 32,
"max": 512
}
},
"bitrate_mode": {
"value": "variable",
"possible_values": [
"constant",
"variable"
]
},
"channel_configuration": {
"num_channel_range": {
"min": 32,
"max": 512
},
"avail_channel_range": {
"min": 32,
"max": 512
},
"selected_channels": [
1,
2
]
},
"status": "DISABLED",
"seconds_in_status": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"active": {
"type": "boolean"
},
"aud_encoder_id": {
"type": "number"
},
"in_channel_id": {
"type": "number"
},
"codec": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"value",
"possible_values"
]
},
"sample": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"mix_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"bitrate": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"value_range": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
}
},
"required": [
"value",
"value_range"
]
},
"bitrate_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"channel_configuration": {
"type": "object",
"properties": {
"num_channel_range": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
},
"avail_channel_range": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
},
"selected_channels": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
]
}
},
"required": [
"num_channel_range",
"avail_channel_range",
"selected_channels"
]
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
}
},
"required": [
"name",
"active",
"aud_encoder_id",
"in_channel_id",
"codec",
"sample",
"mix_mode",
"bitrate",
"bitrate_mode",
"channel_configuration"
]
}
Update Audio Encoder ConfigurationPUT/v2/encoders/aud_encoders/{id}
Update the current audio encoder settings.
Example URI
- id
integer
(required) Example: 0
Headers
Content-Type: application/json
Body
{
"name": "AudioEncoder1",
"in_channel_id": 1,
"codec": {
"value": "mpeg4_aac"
},
"mix_mode": {
"value": "STEREO"
},
"bitrate": {
"value": 64
},
"bitrate_mode": {
"value": "variable"
},
"channel_configuration": {
"selected_channels": [
1,
2
]
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"in_channel_id": {
"type": "number"
},
"codec": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"mix_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"bitrate": {
"type": "object",
"properties": {
"value": {
"type": "number"
}
},
"required": [
"value"
]
},
"bitrate_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"channel_configuration": {
"type": "object",
"properties": {
"selected_channels": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
]
}
},
"required": [
"selected_channels"
]
}
},
"required": [
"name",
"in_channel_id",
"codec",
"mix_mode",
"bitrate",
"bitrate_mode",
"channel_configuration"
]
}
204
Create New Audio EncoderPOST/v2/encoders/aud_encoders
Create a new audio encoder with the specified settings.
Example URI
201
Headers
Content-Type: application/json
Body
{
"id": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
}
},
"required": [
"id"
]
}
Delete Audio EncoderDELETE/v2/encoders/aud_encoders/{id}
Delete the specified audio encoder.
Example URI
- id
integer
(required) Example: 0
204
Data Encoders ¶
Data Encoders ¶
Get Data Encoders ListGET/v2/encoders/data_encoders
Get the list of data encoders present in the device.
Example URI
200
Headers
Content-Type: application/json
Body
{
"data_encoders": [
{
"data_encoder_id": 1,
"codec": "klv_sync",
"active": true,
"status": "DISABLED",
"seconds_in_status": 1
}
],
"available_codecs": [
"klv_sync",
"scte35"
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data_encoders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"data_encoder_id": {
"type": "number"
},
"codec": {
"type": "string",
"enum": [
"klv_sync",
"scte35"
]
},
"active": {
"type": "boolean"
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
}
},
"required": [
"data_encoder_id",
"codec",
"active"
]
}
},
"available_codecs": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"data_encoders",
"available_codecs"
]
}
Data Encoder Configuration ¶
Get Data Encoder ConfigurationGET/v2/encoders/data_encoders/{id}
Get the current data encoder settings.
Example URI
- id
integer
(required) Example: 0
200
Headers
Content-Type: application/json
Body
{
"name": "DataEncoder1",
"active": false,
"data_encoder_id": 0,
"codec": {
"value": "klv_sync",
"klv_sync": {},
"scte35": {
"splice_duration": 30000
}
},
"status": "DISABLED",
"seconds_in_status": 0
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"active": {
"type": "boolean"
},
"data_encoder_id": {
"type": "number"
},
"codec": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"klv_sync",
"scte35"
]
},
"klv_sync": {
"type": "object",
"properties": {}
},
"scte35": {
"type": "object",
"properties": {
"splice_duration": {
"type": "number"
}
},
"required": [
"splice_duration"
]
}
},
"required": [
"value"
]
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
}
},
"required": [
"name",
"active",
"data_encoder_id",
"codec"
]
}
Update Data Encoder ConfigurationPUT/v2/encoders/data_encoders/{id}
Update the current data encoder settings.
Example URI
- id
integer
(required) Example: 0
Headers
Content-Type: application/json
Body
{
"name": "DataEncoder1",
"codec": {
"value": "klv_sync",
"klv_sync": {},
"scte35": {
"splice_duration": 30000
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"codec": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"klv_sync",
"scte35"
]
},
"klv_sync": {
"type": "object",
"properties": {}
},
"scte35": {
"type": "object",
"properties": {
"splice_duration": {
"type": "number"
}
},
"required": [
"splice_duration"
]
}
},
"required": [
"value"
]
}
},
"required": [
"name",
"codec"
]
}
204
Create New Data EncoderPOST/v2/encoders/data_encoders
Create a new data encoder with the specified settings.
Example URI
Headers
Content-Type: application/json
Body
{
"codec": "klv_sync"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"codec": {
"type": "string",
"enum": [
"klv_sync",
"scte35"
]
}
},
"required": [
"codec"
]
}
201
Headers
Content-Type: application/json
Body
{
"id": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
}
},
"required": [
"id"
]
}
Delete Data EncoderDELETE/v2/encoders/data_encoders/{id}
Delete the specified data encoder.
Example URI
- id
integer
(required) Example: 0
204
SCTE-35 Splice Commands ¶
Details of the requests that can be run on SCTE-35 data encoders for splice commands.
Get Splice CommandsGET/v2/encoders/data_encoders/{id}/splice_commands
Get the list of active splice commands.
Example URI
- id
integer
(required) Example: 0
200
Headers
Content-Type: application/json
Body
{
"splice_commands": [
{
"id": 1,
"process_time_utc": "1980-01-04T04:20:30.789Z",
"splice_command": {
"value": "splice_insert",
"splice_insert": {
"splice_event_id": 1,
"preroll_time_msec": 4000,
"duration_msec": 30000
},
"time_signal": {
"segmentation_event_id": 1,
"preroll_time_msec": 4000,
"segmentation_descriptor": "020F43554549000000017FBF0000300101",
"segmentation_type_id": 1,
"segment_num": 1
}
}
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"splice_commands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"process_time_utc": {
"type": "string"
},
"splice_command": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"splice_insert",
"time_signal"
]
},
"splice_insert": {
"type": "object",
"properties": {
"splice_event_id": {
"type": "number"
},
"preroll_time_msec": {
"type": "number"
},
"duration_msec": {
"type": "number"
}
}
},
"time_signal": {
"type": "object",
"properties": {
"segmentation_event_id": {
"type": "number"
},
"preroll_time_msec": {
"type": "number"
},
"segmentation_descriptor": {
"type": "string"
},
"segmentation_type_id": {
"type": "number"
},
"segment_num": {
"type": "number"
}
}
}
}
}
}
}
}
}
}
Delete Splice CommandsDELETE/v2/encoders/data_encoders/{id}/splice_commands
Cancel all active splice commands. See description of DELETE for individual splice commands for more detail on how cancelling works.
Example URI
- id
integer
(required) Example: 0
204
Get Splice CommandGET/v2/encoders/data_encoders/{id}/splice_commands/{cmd_id}
Get the details of an active splice command.
Example URI
- id
integer
(required) Example: 0- cmd_id
integer
(required) Example: 1
200
Headers
Content-Type: application/json
Body
{
"id": 1,
"process_time_utc": "1980-01-04T04:20:30.789Z",
"splice_command": {
"value": "splice_insert",
"splice_insert": {
"splice_event_id": 1,
"preroll_time_msec": 4000,
"duration_msec": 30000
},
"time_signal": {
"segmentation_event_id": 1,
"preroll_time_msec": 4000,
"segmentation_descriptor": "020F43554549000000017FBF0000300101",
"segmentation_type_id": 1,
"segment_num": 1
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
},
"process_time_utc": {
"type": "string"
},
"splice_command": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"splice_insert",
"time_signal"
]
},
"splice_insert": {
"type": "object",
"properties": {
"splice_event_id": {
"type": "number"
},
"preroll_time_msec": {
"type": "number"
},
"duration_msec": {
"type": "number"
}
}
},
"time_signal": {
"type": "object",
"properties": {
"segmentation_event_id": {
"type": "number"
},
"preroll_time_msec": {
"type": "number"
},
"segmentation_descriptor": {
"type": "string"
},
"segmentation_type_id": {
"type": "number"
},
"segment_num": {
"type": "number"
}
}
}
}
}
}
}
Create Splice CommandPOST/v2/encoders/data_encoders/{id}/splice_commands
Create a splice command to insert into the stream. The command will be processed at the given UTC time or immediately if no time is specified.
-
splice_insert - Creates a splice_insert command with the given pre-roll and duration. If pre-roll is not specified, 4 seconds is used. If the duration is not specified, the duration configured in the SCTE-35 encoder will be used. The command will be inserted into the stream at the process time and will be reinserted every 2 seconds of pre-roll for redundancy.
-
time_signal - Creates a time_signal command with the given pre-roll and with the given segmentation descriptor attached. If pre-roll is not specified, 4 seconds is used. The segmentation descriptor is the binary blob of the descriptor data in the form of a hexidecimal string. The command will be inserted into the stream at the process time and will be reinserted every 2 seconds of pre-roll for redundancy.
Example URI
- id
integer
(required) Example: 0
Headers
Content-Type: application/json
Body
{
"process_time_utc": "1980-01-04T04:20:30.789Z",
"splice_command": {
"value": "splice_insert",
"splice_insert": {
"preroll_time_msec": 4000,
"duration_msec": 30000
},
"time_signal": {
"preroll_time_msec": 4000,
"segmentation_descriptor": "020F43554549000000017FBF0000300101"
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"process_time_utc": {
"type": "string"
},
"splice_command": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"splice_insert",
"time_signal"
]
},
"splice_insert": {
"type": "object",
"properties": {
"preroll_time_msec": {
"type": "number"
},
"duration_msec": {
"type": "number"
}
}
},
"time_signal": {
"type": "object",
"properties": {
"preroll_time_msec": {
"type": "number"
},
"segmentation_descriptor": {
"type": "string"
}
},
"required": [
"segmentation_descriptor"
]
}
},
"required": [
"value"
]
}
},
"required": [
"splice_command"
]
}
200
Headers
Content-Type: application/json
Body
{
"id": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
}
}
}
Delete Splice CommandDELETE/v2/encoders/data_encoders/{id}/splice_commands/{cmd_id}
Cancel an active splice command.
-
If no splice info sections for the event have been inserted into the stream yet, the active splice command is simply deleted.
-
If splice info sections have been inserted but the event has not occured yet, a cancel splice info section is inserted immediately.
-
(Splice Insert Only) If the splice event has occurred and the duration is under way, an immediate in to network splice_insert is inserted.
Example URI
- id
integer
(required) Example: 0- cmd_id
integer
(required) Example: 1
204
Synchronous KLV Injection ¶
Details of the requests that can be run on synchronous KLV data encoders for injecting KLV.
Get KLV RequestsGET/v2/encoders/data_encoders/{id}/klv
Get the list of KLV requests.
Example URI
- id
integer
(required) Example: 0
200
Headers
Content-Type: application/json
Body
{
"klv": [
{
"id": 1,
"precision_datetime_utc": "1980-01-04T04:20:30.789Z",
"klv": [
{
"value": "blob",
"blob": "060E2B34010101010105020000000000105965737465726461797320576F726C64",
"enumerated": {
"key": "060E2B34010101010105020000000000",
"length": 16,
"value": "5965737465726461797320576F726C64"
}
}
]
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"klv": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"precision_datetime_utc": {
"type": "string"
},
"klv": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"blob",
"enumerated"
]
},
"blob": {
"type": "string"
},
"enumerated": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"length": {
"type": "number"
},
"value": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
Get KLV RequestGET/v2/encoders/data_encoders/{id}/klv/{klv_id}
Get the details of a KLV request.
Example URI
- id
integer
(required) Example: 0- klv_id
integer
(required) Example: 1
200
Headers
Content-Type: application/json
Body
{
"id": 1,
"precision_datetime_utc": "1980-01-04T04:20:30.789Z",
"klv": [
{
"value": "blob",
"blob": "060E2B34010101010105020000000000105965737465726461797320576F726C64",
"enumerated": {
"key": "060E2B34010101010105020000000000",
"length": 16,
"value": "5965737465726461797320576F726C64"
}
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
},
"precision_datetime_utc": {
"type": "string"
},
"klv": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"blob",
"enumerated"
]
},
"blob": {
"type": "string"
},
"enumerated": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"length": {
"type": "number"
},
"value": {
"type": "string"
}
}
}
}
}
}
}
}
Update KLV RequestPUT/v2/encoders/data_encoders/{id}/klv/{klv_id}
Update the details of a KLV request. Individual KLV within the original request is not added or removed. The KLV data is replaced wholesale.
Example URI
- id
integer
(required) Example: 0- klv_id
integer
(required) Example: 1
Headers
Content-Type: application/json
Body
{
"precision_datetime_utc": "1980-01-04T04:20:30.789Z",
"klv": [
{
"value": "blob",
"blob": "060E2B34010101010105020000000000105965737465726461797320576F726C64",
"enumerated": {
"key": "060E2B34010101010105020000000000",
"value": "5965737465726461797320576F726C64"
}
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"precision_datetime_utc": {
"type": "string"
},
"klv": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"blob",
"enumerated"
]
},
"blob": {
"type": "string"
},
"enumerated": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"key",
"value"
]
}
},
"required": [
"value"
]
}
}
},
"required": [
"klv"
]
}
204
Create KLV RequestPOST/v2/encoders/data_encoders/{id}/klv
Create a request to inject KLV into the stream. The KLV will be associated with the video frame that has an MISB 604 Precision Time Stamp matching closest to the the given UTC time.
The format of the KLV in transport streams will follow ISO/IEC 13818-1 Metadata AU Wrapper. The first Metadata AU Cell will be the MISB 0601 KLV containing the Precision Time Stamp, which will be followed by subsequent Metadata AU Cells for each KLV listed in the request.
-
precision_datetime_utc - The UTC time to associate the KLV with. It will be paired with the video frame with closest matching time.
- Time should be specified as ISO 8601 in UTC (i.e. “yyyy-mm-ddTHH:MM:SS.mmmZ”).
- This field is optional and if not specified, the command will be inserted immediately.
- If the time given is up to 1 minute in the past, then the command will be inserted immediately. Otherwise, it will be rejected and an error returned.
- If two separate requests have a precision time matching to the same video frame, they will still be tracked separately, but both will be included in the same KLV frame.
-
klv - An array of KLV to insert into the stream. They are all inserted into the stream at the same time and associated to the same video frame using precision_datetime_utc. Each KLV object can be specified using multiple formats. value is the distinguishing field for format and indicates what corresponding object is being used (e.g. blob).
-
blob - A hexadecimal string containing the full KLV data in the form of a binary blob. KLV data must conform to SMPTE-336.
-
enumerated
- key - A hexadecimal string containing the 16 byte KLV key in the form of a binary blob. Key must conform to SMPTE-336.
- value - A hexadecimal string containing the KLV value in the form of a binary blob. Value must conform to SMPTE-336.
Example URI
- id
integer
(required) Example: 0
Headers
Content-Type: application/json
Body
{
"precision_datetime_utc": "1980-01-04T04:20:30.789Z",
"klv": [
{
"value": "blob",
"blob": "060E2B34010101010105020000000000105965737465726461797320576F726C64",
"enumerated": {
"key": "060E2B34010101010105020000000000",
"value": "5965737465726461797320576F726C64"
}
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"precision_datetime_utc": {
"type": "string"
},
"klv": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"blob",
"enumerated"
]
},
"blob": {
"type": "string"
},
"enumerated": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"key",
"value"
]
}
},
"required": [
"value"
]
}
}
},
"required": [
"klv"
]
}
200
Headers
Content-Type: application/json
Body
{
"id": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "number"
}
}
}
Delete KLV RequestDELETE/v2/encoders/data_encoders/{id}/klv/{klv_id}
Delete a KLV request.
Example URI
- id
integer
(required) Example: 0- klv_id
integer
(required) Example: 1
204
Data Encoder Actions ¶
Details of specific actions that can be run on data encoders.
SCTE-35 - Insert SplicePOST/v2/encoders/data_encoders/{id}/action/insert_splice
Legacy endpoint. Insert splice markers to transport stream outputs starting now. The duration of the splice will be what is configured in the SCTE-35 encoder. There will be at least a 4 second delay in splice start.
Example URI
- id
integer
(required) Example: 0
204
Output Streams ¶
Encoder Streaming Outputs List ¶
This will return the list of all streaming outputs available on a streaming device. The encoded video produced by the encoder will be sent to each active output.
Get Encoder Streaming Outputs ListGET/v2/out_streams
Get the list of streaming outputs.
Example URI
200
Headers
Content-Type: application/json
Body
{
"out_streams": [
{
"out_stream_id": 1,
"output_type": "unicast"
}
]
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"out_streams": {
"type": "array",
"items": {
"type": "object",
"properties": {
"out_stream_id": {
"type": "number"
},
"output_type": {
"type": "string",
"enum": [
"unicast",
"multicast",
"rtsp",
"rtmp",
"http_pull",
"http_push",
"srt",
"file",
"thumbnail"
]
}
},
"required": [
"out_stream_id",
"output_type"
]
}
}
},
"required": [
"out_streams"
]
}
Encoder Streaming Output ¶
This will describe all the attributes of a single streaming output. The encoded video produced by the encoder will be sent to each active output.
Get Encoder Streaming OutputGET/v2/out_streams/{id}
Get the state of a single streaming output
Example URI
- id
integer
(required) Example: 0
200
Headers
Content-Type: application/json
Body
{
"out_stream_id": 1,
"enable": true,
"audio_sources": {
"max_sources": 1,
"audio_source_ids": [
1
]
},
"video_sources": {
"max_sources": 1,
"video_source_ids": [
1
]
},
"output_type": {
"value": "unicast",
"unicast": {
"protocol": "RTP",
"destination_ip": "1.2.3.4",
"destination_port": 1234
},
"multicast": {
"protocol": "RTP",
"multicast_ip": "1.2.3.4",
"multicast_port": 1234,
"ttl": 1
},
"rtsp": {
"stream_name": "test",
"server_port": 5555
},
"rtmp": {
"status": "STREAM_OFF",
"service": {
"value": "generic",
"possible_values": [
"generic",
"akamai",
"wowza",
"wowza_cloud",
"youtube",
"facebook",
"aws_ivs",
"mux"
],
"data": "{}"
}
},
"http_pull": {
"protocols": [
"DASH",
"HLS"
],
"media_container": {
"value": "FMP4",
"possible_values": [
"TS",
"FMP4"
]
},
"segment_length": 1,
"number_of_segments": 1,
"ultra_low_latency": {
"enable": false,
"chunk_interval": {
"interval": 1,
"unit": "MILLISECONDS",
"possible_units": [
"MILLISECONDS",
"FRAMES"
]
}
}
},
"http_push": {
"manifest_type": {
"protocols": [
"HLS",
"DASH"
],
"available_protocols": [
"HLS",
"DASH"
]
},
"media_container": {
"value": "FMP4",
"possible_values": [
"TS",
"FMP4"
]
},
"segment_length": 2,
"number_of_segments": 10,
"save_segment_window": false,
"service": {
"value": "generic",
"possible_values": [
"generic",
"akamai"
],
"data": "{}"
},
"synchronization": {
"enable": false,
"dash_presentation_delay": 1
},
"ultra_low_latency": {
"enable": false,
"chunk_interval": {
"interval": 1,
"unit": "MILLISECONDS",
"possible_units": [
"MILLISECONDS",
"FRAMES"
]
}
}
},
"srt": {
"status": "STREAM_OFF",
"call_mode": {
"value": "CALLER",
"possible_values": [
"CALLER",
"LISTENER"
]
},
"dest_ip": "1.2.3.4 || stream.url",
"dest_port": 5555,
"latency": 120,
"encryption_enabled": true,
"passphrase": "abc123",
"bw_overhead": 25,
"key_size": {
"value": "AES128",
"possible_values": [
"AES128",
"AES192",
"AES256"
]
},
"stream_id": "stream1"
},
"file_record": {
"filename_base": "VID",
"filename_timezone": {
"value": "UTC",
"possible_values": [
"UTC",
"LOCALTIME"
]
},
"selected_device_name": "84C4-6DDE",
"available_drives": [
{
"uuid": "Hello, world!",
"type": "Hello, world!",
"size": 1,
"free_space": 1
}
],
"status": "`FILE_NO_STORAGE_DEVICE",
"file_format": {
"value": "TS",
"possible_values": [
"MP4",
"TS",
"FMP4"
]
},
"device_selection_policy": {
"value": "ATTACH_TIME_FIRST",
"possible_values": [
"ATTACH_TIME_FIRST",
"ATTACH_TIME_LAST",
"FREE_SPACE_MAX",
"TOTAL_SPACE_MAX",
"VOLUME_UUID"
],
"data": "device_uuid"
},
"delete_oldest_when_full": false,
"limit_max_file_size": {
"enable": true,
"value": 1000000
},
"ftp_upload": {
"enable": true,
"protocol": {
"value": "FTP",
"possible_values": [
"FTP",
"SFTP"
]
},
"server": "my.ftp.com",
"port": 21,
"username": "admin",
"password": "password",
"file_path": "recordings",
"delete_file_after_upload": true,
"bytes_uploaded": 1,
"total_bytes": 1,
"seconds_elapsed": 1,
"files_remaining": 1,
"status": "Hello, world!"
}
},
"thumbnail": {
"interval": {
"value": 1,
"value_range": {
"min": 32,
"max": 512
}
},
"width": {
"value": 320,
"value_range": {
"min": 32,
"max": 512
}
}
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"out_stream_id": {
"type": "number"
},
"enable": {
"type": "boolean"
},
"audio_sources": {
"type": "object",
"properties": {
"max_sources": {
"type": "number"
},
"audio_source_ids": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"max_sources",
"audio_source_ids"
]
},
"video_sources": {
"type": "object",
"properties": {
"max_sources": {
"type": "number"
},
"video_source_ids": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"max_sources",
"video_source_ids"
]
},
"output_type": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"unicast",
"multicast",
"rtsp",
"rtmp",
"http_pull",
"http_push",
"srt",
"file",
"thumbnail"
]
},
"unicast": {
"type": "object",
"properties": {
"protocol": {
"type": "string"
},
"destination_ip": {
"type": "string"
},
"destination_port": {
"type": "number"
}
}
},
"multicast": {
"type": "object",
"properties": {
"protocol": {
"type": "string"
},
"multicast_ip": {
"type": "string"
},
"multicast_port": {
"type": "number"
},
"ttl": {
"type": "number"
}
}
},
"rtsp": {
"type": "object",
"properties": {
"stream_name": {
"type": "string"
},
"server_port": {
"type": "number"
}
}
},
"rtmp": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"service": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
},
"data": {
"type": "string"
}
},
"required": [
"value",
"possible_values",
"data"
]
}
},
"required": [
"status",
"service"
]
},
"http_pull": {
"type": "object",
"properties": {
"protocols": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
},
"media_container": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"segment_length": {
"type": "number"
},
"number_of_segments": {
"type": "number"
},
"ultra_low_latency": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"chunk_interval": {
"type": "object",
"properties": {
"interval": {
"type": "number"
},
"unit": {
"type": "string"
},
"possible_units": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"interval",
"unit",
"possible_units"
]
}
},
"required": [
"enable"
]
}
},
"required": [
"protocols"
]
},
"http_push": {
"type": "object",
"properties": {
"manifest_type": {
"type": "object",
"properties": {
"protocols": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
},
"available_protocols": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"protocols",
"available_protocols"
]
},
"media_container": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"segment_length": {
"type": "number"
},
"number_of_segments": {
"type": "number"
},
"save_segment_window": {
"type": "boolean"
},
"service": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
},
"data": {
"type": "string"
}
},
"required": [
"value",
"possible_values",
"data"
]
},
"synchronization": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"dash_presentation_delay": {
"type": "number"
}
},
"required": [
"enable"
]
},
"ultra_low_latency": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"chunk_interval": {
"type": "object",
"properties": {
"interval": {
"type": "number"
},
"unit": {
"type": "string"
},
"possible_units": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"interval",
"unit",
"possible_units"
]
}
},
"required": [
"enable"
]
}
}
},
"srt": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"call_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"dest_ip": {
"type": "string"
},
"dest_port": {
"type": "number"
},
"latency": {
"type": "number"
},
"encryption_enabled": {
"type": "boolean"
},
"passphrase": {
"type": "string"
},
"bw_overhead": {
"type": "number"
},
"key_size": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"stream_id": {
"type": "string"
}
},
"required": [
"status",
"dest_ip",
"dest_port",
"latency",
"encryption_enabled",
"bw_overhead"
]
},
"file_record": {
"type": "object",
"properties": {
"filename_base": {
"type": "string"
},
"filename_timezone": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"selected_device_name": {
"type": "string"
},
"available_drives": {
"type": "array"
},
"status": {
"type": "string"
},
"file_format": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"device_selection_policy": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
},
{
"type": "string"
}
]
},
"data": {
"type": "string"
}
},
"required": [
"value",
"possible_values",
"data"
]
},
"delete_oldest_when_full": {
"type": "boolean"
},
"limit_max_file_size": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"value": {
"type": "number"
}
},
"required": [
"enable",
"value"
]
},
"ftp_upload": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"protocol": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"FTP",
"SFTP"
]
},
"possible_values": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"value",
"possible_values"
]
},
"server": {
"type": "string"
},
"port": {
"type": "number"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"file_path": {
"type": "string"
},
"delete_file_after_upload": {
"type": "boolean"
},
"bytes_uploaded": {
"type": "number"
},
"total_bytes": {
"type": "number"
},
"seconds_elapsed": {
"type": "number"
},
"files_remaining": {
"type": "number"
},
"status": {
"type": "string"
}
},
"required": [
"enable",
"server",
"port",
"username",
"password",
"file_path",
"delete_file_after_upload",
"bytes_uploaded",
"total_bytes",
"seconds_elapsed",
"files_remaining",
"status"
]
}
},
"required": [
"filename_base",
"filename_timezone",
"selected_device_name",
"available_drives",
"status",
"file_format",
"device_selection_policy"
]
},
"thumbnail": {
"type": "object",
"properties": {
"interval": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"value_range": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
}
},
"required": [
"value",
"value_range"
]
},
"width": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"value_range": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
}
},
"required": [
"value",
"value_range"
]
}
},
"required": [
"interval",
"width"
]
}
},
"required": [
"value"
]
}
},
"required": [
"out_stream_id",
"enable",
"output_type"
]
}
Update Encoder Streaming OutputPUT/v2/out_streams/{id}
Update the state of a single encoder streaming output
Example URI
- id
integer
(required) Example: 0
Headers
Content-Type: application/json
Body
{
"enable": true,
"audio_sources": {
"audio_source_ids": [
1
]
},
"video_sources": {
"video_source_ids": [
1
]
},
"output_type": {
"value": "unicast",
"unicast": {
"protocol": "RTP",
"destination_ip": "1.2.3.4",
"destination_port": 1234
},
"multicast": {
"protocol": "RTP",
"multicast_ip": "1.2.3.4",
"multicast_port": 1234,
"ttl": 1
},
"rtsp": {
"stream_name": "test",
"server_port": 5555
},
"rtmp": {
"service": {
"value": "generic",
"data": "{}"
}
},
"http_pull": {
"media_container": {
"value": "FMP4"
},
"segment_length": 1,
"number_of_segments": 1,
"ultra_low_latency": {
"enable": false,
"chunk_interval": {
"interval": 1,
"unit": "MILLISECONDS"
}
}
},
"http_push": {
"manifest_type": {
"protocols": [
"HLS",
"DASH"
]
},
"media_container": {
"value": "FMP4"
},
"segment_length": 2,
"number_of_segments": 10,
"save_segment_window": false,
"service": {
"value": "generic",
"data": "{}"
},
"synchronization": {
"enable": false,
"dash_presentation_delay": 1
},
"ultra_low_latency": {
"enable": false,
"chunk_interval": {
"interval": 1,
"unit": "MILLISECONDS"
}
}
},
"srt": {
"call_mode": {
"value": "CALLER"
},
"dest_ip": "1.2.3.4 || stream.url",
"dest_port": 5555,
"latency": 120,
"encryption_enabled": true,
"passphrase": "abc123",
"bw_overhead": 25,
"key_size": {
"value": "AES128"
},
"stream_id": "stream1"
},
"file_record": {
"filename_base": "VID",
"filename_timezone": {
"value": "UTC"
},
"file_format": {
"value": "TS"
},
"device_selection_policy": {
"value": "ATTACH_TIME_FIRST",
"data": "device_uuid"
},
"delete_oldest_when_full": false,
"limit_max_file_size": {
"enable": true,
"value": 1000000
},
"ftp_upload": {
"enable": true,
"protocol": {
"value": "FTP"
},
"server": "my.ftp.com",
"port": 21,
"username": "admin",
"password": "password",
"sftp_key": "string",
"file_path": "recordings",
"delete_file_after_upload": true
}
},
"thumbnail": {
"interval": {
"value": 1
},
"width": {
"value": 320
}
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"audio_sources": {
"type": "object",
"properties": {
"audio_source_ids": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"audio_source_ids"
]
},
"video_sources": {
"type": "object",
"properties": {
"video_source_ids": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"video_source_ids"
]
},
"output_type": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"unicast",
"multicast",
"rtsp",
"rtmp",
"http_pull",
"http_push",
"file",
"srt",
"thumbnail"
]
},
"unicast": {
"type": "object",
"properties": {
"protocol": {
"type": "string"
},
"destination_ip": {
"type": "string"
},
"destination_port": {
"type": "number"
}
}
},
"multicast": {
"type": "object",
"properties": {
"protocol": {
"type": "string"
},
"multicast_ip": {
"type": "string"
},
"multicast_port": {
"type": "number"
},
"ttl": {
"type": "number"
}
}
},
"rtsp": {
"type": "object",
"properties": {
"stream_name": {
"type": "string"
},
"server_port": {
"type": "number"
}
}
},
"rtmp": {
"type": "object",
"properties": {
"service": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"data": {
"type": "string"
}
},
"required": [
"value",
"data"
]
}
},
"required": [
"service"
]
},
"http_pull": {
"type": "object",
"properties": {
"media_container": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"segment_length": {
"type": "number"
},
"number_of_segments": {
"type": "number"
},
"ultra_low_latency": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"chunk_interval": {
"type": "object",
"properties": {
"interval": {
"type": "number"
},
"unit": {
"type": "string"
}
},
"required": [
"interval",
"unit"
]
}
},
"required": [
"enable"
]
}
}
},
"http_push": {
"type": "object",
"properties": {
"manifest_type": {
"type": "object",
"properties": {
"protocols": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"protocols"
]
},
"media_container": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"segment_length": {
"type": "number"
},
"number_of_segments": {
"type": "number"
},
"save_segment_window": {
"type": "boolean"
},
"service": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"data": {
"type": "string"
}
},
"required": [
"value",
"data"
]
},
"synchronization": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"dash_presentation_delay": {
"type": "number"
}
},
"required": [
"enable"
]
},
"ultra_low_latency": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"chunk_interval": {
"type": "object",
"properties": {
"interval": {
"type": "number"
},
"unit": {
"type": "string"
}
},
"required": [
"interval",
"unit"
]
}
},
"required": [
"enable"
]
}
}
},
"srt": {
"type": "object",
"properties": {
"call_mode": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"dest_ip": {
"type": "string"
},
"dest_port": {
"type": "number"
},
"latency": {
"type": "number"
},
"encryption_enabled": {
"type": "boolean"
},
"passphrase": {
"type": "string"
},
"bw_overhead": {
"type": "number"
},
"key_size": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"stream_id": {
"type": "string"
}
},
"required": [
"dest_ip",
"dest_port",
"encryption_enabled"
]
},
"file_record": {
"type": "object",
"properties": {
"filename_base": {
"type": "string"
},
"filename_timezone": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"file_format": {
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
},
"device_selection_policy": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"data": {
"type": "string"
}
},
"required": [
"value",
"data"
]
},
"delete_oldest_when_full": {
"type": "boolean"
},
"limit_max_file_size": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"value": {
"type": "number"
}
},
"required": [
"enable",
"value"
]
},
"ftp_upload": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"protocol": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"FTP",
"SFTP"
]
}
},
"required": [
"value"
]
},
"server": {
"type": "string"
},
"port": {
"type": "number"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"sftp_key": {
"type": "string"
},
"file_path": {
"type": "string"
},
"delete_file_after_upload": {
"type": "boolean"
}
},
"required": [
"enable",
"server",
"port",
"username",
"password",
"file_path",
"delete_file_after_upload"
]
}
},
"required": [
"filename_base",
"filename_timezone",
"file_format",
"device_selection_policy"
]
},
"thumbnail": {
"type": "object",
"properties": {
"interval": {
"type": "object",
"properties": {
"value": {
"type": "number"
}
},
"required": [
"value"
]
},
"width": {
"type": "object",
"properties": {
"value": {
"type": "number"
}
},
"required": [
"value"
]
}
},
"required": [
"interval",
"width"
]
}
},
"required": [
"value"
]
}
},
"required": [
"enable",
"output_type"
]
}
204
Output Actions ¶
Details of specific actions that can be run on streaming outputs.
General Output ActionsPOST/v2/out_streams/{id}/action/{action_name}
Run action for output, often supported by RTMP outputs, to support third-party API calls.
Example URI
- id
integer
(required) Example: 0- action_name
string
(required) Example: pair, account_info, streamlist, authenticate_ftp
200
File Record - Validate FTPPOST/v2/out_streams/{id}/action/authenticate_ftp
Validate the FTP server configuration provided in the request. If ‘password’ is not provided, then the currently saved one will be used.
Example URI
- id
integer
(required) Example: 0
Headers
Content-Type: application/json
Body
{
"server": "my.ftp.com",
"username": "admin",
"password": "password",
"file_path": "recordings"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"server": {
"type": "string"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"file_path": {
"type": "string"
}
}
}
200
Headers
Content-Type: application/json
Body
{
"result": "SUCCESS"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"result": {
"type": "string",
"enum": [
"SUCCESS",
"FAILURE_SERVER_UNREACHABLE",
"FAILURE_AUTHENTICATION",
"FAILURE_PERMISSIONS"
]
}
},
"required": [
"result"
]
}
Storage ¶
Storage Devices ¶
List Storage DevicesGET/v2/storage
Get a list of storage devices.
Example URI
200
Headers
Content-Type: application/json
Body
[
{
"devpath": "/dev/block/sdg1",
"syspath": "/sys/devices/soc/6a00000.ssusb/6a00000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.0/host2/target2:0:0/2:0:0:0/block/sdg/sdg1",
"devno": 2145,
"devtime_us": 1575662248234999,
"fstype": "vfat",
"version": "FAT32",
"label": "VOLUMEONE",
"uuid": "84C4-6DDE",
"usage": "filesystem",
"kind": "PARTITION",
"disk_devno": 2144,
"partno": "1",
"type": "USB",
"vendor": "StorageVendor",
"model": "StorageModel",
"size_bytes": 15604908032,
"mount": {
"devno": 2145,
"fsname": "/dev/block/vold/public:8,97",
"dir": "/mnt/media_rw/84C4-6DDE",
"type": "vfat",
"opts": "rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro",
"freq": 0,
"passno": 0,
"size_bytes": 15588130816,
"avail_bytes": 8874713088,
"blocksize_bytes": 8192
},
"fslimits": {
"max_volume_size_bytes": 17592186044416,
"max_file_size_bytes": 4294967295,
"max_filename_length": 255,
"max_path_length": 4096
}
}
]
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"devpath": {
"type": "string"
},
"syspath": {
"type": "string"
},
"devno": {
"type": "number"
},
"devtime_us": {
"type": "number"
},
"fstype": {
"type": "string"
},
"version": {
"type": "string"
},
"label": {
"type": "string"
},
"uuid": {
"type": "string"
},
"usage": {
"type": "string"
},
"kind": {
"type": "string"
},
"disk_devno": {
"type": "number"
},
"partno": {
"type": "string"
},
"type": {
"type": "string"
},
"vendor": {
"type": "string"
},
"model": {
"type": "string"
},
"size_bytes": {
"type": "number"
},
"mount": {
"type": "object",
"properties": {
"devno": {
"type": "number"
},
"fsname": {
"type": "string"
},
"dir": {
"type": "string"
},
"type": {
"type": "string"
},
"opts": {
"type": "string"
},
"freq": {
"type": "number"
},
"passno": {
"type": "number"
},
"size_bytes": {
"type": "number"
},
"avail_bytes": {
"type": "number"
},
"blocksize_bytes": {
"type": "number"
}
},
"required": [
"devno",
"fsname",
"dir",
"type",
"opts",
"freq",
"passno",
"size_bytes",
"avail_bytes",
"blocksize_bytes"
]
},
"fslimits": {
"type": "object",
"properties": {
"max_volume_size_bytes": {
"type": "number"
},
"max_file_size_bytes": {
"type": "number"
},
"max_filename_length": {
"type": "number"
},
"max_path_length": {
"type": "number"
}
},
"required": [
"max_volume_size_bytes",
"max_file_size_bytes",
"max_filename_length",
"max_path_length"
]
}
},
"required": [
"devpath",
"syspath",
"devno",
"devtime_us",
"fstype",
"version",
"label",
"uuid",
"usage",
"kind",
"disk_devno",
"partno",
"type",
"vendor",
"model",
"size_bytes",
"mount",
"fslimits"
]
}
}
Get Storage Device InfoGET/v2/storage/{devno}
Get storage device information for the specified device.
Example URI
- devno
integer
(required) Example: 2145
200
Headers
Content-Type: application/json
Body
{
"devpath": "/dev/block/sdg1",
"syspath": "/sys/devices/soc/6a00000.ssusb/6a00000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.0/host2/target2:0:0/2:0:0:0/block/sdg/sdg1",
"devno": 2145,
"devtime_us": 1575662248234999,
"fstype": "vfat",
"version": "FAT32",
"label": "VOLUMEONE",
"uuid": "84C4-6DDE",
"usage": "filesystem",
"kind": "PARTITION",
"disk_devno": 2144,
"partno": "1",
"type": "USB",
"vendor": "StorageVendor",
"model": "StorageModel",
"size_bytes": 15604908032,
"mount": {
"devno": 2145,
"fsname": "/dev/block/vold/public:8,97",
"dir": "/mnt/media_rw/84C4-6DDE",
"type": "vfat",
"opts": "rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro",
"freq": 0,
"passno": 0,
"size_bytes": 15588130816,
"avail_bytes": 8874713088,
"blocksize_bytes": 8192
},
"fslimits": {
"max_volume_size_bytes": 17592186044416,
"max_file_size_bytes": 4294967295,
"max_filename_length": 255,
"max_path_length": 4096
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"devpath": {
"type": "string"
},
"syspath": {
"type": "string"
},
"devno": {
"type": "number"
},
"devtime_us": {
"type": "number"
},
"fstype": {
"type": "string"
},
"version": {
"type": "string"
},
"label": {
"type": "string"
},
"uuid": {
"type": "string"
},
"usage": {
"type": "string"
},
"kind": {
"type": "string"
},
"disk_devno": {
"type": "number"
},
"partno": {
"type": "string"
},
"type": {
"type": "string"
},
"vendor": {
"type": "string"
},
"model": {
"type": "string"
},
"size_bytes": {
"type": "number"
},
"mount": {
"type": "object",
"properties": {
"devno": {
"type": "number"
},
"fsname": {
"type": "string"
},
"dir": {
"type": "string"
},
"type": {
"type": "string"
},
"opts": {
"type": "string"
},
"freq": {
"type": "number"
},
"passno": {
"type": "number"
},
"size_bytes": {
"type": "number"
},
"avail_bytes": {
"type": "number"
},
"blocksize_bytes": {
"type": "number"
}
},
"required": [
"devno",
"fsname",
"dir",
"type",
"opts",
"freq",
"passno",
"size_bytes",
"avail_bytes",
"blocksize_bytes"
]
},
"fslimits": {
"type": "object",
"properties": {
"max_volume_size_bytes": {
"type": "number"
},
"max_file_size_bytes": {
"type": "number"
},
"max_filename_length": {
"type": "number"
},
"max_path_length": {
"type": "number"
}
},
"required": [
"max_volume_size_bytes",
"max_file_size_bytes",
"max_filename_length",
"max_path_length"
]
}
},
"required": [
"devpath",
"syspath",
"devno",
"devtime_us",
"fstype",
"version",
"label",
"uuid",
"usage",
"kind",
"disk_devno",
"partno",
"type",
"vendor",
"model",
"size_bytes",
"mount",
"fslimits"
],
"additionalProperties": false
}
Unmount Storage DevicePOST/v2/storage/{devno}/unmount
Unmount the specified device.
Example URI
- devno
integer
(required) Example: 2145
200
Format Storage DevicePOST/v2/storage/{devno}/format
Format the specified device.
Example URI
- devno
integer
(required) Example: 2145
200
XML ¶
XML ¶
Get XML SettingsGET/v2/xml
Get the XML polling settings for the device.
Example URI
200
Headers
Content-Type: application/json
Body
{
"xml": {
"enabled": true,
"url": "http://get.your.xml.here/test.xml",
"poll_interval": 10,
"username": "Hello, world!",
"password": "Hello, world!"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"xml": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"url": {
"type": "string"
},
"poll_interval": {
"type": "number"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
}
},
"required": [
"enabled",
"url",
"poll_interval"
]
}
},
"required": [
"xml"
]
}
Update XML SettingsPUT/v2/xml
Update the XML polling settings for the device.
Example URI
Headers
Content-Type: application/json
Body
{
"xml": {
"enabled": true,
"url": "http://get.your.xml.here/test.xml",
"poll_interval": 10,
"username": "Hello, world!",
"password": "Hello, world!"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"xml": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"url": {
"type": "string"
},
"poll_interval": {
"type": "number"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
}
},
"required": [
"enabled",
"url",
"poll_interval"
]
}
},
"required": [
"xml"
]
}
204