TASCAM VS-R Streaming REST API - V2
This document presents the V2 REST API for TASCAM VS-R streaming devices. Multimedia encoder settings, media sources (inputs) and media destinations (outputs) including file recording and ftp transfers can all be configured and controlled through the V2 REST API.
For specific possible values, please refer to the particular streaming device you are using. TASCAM VS-R streaming devices with V2.x.x firmware share a common V2 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",
"static_network": {
"ip_address": "1.2.3.4",
"netmask": "255.255.255.0",
"gateway": "1.2.3.1",
"dns_address": "5.6.7.8"
},
"version": "versionstring",
"device_id": "deviceid",
"xml": {},
"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"
},
"static_network": {
"type": "object",
"properties": {
"ip_address": {
"type": "string"
},
"netmask": {
"type": "string"
},
"gateway": {
"type": "string"
},
"dns_address": {
"type": "string"
}
},
"required": [
"ip_address",
"netmask",
"gateway",
"dns_address"
]
},
"version": {
"type": "string"
},
"device_id": {
"type": "string"
},
"xml": {},
"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",
"static_network",
"version",
"device_id",
"xml",
"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_address": "5.6.7.8"
},
"xml": {},
"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_address": {
"type": "string"
}
},
"required": [
"ip_address",
"netmask",
"gateway",
"dns_address"
]
},
"xml": {},
"clock": {
"type": "object",
"properties": {
"ntp_server": {
"type": "string"
},
"timezone": {
"type": "string"
}
},
"required": [
"ntp_server",
"timezone"
]
}
},
"required": [
"device_name",
"ip_scheme",
"static_network",
"xml",
"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_embedded",
"input_3p5mm"
],
"detected": true
},
"video_input": {
"value": "input_hdmi",
"possible_values": [
"input_hdmi",
],
"detected_format": "FORMAT_1080p60"
}
}
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": "string"
}
},
"required": [
"value",
"possible_values",
"detected_format"
]
}
},
"required": [
"in_channel_id",
"audio_input",
"video_input"
]
}
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"
}
}
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"
]
}
},
"required": [
"audio_input",
"video_input"
]
}
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
}
],
"aud_encoders": [
{
"aud_encoder_id": 1,
"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"
]
}
},
"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"
]
}
}
},
"required": [
"vid_encoders",
"aud_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"
],
"sync_groups": [
{
"active": true,
"sync_group_id": 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"
}
]
},
"sync_groups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"active": {
"type": "boolean"
},
"sync_group_id": {
"type": "number"
}
},
"required": [
"active",
"sync_group_id"
]
}
}
},
"required": [
"vid_encoders",
"available_codecs",
"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
{
"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_3840X2160",
"RES_1920X1080",
"RES_1280X720",
"RES_960X540",
"RES_720X576",
"RES_640X360",
"RES_480X270",
"RES_320X180"
]
},
"limit_to_30_fps": true,
"codec": {
"value": "H264",
"possible_values": [
"H264",
"H265"
],
"h264": {
"profile": {
"value": "baseline",
"possible_values": [
"PROFILE_BASELINE",
"PROFILE_MAIN",
"PROFILE_HIGH"
]
},
"level": "LVL5P1"
},
"h265": {
"profile": {
"value": "PROFILE_MAIN",
"possible_values": [
"PROFILE_MAIN"
]
},
"level": "LVL_5P1_MAIN"
}
},
"status": "DISABLED",
"seconds_in_status": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"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"
}
]
}
},
"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": "string"
}
},
"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": "string"
}
},
"required": [
"profile",
"level"
]
}
},
"required": [
"value",
"possible_values"
]
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
}
},
"required": [
"active",
"vid_encoder_id",
"in_channel_id",
"bitrate",
"latency_mode",
"bitrate_mode",
"keyframe_interval",
"scaling_resolution",
"limit_to_30_fps",
"codec"
]
}
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
{
"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,
"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": {
"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"
},
"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": [
"in_channel_id",
"bitrate",
"latency_mode",
"bitrate_mode",
"keyframe_interval",
"scaling_resolution",
"limit_to_30_fps",
"codec"
]
}
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"
]
}
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"
}
}
},
"required": [
"aud_encoders",
"available_codecs"
]
}
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
{
"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
}
},
"status": "DISABLED",
"seconds_in_status": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"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": "string"
},
"value_range": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
]
}
},
"required": [
"value",
"value_range"
]
},
"status": {
"type": "string"
},
"seconds_in_status": {
"type": "number"
}
},
"required": [
"active",
"aud_encoder_id",
"in_channel_id",
"codec",
"sample",
"mix_mode",
"bitrate"
]
}
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
{
"in_channel_id": 1,
"codec": {
"value": "mpeg4_aac"
},
"mix_mode": {
"value": "STEREO"
},
"bitrate": {
"value": "64"
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"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": "string"
}
},
"required": [
"value"
]
}
},
"required": [
"in_channel_id",
"codec",
"mix_mode",
"bitrate"
]
}
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_record",
"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_source": {
"audio_source_id": 1
},
"video_source": {
"video_source_id": 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",
"wowza",
"wowza_cloud",
"youtube"
],
"data": "{}"
}
},
"http_pull": {
"protocols": [
"HLS"
],
"media_container": {
"value": "TS",
"possible_values": [
"TS"
]
},
"segment_length": 1,
"number_of_segments": 1
},
"file_record": {
"filename_base": "VID",
"selected_drive_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"
]
},
"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"
]
},
"server": "my.ftp.com",
"port": 21,
"username": "admin",
"password": "password",
"sftp_key": "string",
"file_path": "recordings",
"delete_file_after_upload": true,
"bytes_uploaded": 1,
"total_bytes": 1,
"seconds_elapsed": 1,
"files_remaining": 1,
"status": "Hello, world!"
}
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"out_stream_id": {
"type": "number"
},
"enable": {
"type": "boolean"
},
"audio_source": {
"type": "object",
"properties": {
"audio_source_id": {
"type": "number"
}
},
"required": [
"audio_source_id"
]
},
"video_source": {
"type": "object",
"properties": {
"video_source_id": {
"type": "number"
}
},
"required": [
"video_source_id"
]
},
"output_type": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"unicast",
"multicast",
"rtsp",
"rtmp",
"http_pull",
"file_record"
]
},
"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"
}
]
},
"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"
}
},
"required": [
"protocols"
]
},
"file_record": {
"type": "object",
"properties": {
"filename_base": {
"type": "string"
},
"selected_drive_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"
]
},
"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",
"selected_drive_name",
"available_drives",
"status",
"file_format",
"device_selection_policy"
]
}
},
"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_source": {
"audio_source_id": 1
},
"video_source": {
"video_source_id": 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": "TS"
},
"segment_length": 1,
"number_of_segments": 1
},
"file_record": {
"filename_base": "VID",
"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
}
}
}
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"audio_source": {
"type": "object",
"properties": {
"audio_source_id": {
"type": "number"
}
},
"required": [
"audio_source_id"
]
},
"video_source": {
"type": "object",
"properties": {
"video_source_id": {
"type": "number"
}
},
"required": [
"video_source_id"
]
},
"output_type": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"unicast",
"multicast",
"rtsp",
"rtmp",
"http_pull",
"file_record"
]
},
"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"
}
}
},
"file_record": {
"type": "object",
"properties": {
"filename_base": {
"type": "string"
},
"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"
]
}
},
"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",
"file_format",
"device_selection_policy"
]
}
},
"required": [
"value"
]
}
},
"required": [
"enable",
"output_type"
]
}
204
Storage ¶
Storage Devices ¶
Get Storage Devices ListGET/v2/storage
Get a list of storage devices.
Example URI
200
Headers
Content-Type: application/json
Body
{
"storage": [
{
"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": {
"storage": {
"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"
]
}
}
},
"required": [
"storage"
]
}
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
Generated by aglio on 20 May 2021