Download OpenAPI specification:Download
This is an API for Flussonic Central subsystem. Flussonic Central is the underlying technology behind Flussonic Watcher providing you with options for managing streams, events, and Agents in a cluster of several streamers (i.e. Flussonic Media Servers) through a single point of access.
Permanent download link to JSON schema file.
Flussonic Central does not include features for managing users and their permissions. This part is Watcher VMS subsystem or Cloud.
Watcher VMS addresses Flussonic Central when users manage cameras (streams), Agents, and events. However, you may use Flussonic Central for any streams, not only cameras.
Streamer 1
Flussonic Central <-> Watcher VMS
Streamer N
You can install Flussonic Central subsystem on your local server.
Some methods in Flussonic Central API may look very similar to Flussonic Media Server API,
but you should pay attention to some parameters that are different. For example, all streams
are created manually in Watcher Core while streams with dynamic names are not supported
so you will not find the named_by
parameter in the stream config
or the part
parameter in the stream_save
method. Do not rely on any undocumented parameters.
One of the components of the Central is Layouter - our development that manages the layout of streams and agents across streamers. For more details on how the layout can be controlled, see stream labels and streamer labels descriptions.
This API method is one of the most important in whole API, because it gives the list of all streams, including:
You can pass any stream configuration options to the q
query string for filtering,
not only those specified in the select
parameters.
This method, as well as stream_get
, will return the effective stream configuration with all templates, defaults
included into the response. It is not exactly what you can see in your disk config. If you have configured
this stream in disk file, then the original disk configuration can be found in the config_on_disk
field.
Thus, what you get from this API call may differ from what you write to stream_save
which is another important method for managing streams.
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "streams": [
- {
- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "config_on_disk": {
- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": null,
- "duration": null,
- "opened_at": null,
- "closed_at": null
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}
}, - "stats": {
- "lifetime": 71977,
- "last_dts_at": 1636383841974,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "status": "running",
- "last_running_at": 1737975543123,
- "input_error_rate": 0,
- "bytes_in": 2445568,
- "retry_count": 0,
- "current_agent_id": "string",
- "agent_status": "connected",
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "alive": true,
- "bitrate": 186,
- "running_on": [
- "streamer1.example.com"
], - "streaming_endpoint": "string",
- "online_clients": 3,
- "bytes_out": 0
}, - "updated_at": 1637098611000,
- "autogenerated_episodes_close_timeout": 0,
- "layout": {
- "change_reason": "stream_misses_node_required_labels",
- "dvr_backups": [
- "string"
], - "inference": "string",
- "failover_from": "string",
- "node_layout_decisions": [
- {
- "role": "streamer",
- "hostname": "streamer1.com",
- "node_decision": false,
- "reasons": [
- "stream_misses_node_required_labels",
- "node_misses_stream_required_labels",
- "node_channel_limit_exceeded"
]
}
], - "ingest": "string",
- "created_at": 1637094994000,
- "originator": "layouter"
}, - "claims": {
- "bitrate": 2543
}
}
]
}
This method allows you to fetch a single stream.
The data returned in this method are the same as for streams_list
operation.
{- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "config_on_disk": {
- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}
}, - "stats": {
- "lifetime": 71977,
- "last_dts_at": 1636383841974,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "status": "running",
- "last_running_at": 1737975543123,
- "input_error_rate": 0,
- "bytes_in": 2445568,
- "retry_count": 0,
- "current_agent_id": "string",
- "agent_status": "connected",
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "alive": true,
- "bitrate": 186,
- "running_on": [
- "streamer1.example.com"
], - "streaming_endpoint": "string",
- "online_clients": 3,
- "bytes_out": 0
}, - "updated_at": 1637098611000,
- "autogenerated_episodes_close_timeout": 0,
- "layout": {
- "change_reason": "stream_misses_node_required_labels",
- "dvr_backups": [
- "string"
], - "inference": "string",
- "failover_from": "string",
- "node_layout_decisions": [
- {
- "role": "streamer",
- "hostname": "streamer1.com",
- "node_decision": false,
- "reasons": [
- "stream_misses_node_required_labels",
- "node_misses_stream_required_labels",
- "node_channel_limit_exceeded"
]
}
], - "ingest": "string",
- "created_at": 1637094994000,
- "originator": "layouter"
}, - "claims": {
- "bitrate": 2543
}
}
Create or update a stream by its name. If the stream doesn't exists in the disk config, it will be created.
If you pass only a partial stream configuration, just the passed field(s) will be updated, not the whole stream.
To create a new stream the property name
is required.
Pass the "$reset": true
option to replace the stream configuration with the provided one.
Partial stream configuration
comment | string Human-readable description of the stream. |
title | string Human-readable title of the stream. Provided for SDT MPEG-TS table or SDP RTSP title parameter. |
position | integer <sort_index> Position of the stream in order of streams in the config file, if declared. |
template | string <media_name> Template of the stream. |
recheck_secondary_inputs_interval | integer <seconds> How often to re-check secondary inputs. If this option is not set than check is never performed. |
static | boolean Default: true Whether a stream is Streamer restarts all |
disabled | boolean Whether a stream is disabled. Disabled streams are inactive and do not run. Displayed only with the API calls. |
Array of Demo source (object) or File (object) or H323 (object) or HLS (object) or RTMP (object) or RTSP (object) or SRT (object) or TSHTTP (object) or Mixer (object) or Mosaic (object) or M4F (object) or M4S (object) or RTP (object) or SHOUTcast (object) or Timeshift (object) or Playlist (object) or Copy source (object) or SPTS (object) or MPTS (object) or Publish (object) or V4L (object) or Decklink SDI (object) or DekTec SDI (object) or NDI (object) or SMPTE 2110
(object) or FRIP (object) List of stream inputs. Important: A stream without any inputs can receive video frames only if backup file is specified. | |
object (input_media_info) Use this option for fine-grained control over each input track. You can select, rename, change name and title for each video, audio track. | |
provider | string Deprecated Delete at: 25.03 Human-readable name of the content provider. Used, for example, for MPEG-TS. Deprecated, use |
"replace" (any) or "add" (any) This parameter allows to manage subtitles in an output stream. | |
integer or boolean If a connected source does not send any data within this timeout period (in seconds), the source connection is considered to be lost. This is a default configuration for a stream, can be modified for any input. | |
video_timeout | integer <seconds> If a connected source does not send video data within this timeout period (in seconds), the source connection is considered to be lost. This is a default configuration for a stream, can be modified for any input. |
audio_timeout | integer <seconds> If a connected source does not send audio data within this timeout period (in seconds), the source connection is considered to be lost. This is a default configuration for a stream, can be modified for any input. |
max_retry_timeout | integer <seconds> >= 1 The maximum time that Media Server will set for attempts to reconnect to sources when source problems occur. The time between attempts is not linear and may increase if source problems are not fixed. This parameter limits this value, but the time itself between attempts may be longer. |
object When all inputs are down, this can be used to show at least something to users.
It is important to understand that backup video behaves differently, not as inputs.
It is not a last input in the list. After any input stops sending frames, timer starts.
After | |
epg_enabled | boolean Whether to extract EPG from the input. |
"system_b" (string) or "system_a" (string) or "keep" (string) It allows to specify pack information about ac3 for outgoing MPEGTS-TS streams. The default value is | |
integer or boolean Stream's lifetime after the last client was disconnected (can be expressed in seconds or set to | |
retry_limit | integer Number of attempts for the server to reconnect to a data source. Applicable to on-demand streams only. If not defined, server will constantly try to reconnect (unlimited number of retries). If the input does not become active after specified amount of attempts, stream shuts down till the next user request. |
object Configuration of the transcoder settings. | |
object Configuration of thumbnails generator. | |
jpeg_snapshot_sign_key | string A key to sign jpeg_snapshot requests |
object (stream_dvr_spec) DVR configuraton. | |
object Configuration of authorization backend for play sessions. | |
object Configuration of authorization backend for publish sessions. | |
any Configuraton of Digital Rights Management system (DRM). | |
object Configuration to allow/forbid playing the stream via various protocols.
| |
boolean or integer The time (in seconds) that Media Server reserves for preloading the data, i. e. buffering. Prepush is always defined through GoP, but this option provides you with a more flexible way to configure the buffer size, e. g. a 1-3 or 7-10 seconds time interval. The bigger the buffer size, the better the user experience is for the users with a bad internet connection. However, the latency also increases. If set to | |
segment_count | integer Number of segments stored in memory for the segment-based protocols, such as HLS and DASH. Added to HLS live manifest. Do not forget that one more segment is stored for stale clients that come too late, but the latest segment is not shown in the manifest. |
segment_duration | integer <milliseconds> [ 1000 .. 15000 ] The time of the segment duration. Used for the protocols like HLS or DASH. The disk config offers this value in seconds. |
chunk_duration | integer <milliseconds> Chunk duration in LL-HLS manifest to be used for tunning latency. |
boolean or string A string starting the addresses of separate segments within a segment-based playlists (HLS or DASH). Each sub-playlist is stored on Media Server. If set to | |
aws"aws" (any) or scte35"scte35" (any) or rfc8216"rfc8216" (any) Whether to enable SCTE-35 ad insertion markers signaling in HLS manifest.
Ad markers can be included in SCTE-35 ( | |
add_audio_only | boolean Whether to add an audio-only version of an HLS stream. Used to create App Store compliant HLS streams to deliver the content to Apple iOS devices. |
object WebRTC play configuration for a stream. | |
Array of RTMP (object) or Multicast MPEG-TS (object) or M4F (object) or M4S (object) or Decklink SDI (object) or Dektec SDI (object) or Dektec ASI (object) or HTTP MPEG-TS (object) or HLS (object) or SRT (object) or SMPTE 2110 (object) A list of pushes. When a server initiates the connection and sends a stream
to other server(s), it is called a | |
object This parameter sets PIDs values for outgoing MPEG-TS streams. PID contains information about the TS package content and can be decoded according to special service tables.
It is possible to set PID values for PMT, SDT, video, and audio tracks. Tracks are numbered starting from one.
The code | |
object <= 10 items Stream labels in key value format. | |
Array of objects (playback_headers) <= 10 items This parameter sets playback HTTP headers for streams. | |
object Deprecated Delete at: 23.12 The param is deprecated and now used only for onvif_url and onvif_profile options. | |
object Video analytics parameters. | |
object (srt_config) SRT publishing configuration for a stream. | |
object (srt_config) SRT2 publishing configuration for a stream. | |
object (stream_config_stripped) Part of the effective config from the configuration file. | |
autogenerated_episodes_close_timeout | integer <seconds> >= 0 This option has sense only for published streams. For all other behavior is undefined and unpredicted. If the value is greater than 0, Central will generate episodes for the stream automatically based on the stream DVR ranges. Each range is considered an episode given that at least timeout seconds passed between these ranges. An episode is created at the start of the publication and is closed after a timeout after the end of publication. If new publication started in less than timeout - two publications will be merged into one episode. |
object (central_stream_layout) Current layout of stream. Central will provide configuration to nodes based on this layout. | |
object User-defined claims about the stream parameters. Set this field so that layouter can rely on this data when distributing streams. |
{- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D"
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "config_on_disk": {
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D"
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}
}, - "autogenerated_episodes_close_timeout": 0,
- "layout": {
- "change_reason": "stream_misses_node_required_labels",
- "dvr_backups": [
- "string"
], - "inference": "string",
- "failover_from": "string",
- "node_layout_decisions": [
- {
- "role": "streamer",
- "hostname": "streamer1.com",
- "node_decision": false,
- "reasons": [
- "stream_misses_node_required_labels",
- "node_misses_stream_required_labels",
- "node_channel_limit_exceeded"
]
}
], - "ingest": "string"
}, - "claims": {
- "bitrate": 2543
}
}
{- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "config_on_disk": {
- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}
}, - "stats": {
- "lifetime": 71977,
- "last_dts_at": 1636383841974,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "status": "running",
- "last_running_at": 1737975543123,
- "input_error_rate": 0,
- "bytes_in": 2445568,
- "retry_count": 0,
- "current_agent_id": "string",
- "agent_status": "connected",
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "alive": true,
- "bitrate": 186,
- "running_on": [
- "streamer1.example.com"
], - "streaming_endpoint": "string",
- "online_clients": 3,
- "bytes_out": 0
}, - "updated_at": 1637098611000,
- "autogenerated_episodes_close_timeout": 0,
- "layout": {
- "change_reason": "stream_misses_node_required_labels",
- "dvr_backups": [
- "string"
], - "inference": "string",
- "failover_from": "string",
- "node_layout_decisions": [
- {
- "role": "streamer",
- "hostname": "streamer1.com",
- "node_decision": false,
- "reasons": [
- "stream_misses_node_required_labels",
- "node_misses_stream_required_labels",
- "node_channel_limit_exceeded"
]
}
], - "ingest": "string",
- "created_at": 1637094994000,
- "originator": "layouter"
}, - "claims": {
- "bitrate": 2543
}
}
A changes into stream or streamer configuration
comment | string Human-readable description of the stream. |
title | string Human-readable title of the stream. Provided for SDT MPEG-TS table or SDP RTSP title parameter. |
position | integer <sort_index> Position of the stream in order of streams in the config file, if declared. |
template | string <media_name> Template of the stream. |
recheck_secondary_inputs_interval | integer <seconds> How often to re-check secondary inputs. If this option is not set than check is never performed. |
static | boolean Default: true Whether a stream is Streamer restarts all |
disabled | boolean Whether a stream is disabled. Disabled streams are inactive and do not run. Displayed only with the API calls. |
Array of Demo source (object) or File (object) or H323 (object) or HLS (object) or RTMP (object) or RTSP (object) or SRT (object) or TSHTTP (object) or Mixer (object) or Mosaic (object) or M4F (object) or M4S (object) or RTP (object) or SHOUTcast (object) or Timeshift (object) or Playlist (object) or Copy source (object) or SPTS (object) or MPTS (object) or Publish (object) or V4L (object) or Decklink SDI (object) or DekTec SDI (object) or NDI (object) or SMPTE 2110
(object) or FRIP (object) List of stream inputs. Important: A stream without any inputs can receive video frames only if backup file is specified. | |
object (input_media_info) Use this option for fine-grained control over each input track. You can select, rename, change name and title for each video, audio track. | |
provider | string Deprecated Delete at: 25.03 Human-readable name of the content provider. Used, for example, for MPEG-TS. Deprecated, use |
"replace" (any) or "add" (any) This parameter allows to manage subtitles in an output stream. | |
integer or boolean If a connected source does not send any data within this timeout period (in seconds), the source connection is considered to be lost. This is a default configuration for a stream, can be modified for any input. | |
video_timeout | integer <seconds> If a connected source does not send video data within this timeout period (in seconds), the source connection is considered to be lost. This is a default configuration for a stream, can be modified for any input. |
audio_timeout | integer <seconds> If a connected source does not send audio data within this timeout period (in seconds), the source connection is considered to be lost. This is a default configuration for a stream, can be modified for any input. |
max_retry_timeout | integer <seconds> >= 1 The maximum time that Media Server will set for attempts to reconnect to sources when source problems occur. The time between attempts is not linear and may increase if source problems are not fixed. This parameter limits this value, but the time itself between attempts may be longer. |
object When all inputs are down, this can be used to show at least something to users.
It is important to understand that backup video behaves differently, not as inputs.
It is not a last input in the list. After any input stops sending frames, timer starts.
After | |
epg_enabled | boolean Whether to extract EPG from the input. |
"system_b" (string) or "system_a" (string) or "keep" (string) It allows to specify pack information about ac3 for outgoing MPEGTS-TS streams. The default value is | |
integer or boolean Stream's lifetime after the last client was disconnected (can be expressed in seconds or set to | |
retry_limit | integer Number of attempts for the server to reconnect to a data source. Applicable to on-demand streams only. If not defined, server will constantly try to reconnect (unlimited number of retries). If the input does not become active after specified amount of attempts, stream shuts down till the next user request. |
object Configuration of the transcoder settings. | |
object Configuration of thumbnails generator. | |
jpeg_snapshot_sign_key | string A key to sign jpeg_snapshot requests |
object (stream_dvr_spec) DVR configuraton. | |
object Configuration of authorization backend for play sessions. | |
object Configuration of authorization backend for publish sessions. | |
any Configuraton of Digital Rights Management system (DRM). | |
object Configuration to allow/forbid playing the stream via various protocols.
| |
boolean or integer The time (in seconds) that Media Server reserves for preloading the data, i. e. buffering. Prepush is always defined through GoP, but this option provides you with a more flexible way to configure the buffer size, e. g. a 1-3 or 7-10 seconds time interval. The bigger the buffer size, the better the user experience is for the users with a bad internet connection. However, the latency also increases. If set to | |
segment_count | integer Number of segments stored in memory for the segment-based protocols, such as HLS and DASH. Added to HLS live manifest. Do not forget that one more segment is stored for stale clients that come too late, but the latest segment is not shown in the manifest. |
segment_duration | integer <milliseconds> [ 1000 .. 15000 ] The time of the segment duration. Used for the protocols like HLS or DASH. The disk config offers this value in seconds. |
chunk_duration | integer <milliseconds> Chunk duration in LL-HLS manifest to be used for tunning latency. |
boolean or string A string starting the addresses of separate segments within a segment-based playlists (HLS or DASH). Each sub-playlist is stored on Media Server. If set to | |
aws"aws" (any) or scte35"scte35" (any) or rfc8216"rfc8216" (any) Whether to enable SCTE-35 ad insertion markers signaling in HLS manifest.
Ad markers can be included in SCTE-35 ( | |
add_audio_only | boolean Whether to add an audio-only version of an HLS stream. Used to create App Store compliant HLS streams to deliver the content to Apple iOS devices. |
object WebRTC play configuration for a stream. | |
Array of RTMP (object) or Multicast MPEG-TS (object) or M4F (object) or M4S (object) or Decklink SDI (object) or Dektec SDI (object) or Dektec ASI (object) or HTTP MPEG-TS (object) or HLS (object) or SRT (object) or SMPTE 2110 (object) A list of pushes. When a server initiates the connection and sends a stream
to other server(s), it is called a | |
object This parameter sets PIDs values for outgoing MPEG-TS streams. PID contains information about the TS package content and can be decoded according to special service tables.
It is possible to set PID values for PMT, SDT, video, and audio tracks. Tracks are numbered starting from one.
The code | |
object <= 10 items Stream labels in key value format. | |
Array of objects (playback_headers) <= 10 items This parameter sets playback HTTP headers for streams. | |
object Deprecated Delete at: 23.12 The param is deprecated and now used only for onvif_url and onvif_profile options. | |
object Video analytics parameters. | |
object (srt_config) SRT publishing configuration for a stream. | |
object (srt_config) SRT2 publishing configuration for a stream. | |
object (stream_config_stripped) Part of the effective config from the configuration file. | |
autogenerated_episodes_close_timeout | integer <seconds> >= 0 This option has sense only for published streams. For all other behavior is undefined and unpredicted. If the value is greater than 0, Central will generate episodes for the stream automatically based on the stream DVR ranges. Each range is considered an episode given that at least timeout seconds passed between these ranges. An episode is created at the start of the publication and is closed after a timeout after the end of publication. If new publication started in less than timeout - two publications will be merged into one episode. |
object (central_stream_layout) Current layout of stream. Central will provide configuration to nodes based on this layout. | |
object User-defined claims about the stream parameters. Set this field so that layouter can rely on this data when distributing streams. |
{- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D"
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "config_on_disk": {
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D"
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}
}, - "autogenerated_episodes_close_timeout": 0,
- "layout": {
- "change_reason": "stream_misses_node_required_labels",
- "dvr_backups": [
- "string"
], - "inference": "string",
- "failover_from": "string",
- "node_layout_decisions": [
- {
- "role": "streamer",
- "hostname": "streamer1.com",
- "node_decision": false,
- "reasons": [
- "stream_misses_node_required_labels",
- "node_misses_stream_required_labels",
- "node_channel_limit_exceeded"
]
}
], - "ingest": "string"
}, - "claims": {
- "bitrate": 2543
}
}
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "changes": [
- {
- "name": "string",
- "change_reason": "stream_misses_node_required_labels",
- "dvr_backups": [
- "string"
], - "inference": "string",
- "failover_from": "string",
- "node_layout_decisions": [
- {
- "role": "streamer",
- "hostname": "streamer1.com",
- "node_decision": false,
- "reasons": [
- "stream_misses_node_required_labels",
- "node_misses_stream_required_labels",
- "node_channel_limit_exceeded"
]
}
], - "ingest": "string",
- "created_at": 1637094994000,
- "originator": "layouter"
}
]
}
Batch update layouts of streams. This operation does everything or nothing. If at least one stream has an invalid configuration or can't be processed, the request will fail.
List of new layouts for streams
Array of objects (central_stream_layout_list_item) List of streams layouts |
{- "layouts": [
- {
- "name": "string",
- "change_reason": "stream_misses_node_required_labels",
- "dvr_backups": [
- "string"
], - "inference": "string",
- "failover_from": "string",
- "node_layout_decisions": [
- {
- "role": "streamer",
- "hostname": "streamer1.com",
- "node_decision": false,
- "reasons": [
- "stream_misses_node_required_labels",
- "node_misses_stream_required_labels",
- "node_channel_limit_exceeded"
]
}
], - "ingest": "string"
}
]
}
{- "errors": [
- {
- "id": "string",
- "status": "string",
- "code": "string",
- "title": "string",
- "source": {
- "pointer": "string",
- "parameter": "string"
}, - "meta": {
- "property1": "string",
- "property2": "string"
}
}
]
}
This method allows you to fetch stream layouts list
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "layouts": [
- {
- "change_reason": "stream_misses_node_required_labels",
- "dvr_backups": [
- "string"
], - "inference": "string",
- "failover_from": "string",
- "node_layout_decisions": [
- {
- "role": "streamer",
- "hostname": "streamer1.com",
- "node_decision": false,
- "reasons": [
- "stream_misses_node_required_labels",
- "node_misses_stream_required_labels",
- "node_channel_limit_exceeded"
]
}
], - "ingest": "string",
- "created_at": 1637094994000,
- "originator": "layouter"
}
]
}
The list of configured and provisioned Agents, i.e. Agents that connected to your server at least once.
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "agents": [
- {
- "id": "1234567",
- "key": "string",
- "stats": {
- "agent_type": "single",
- "connections_requested": 0,
- "connections_established": 0,
- "peer_ip": "185.134.232.183",
- "local_ip": "10.10.17.88",
- "mac_address": "F0-23-B9-59-20-F1",
- "version": "v21.02-8-g535c85d",
- "endpoint_connection": {
- "opened_at": 1637094994000,
- "hostname": "agents-001.vsaas.io",
- "alive": true,
- "status_changed_at": 1634560921,
- "bytes_from_server": 40000,
- "bytes_to_server": 400000000000
}, - "streampoint_connection": {
- "opened_at": 1637094994000,
- "hostname": "agents-001.vsaas.io",
- "alive": true,
- "status_changed_at": 1634560921,
- "bytes_from_server": 40000,
- "bytes_to_server": 400000000000,
- "connections_attempted": 400,
- "connections_opened": 300,
- "connections_current": 2
}
}, - "layout": {
- "ingest": "string",
- "created_at": 1637094994000,
- "originator": "layouter"
}
}
]
}
The method allows you to fetch a single Agent.
The returned data are the same as for agents_list
operation.
{- "id": "1234567",
- "key": "string",
- "stats": {
- "agent_type": "single",
- "connections_requested": 0,
- "connections_established": 0,
- "peer_ip": "185.134.232.183",
- "local_ip": "10.10.17.88",
- "mac_address": "F0-23-B9-59-20-F1",
- "version": "v21.02-8-g535c85d",
- "endpoint_connection": {
- "opened_at": 1637094994000,
- "hostname": "agents-001.vsaas.io",
- "alive": true,
- "status_changed_at": 1634560921,
- "bytes_from_server": 40000,
- "bytes_to_server": 400000000000
}, - "streampoint_connection": {
- "opened_at": 1637094994000,
- "hostname": "agents-001.vsaas.io",
- "alive": true,
- "status_changed_at": 1634560921,
- "bytes_from_server": 40000,
- "bytes_to_server": 400000000000,
- "connections_attempted": 400,
- "connections_opened": 300,
- "connections_current": 2
}
}, - "layout": {
- "ingest": "string",
- "created_at": 1637094994000,
- "originator": "layouter"
}
}
Save the Agent parameters by the Agent ID.
Partial agent configuration
{- "id": "1234567",
- "key": "string",
- "layout": {
- "ingest": "string"
}
}
{- "id": "1234567",
- "key": "string",
- "stats": {
- "agent_type": "single",
- "connections_requested": 0,
- "connections_established": 0,
- "peer_ip": "185.134.232.183",
- "local_ip": "10.10.17.88",
- "mac_address": "F0-23-B9-59-20-F1",
- "version": "v21.02-8-g535c85d",
- "endpoint_connection": {
- "opened_at": 1637094994000,
- "hostname": "agents-001.vsaas.io",
- "alive": true,
- "status_changed_at": 1634560921,
- "bytes_from_server": 40000,
- "bytes_to_server": 400000000000
}, - "streampoint_connection": {
- "opened_at": 1637094994000,
- "hostname": "agents-001.vsaas.io",
- "alive": true,
- "status_changed_at": 1634560921,
- "bytes_from_server": 40000,
- "bytes_to_server": 400000000000,
- "connections_attempted": 400,
- "connections_opened": 300,
- "connections_current": 2
}
}, - "layout": {
- "ingest": "string",
- "created_at": 1637094994000,
- "originator": "layouter"
}
}
Batch update layouts of agents. This operation does everything or nothing. Only agents without streams will be processed, other ones would be ignored. If at least one agent has an invalid configuration or can't be processed, the request will fail.
List of new layouts for agents
Array of objects (central_agent_layout_list_item) List of agent layouts |
{- "layouts": [
- {
- "id": "string",
- "ingest": "string"
}
]
}
{- "errors": [
- {
- "id": "string",
- "status": "string",
- "code": "string",
- "title": "string",
- "source": {
- "pointer": "string",
- "parameter": "string"
}, - "meta": {
- "property1": "string",
- "property2": "string"
}
}
]
}
The method allows you to fetch logs from online Agent.
{- "status": "ok",
- "version": "version",
- "agent_id": "1234567",
- "cid": "42195",
- "mid": "3059",
- "serial": "a3dccd69f53deb79723a2a7a5f2037e1",
- "meminfo": "806400",
- "buffer_limit": 0,
- "buffer_size": 0,
- "a": "VDEVSvaNZZWeNOXqi7tA5Hm+KAqBjfHQKMzMl5aqRdYxHZkSnJ",
- "b": "xglytWCTztsbTAUVBIhQymqik7nvzXi5VbJWEQNBHFCxw/NdvY6hdknh87/3gslKpER0hIaymR67Qo8zGKICFN=="
}
This method allows you to fetch Central configuration and stats
Openmetrics"openmetrics" (string) Example: format=openmetrics This parameter is used instead of the Accept header to select of non-JSON response content format. |
{- "database": {
- "url": "postgres://central:pass@localhost:5432/central_dev",
- "max_connections": 40,
- "connect_max_retries": 20,
- "connect_retry_timeout": "2s"
}, - "redis": {
- "url": "redis://:pass@localhost:6379",
- "max_connections": 40,
- "connect_max_retries": 20,
- "connect_retry_timeout": "2s"
}, - "listeners": {
- "http": [
- {
- "port": 80,
- "address": "10.0.35.1",
- "api": true,
- "read_timeout": 5,
- "write_timeout": 5
}
], - "https": [
- {
- "port": 80,
- "address": "10.0.35.1",
- "api": true,
- "read_timeout": 5,
- "write_timeout": 5,
- "ssl_protocols": [
- "tlsv1.1",
- "tlsv1.2"
], - "certificate": "/etc/letsencrypt/live/central/fullchain.pem",
- "certificate_key": "/etc/letsencrypt/live/central/privkey.pem"
}
]
}, - "edit_auth": {
- "login": "secretlogin",
- "password": "passw"
}, - "api_key": "api_key",
- "cluster": {
- "node_config_provision_enabled": true,
- "streamer_connector_retries": 5
}, - "loglevel": "error",
- "log_requests": "false",
- "stats": {
- "server_version": "23.10",
- "uptime": 4325502,
- "started_at": 1639337825,
- "id": "61893b15-75b2-4fcb-b4cf-ae1dd0858ea2"
}, - "server_id": "820efca4-4a15-4ab7-82fc-9e76f6d61325",
- "layouter_enabled": "false",
- "layouter_sleeping_interval": 30000,
- "config_external_reconciliation_interval": 5000,
- "episodes_buffer_delay": 3000,
- "episodes_buffer_limit": 100
}
This method allows you to update central configuration. Calling this method will update config file but will not change the env.
Update config configuration
{- "edit_auth": {
- "login": "secretlogin",
- "password": "passw"
}, - "api_key": "api_key",
- "cluster": {
- "node_config_provision_enabled": true,
- "streamer_connector_retries": 5
}, - "loglevel": "error",
- "log_requests": "false",
- "layouter_enabled": "false",
- "layouter_sleeping_interval": 30000,
- "config_external_reconciliation_interval": 5000,
- "episodes_buffer_delay": 3000,
- "episodes_buffer_limit": 100
}
{- "database": {
- "url": "postgres://central:pass@localhost:5432/central_dev",
- "max_connections": 40,
- "connect_max_retries": 20,
- "connect_retry_timeout": "2s"
}, - "redis": {
- "url": "redis://:pass@localhost:6379",
- "max_connections": 40,
- "connect_max_retries": 20,
- "connect_retry_timeout": "2s"
}, - "listeners": {
- "http": [
- {
- "port": 80,
- "address": "10.0.35.1",
- "api": true,
- "read_timeout": 5,
- "write_timeout": 5
}
], - "https": [
- {
- "port": 80,
- "address": "10.0.35.1",
- "api": true,
- "read_timeout": 5,
- "write_timeout": 5,
- "ssl_protocols": [
- "tlsv1.1",
- "tlsv1.2"
], - "certificate": "/etc/letsencrypt/live/central/fullchain.pem",
- "certificate_key": "/etc/letsencrypt/live/central/privkey.pem"
}
]
}, - "edit_auth": {
- "login": "secretlogin",
- "password": "passw"
}, - "api_key": "api_key",
- "cluster": {
- "node_config_provision_enabled": true,
- "streamer_connector_retries": 5
}, - "loglevel": "error",
- "log_requests": "false",
- "stats": {
- "server_version": "23.10",
- "uptime": 4325502,
- "started_at": 1639337825,
- "id": "61893b15-75b2-4fcb-b4cf-ae1dd0858ea2"
}, - "server_id": "820efca4-4a15-4ab7-82fc-9e76f6d61325",
- "layouter_enabled": "false",
- "layouter_sleeping_interval": 30000,
- "config_external_reconciliation_interval": 5000,
- "episodes_buffer_delay": 3000,
- "episodes_buffer_limit": 100
}
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "api_tokens": [
- {
- "key": "string",
- "name": "string",
- "auth_scopes": [
- "string"
], - "permissions": [
- {
- "read": true,
- "write": true,
- "list": true,
- "execute": true,
- "scopes": [
- "string"
]
}
]
}
]
}
Method allows to fetch single API token by name
{- "key": "string",
- "name": "string",
- "auth_scopes": [
- "string"
], - "permissions": [
- {
- "read": true,
- "write": true,
- "list": true,
- "execute": true,
- "scopes": [
- "string"
]
}
]
}
Returns the list of all streamers with main parameters and current metric values.
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "streamers": [
- {
- "role": "streamer",
- "hostname": "peer.example.com",
- "stats": {
- "server_version": "23.04",
- "build": 0,
- "now": 1000000000000,
- "started_at": 1639337825,
- "config_version": [
- 1636709231,
- 4
], - "next_version": "22.01",
- "streamer_status": "running",
- "config_external_status": {
- "status": "loaded",
- "reason": "validation_error",
- "while": "refresh",
- "code": 0,
- "error": "invalid_authorization",
- "path": [
- "streams",
- 0,
- "inputs",
- 0,
- "url",
- "input_url"
], - "detail": "string"
}, - "hostname": "openapi.flussonic.com",
- "license_txt": "uO8v12HJhNXVj5gM",
- "license_type": "undefined",
- "id": "61893b15-75b2-4fcb-b4cf-ae1dd0858ea2",
- "vsaas": true,
- "vsaas_branding": true,
- "vsaas_running": true,
- "rproxy": true,
- "rproxy_running": true,
- "transcoder": true,
- "bandwidth_usage": 67,
- "total_bandwidth": 0,
- "cpu_usage": 48,
- "memory_usage": 27,
- "scheduler_load": 40,
- "uptime": 4325502,
- "partitions": [
- {
- "path": "_var_lib_docker_overlay2_3684778579db0a4d418fdc1a8a6953b680ab92d179a7d6f9506710d073095e36_merged",
- "device": "sda1",
- "total_mb": 45423,
- "usage": 30,
- "io_util": 42
}
], - "transcoder_devices": [
- {
- "type": "cpu",
- "id": "auto",
- "name": "string",
- "can_logo": true,
- "can_interlace": true,
- "can_internal": true,
- "memTotal": 0,
- "memFree": 0,
- "memUsed": 0,
- "reconfig_support": "full",
- "gpu_temp": 0,
- "gpu_enc": 0,
- "gpu_dec": 0,
- "gpu_sm": 0
}
], - "text_alerts": {
- "property1": "string",
- "property2": "string"
}, - "config_error": {
- "error": "bad_url",
- "config": { },
- "line": 15,
- "first_error_line": 14,
- "col": 20,
- "first_error_col": 5,
- "path": [
- "streams",
- 0,
- "inputs",
- 0,
- "url",
- "input_url"
], - "detail": "string"
}, - "is_chassis": true,
- "total_clients": 2040,
- "total_streams": 45,
- "online_streams": 27,
- "opened_files": 5,
- "input_kbit": 400300,
- "output_kbit": 500400,
- "error": "string",
- "healthcheck_status": {
- "status": "ok",
- "status_changed_at": 1000000000000,
- "checks": {
- "reachable": true,
- "valid_cluster_key": true,
- "time_synchronized": true,
- "rproxy_ok": true,
- "running": true,
- "config_external_ok": true,
- "config_ok": true,
- "errors_details": [
- {
- "rule": "string",
- "error": "string"
}
]
}
}
}, - "fetch_timeout": 1000,
- "stale_timeout": 1000,
- "channel_limit": 5,
- "cpu_limit": 10,
- "cluster_key": "xS6i6Q3DCc5nEvnu",
- "max_bitrate": 0,
- "dvrs": [
- {
- "name": "string",
- "root": "string",
- "raid": 0,
- "check_mount": true,
- "active": 0,
- "index": "string",
- "disks": [
- {
- "path": "volume1",
- "mode": "keep",
- "stats": {
- "mounted": true,
- "mode": "keep",
- "io_usage": 0,
- "migration_speed": 0,
- "migration_eta": 1000000000,
- "migration_updated": 1000000000,
- "errors": {
- "eacces": 1,
- "eagain": 1,
- "ebusy": 1,
- "edquot": 1,
- "emfile": 1,
- "enoent": 1,
- "enodev": 1,
- "enospc": 1,
- "erofs": 1,
- "connection_timeout": 1,
- "ssl_error": 1,
- "nxdomain": 1,
- "econnrefused": 1,
- "other": 1
}, - "blobs_count_db": 0,
- "blobs_count": 0,
- "size": 0,
- "used": 0,
- "used_index": 0,
- "usage": 0
}
}
], - "stats": {
- "errors": {
- "read_errors": 0,
- "write_errors": 0,
- "delete_errors": 0,
- "collapsed_write_count": 0,
- "drop_write_count": 0
}, - "blobs_count_db": 0,
- "blobs_count": 0,
- "size": 0,
- "used": 0,
- "used_index": 0,
- "usage": 0
}, - "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}
], - "config": {
- "cluster_key": "xS6i6Q3DCc5nEvnu",
- "event_sinks": [
- {
- "name": "my_json_sink",
- "url": "jsonlog:///var/log/events-json.log",
- "only": [
- {
- "property1": [
- "stream_stopped"
], - "property2": [
- "stream_stopped"
]
}
], - "except": [
- {
- "property1": [
- "stream_stopped"
], - "property2": [
- "stream_stopped"
]
}
], - "throttle_delay": 1,
- "max_size": 10000,
- "max_depth": 100,
- "resend_limit": 1000,
- "resend_timeout": 10,
- "level": "debug",
- "extra": {
- "property1": "string",
- "property2": "string"
}
}
], - "rproxy": {
- "streampoint_key": "string",
- "forward_ports": {
- "property1": {
- "handler": "string",
- "options": { }
}, - "property2": {
- "handler": "string",
- "options": { }
}
}, - "endpoint_auth": "string"
}, - "http_proxies": [
- {
- "prefix": "string",
- "url": "string",
- "mainpage": false,
- "stats": {
- "requests": 1000,
- "protocol_upgrades": 1000,
- "proxy_error": 10,
- "proxy_error_connection": 10,
- "http_100": 1000,
- "http_200": 1000,
- "http_300": 10,
- "http_400": 10,
- "http_500": 10,
- "time_100ms": 10,
- "time_500ms": 5,
- "time_1000ms": 2,
- "time_5000ms": 2,
- "time_longms": 1
}
}
]
}, - "total_bandwidth": 1024,
- "labels": {
- "key1": "value1",
- "key2": "value2"
}
}
]
}
This method allows you to fetch the main parameters and current metrics of a single streamer
{- "role": "streamer",
- "hostname": "peer.example.com",
- "stats": {
- "server_version": "23.04",
- "build": 0,
- "now": 1000000000000,
- "started_at": 1639337825,
- "config_version": [
- 1636709231,
- 4
], - "next_version": "22.01",
- "streamer_status": "running",
- "config_external_status": {
- "status": "loaded",
- "reason": "validation_error",
- "while": "refresh",
- "code": 0,
- "error": "invalid_authorization",
- "path": [
- "streams",
- 0,
- "inputs",
- 0,
- "url",
- "input_url"
], - "detail": "string"
}, - "hostname": "openapi.flussonic.com",
- "license_txt": "uO8v12HJhNXVj5gM",
- "license_type": "undefined",
- "id": "61893b15-75b2-4fcb-b4cf-ae1dd0858ea2",
- "vsaas": true,
- "vsaas_branding": true,
- "vsaas_running": true,
- "rproxy": true,
- "rproxy_running": true,
- "transcoder": true,
- "bandwidth_usage": 67,
- "total_bandwidth": 0,
- "cpu_usage": 48,
- "memory_usage": 27,
- "scheduler_load": 40,
- "uptime": 4325502,
- "partitions": [
- {
- "path": "_var_lib_docker_overlay2_3684778579db0a4d418fdc1a8a6953b680ab92d179a7d6f9506710d073095e36_merged",
- "device": "sda1",
- "total_mb": 45423,
- "usage": 30,
- "io_util": 42
}
], - "transcoder_devices": [
- {
- "type": "cpu",
- "id": "auto",
- "name": "string",
- "can_logo": true,
- "can_interlace": true,
- "can_internal": true,
- "memTotal": 0,
- "memFree": 0,
- "memUsed": 0,
- "reconfig_support": "full",
- "gpu_temp": 0,
- "gpu_enc": 0,
- "gpu_dec": 0,
- "gpu_sm": 0
}
], - "text_alerts": {
- "property1": "string",
- "property2": "string"
}, - "config_error": {
- "error": "bad_url",
- "config": { },
- "line": 15,
- "first_error_line": 14,
- "col": 20,
- "first_error_col": 5,
- "path": [
- "streams",
- 0,
- "inputs",
- 0,
- "url",
- "input_url"
], - "detail": "string"
}, - "is_chassis": true,
- "total_clients": 2040,
- "total_streams": 45,
- "online_streams": 27,
- "opened_files": 5,
- "input_kbit": 400300,
- "output_kbit": 500400,
- "error": "string",
- "healthcheck_status": {
- "status": "ok",
- "status_changed_at": 1000000000000,
- "checks": {
- "reachable": true,
- "valid_cluster_key": true,
- "time_synchronized": true,
- "rproxy_ok": true,
- "running": true,
- "config_external_ok": true,
- "config_ok": true,
- "errors_details": [
- {
- "rule": "string",
- "error": "string"
}
]
}
}
}, - "fetch_timeout": 1000,
- "stale_timeout": 1000,
- "channel_limit": 5,
- "cpu_limit": 10,
- "cluster_key": "xS6i6Q3DCc5nEvnu",
- "max_bitrate": 0,
- "dvrs": [
- {
- "name": "string",
- "root": "string",
- "raid": 0,
- "check_mount": true,
- "active": 0,
- "index": "string",
- "disks": [
- {
- "path": "volume1",
- "mode": "keep",
- "stats": {
- "mounted": true,
- "mode": "keep",
- "io_usage": 0,
- "migration_speed": 0,
- "migration_eta": 1000000000,
- "migration_updated": 1000000000,
- "errors": {
- "eacces": 1,
- "eagain": 1,
- "ebusy": 1,
- "edquot": 1,
- "emfile": 1,
- "enoent": 1,
- "enodev": 1,
- "enospc": 1,
- "erofs": 1,
- "connection_timeout": 1,
- "ssl_error": 1,
- "nxdomain": 1,
- "econnrefused": 1,
- "other": 1
}, - "blobs_count_db": 0,
- "blobs_count": 0,
- "size": 0,
- "used": 0,
- "used_index": 0,
- "usage": 0
}
}
], - "stats": {
- "errors": {
- "read_errors": 0,
- "write_errors": 0,
- "delete_errors": 0,
- "collapsed_write_count": 0,
- "drop_write_count": 0
}, - "blobs_count_db": 0,
- "blobs_count": 0,
- "size": 0,
- "used": 0,
- "used_index": 0,
- "usage": 0
}, - "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}
], - "config": {
- "cluster_key": "xS6i6Q3DCc5nEvnu",
- "event_sinks": [
- {
- "name": "my_json_sink",
- "url": "jsonlog:///var/log/events-json.log",
- "only": [
- {
- "property1": [
- "stream_stopped"
], - "property2": [
- "stream_stopped"
]
}
], - "except": [
- {
- "property1": [
- "stream_stopped"
], - "property2": [
- "stream_stopped"
]
}
], - "throttle_delay": 1,
- "max_size": 10000,
- "max_depth": 100,
- "resend_limit": 1000,
- "resend_timeout": 10,
- "level": "debug",
- "extra": {
- "property1": "string",
- "property2": "string"
}
}
], - "rproxy": {
- "streampoint_key": "string",
- "forward_ports": {
- "property1": {
- "handler": "string",
- "options": { }
}, - "property2": {
- "handler": "string",
- "options": { }
}
}, - "endpoint_auth": "string"
}, - "http_proxies": [
- {
- "prefix": "string",
- "url": "string",
- "mainpage": false,
- "stats": {
- "requests": 1000,
- "protocol_upgrades": 1000,
- "proxy_error": 10,
- "proxy_error_connection": 10,
- "http_100": 1000,
- "http_200": 1000,
- "http_300": 10,
- "http_400": 10,
- "http_500": 10,
- "time_100ms": 10,
- "time_500ms": 5,
- "time_1000ms": 2,
- "time_5000ms": 2,
- "time_longms": 1
}
}
]
}, - "total_bandwidth": 1024,
- "labels": {
- "key1": "value1",
- "key2": "value2"
}
}
This method will either create a new streamer (if there is no streamer with the hostname specified in the request), or update the existing streamer having the specified hostname.
Partial streamer configuration
{- "role": "streamer",
- "fetch_timeout": 1000,
- "stale_timeout": 1000,
- "channel_limit": 5,
- "cpu_limit": 10,
- "cluster_key": "xS6i6Q3DCc5nEvnu",
- "max_bitrate": 0,
- "config": {
- "cluster_key": "xS6i6Q3DCc5nEvnu",
- "event_sinks": [
- {
- "url": "jsonlog:///var/log/events-json.log",
- "only": [
- {
- "property1": [
- "stream_stopped"
], - "property2": [
- "stream_stopped"
]
}
], - "except": [
- {
- "property1": [
- "stream_stopped"
], - "property2": [
- "stream_stopped"
]
}
], - "throttle_delay": 1,
- "max_size": 10000,
- "max_depth": 100,
- "resend_limit": 1000,
- "resend_timeout": 10,
- "level": "debug",
- "extra": {
- "property1": "string",
- "property2": "string"
}
}
], - "rproxy": {
- "streampoint_key": "string",
- "forward_ports": {
- "property1": {
- "handler": "string",
- "options": { }
}, - "property2": {
- "handler": "string",
- "options": { }
}
}, - "endpoint_auth": "string"
}, - "http_proxies": [
- {
- "prefix": "string",
- "url": "string",
- "mainpage": false
}
]
}, - "total_bandwidth": 1024,
- "labels": {
- "key1": "value1",
- "key2": "value2"
}
}
{- "role": "streamer",
- "hostname": "peer.example.com",
- "stats": {
- "server_version": "23.04",
- "build": 0,
- "now": 1000000000000,
- "started_at": 1639337825,
- "config_version": [
- 1636709231,
- 4
], - "next_version": "22.01",
- "streamer_status": "running",
- "config_external_status": {
- "status": "loaded",
- "reason": "validation_error",
- "while": "refresh",
- "code": 0,
- "error": "invalid_authorization",
- "path": [
- "streams",
- 0,
- "inputs",
- 0,
- "url",
- "input_url"
], - "detail": "string"
}, - "hostname": "openapi.flussonic.com",
- "license_txt": "uO8v12HJhNXVj5gM",
- "license_type": "undefined",
- "id": "61893b15-75b2-4fcb-b4cf-ae1dd0858ea2",
- "vsaas": true,
- "vsaas_branding": true,
- "vsaas_running": true,
- "rproxy": true,
- "rproxy_running": true,
- "transcoder": true,
- "bandwidth_usage": 67,
- "total_bandwidth": 0,
- "cpu_usage": 48,
- "memory_usage": 27,
- "scheduler_load": 40,
- "uptime": 4325502,
- "partitions": [
- {
- "path": "_var_lib_docker_overlay2_3684778579db0a4d418fdc1a8a6953b680ab92d179a7d6f9506710d073095e36_merged",
- "device": "sda1",
- "total_mb": 45423,
- "usage": 30,
- "io_util": 42
}
], - "transcoder_devices": [
- {
- "type": "cpu",
- "id": "auto",
- "name": "string",
- "can_logo": true,
- "can_interlace": true,
- "can_internal": true,
- "memTotal": 0,
- "memFree": 0,
- "memUsed": 0,
- "reconfig_support": "full",
- "gpu_temp": 0,
- "gpu_enc": 0,
- "gpu_dec": 0,
- "gpu_sm": 0
}
], - "text_alerts": {
- "property1": "string",
- "property2": "string"
}, - "config_error": {
- "error": "bad_url",
- "config": { },
- "line": 15,
- "first_error_line": 14,
- "col": 20,
- "first_error_col": 5,
- "path": [
- "streams",
- 0,
- "inputs",
- 0,
- "url",
- "input_url"
], - "detail": "string"
}, - "is_chassis": true,
- "total_clients": 2040,
- "total_streams": 45,
- "online_streams": 27,
- "opened_files": 5,
- "input_kbit": 400300,
- "output_kbit": 500400,
- "error": "string",
- "healthcheck_status": {
- "status": "ok",
- "status_changed_at": 1000000000000,
- "checks": {
- "reachable": true,
- "valid_cluster_key": true,
- "time_synchronized": true,
- "rproxy_ok": true,
- "running": true,
- "config_external_ok": true,
- "config_ok": true,
- "errors_details": [
- {
- "rule": "string",
- "error": "string"
}
]
}
}
}, - "fetch_timeout": 1000,
- "stale_timeout": 1000,
- "channel_limit": 5,
- "cpu_limit": 10,
- "cluster_key": "xS6i6Q3DCc5nEvnu",
- "max_bitrate": 0,
- "dvrs": [
- {
- "name": "string",
- "root": "string",
- "raid": 0,
- "check_mount": true,
- "active": 0,
- "index": "string",
- "disks": [
- {
- "path": "volume1",
- "mode": "keep",
- "stats": {
- "mounted": true,
- "mode": "keep",
- "io_usage": 0,
- "migration_speed": 0,
- "migration_eta": 1000000000,
- "migration_updated": 1000000000,
- "errors": {
- "eacces": 1,
- "eagain": 1,
- "ebusy": 1,
- "edquot": 1,
- "emfile": 1,
- "enoent": 1,
- "enodev": 1,
- "enospc": 1,
- "erofs": 1,
- "connection_timeout": 1,
- "ssl_error": 1,
- "nxdomain": 1,
- "econnrefused": 1,
- "other": 1
}, - "blobs_count_db": 0,
- "blobs_count": 0,
- "size": 0,
- "used": 0,
- "used_index": 0,
- "usage": 0
}
}
], - "stats": {
- "errors": {
- "read_errors": 0,
- "write_errors": 0,
- "delete_errors": 0,
- "collapsed_write_count": 0,
- "drop_write_count": 0
}, - "blobs_count_db": 0,
- "blobs_count": 0,
- "size": 0,
- "used": 0,
- "used_index": 0,
- "usage": 0
}, - "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}
], - "config": {
- "cluster_key": "xS6i6Q3DCc5nEvnu",
- "event_sinks": [
- {
- "name": "my_json_sink",
- "url": "jsonlog:///var/log/events-json.log",
- "only": [
- {
- "property1": [
- "stream_stopped"
], - "property2": [
- "stream_stopped"
]
}
], - "except": [
- {
- "property1": [
- "stream_stopped"
], - "property2": [
- "stream_stopped"
]
}
], - "throttle_delay": 1,
- "max_size": 10000,
- "max_depth": 100,
- "resend_limit": 1000,
- "resend_timeout": 10,
- "level": "debug",
- "extra": {
- "property1": "string",
- "property2": "string"
}
}
], - "rproxy": {
- "streampoint_key": "string",
- "forward_ports": {
- "property1": {
- "handler": "string",
- "options": { }
}, - "property2": {
- "handler": "string",
- "options": { }
}
}, - "endpoint_auth": "string"
}, - "http_proxies": [
- {
- "prefix": "string",
- "url": "string",
- "mainpage": false,
- "stats": {
- "requests": 1000,
- "protocol_upgrades": 1000,
- "proxy_error": 10,
- "proxy_error_connection": 10,
- "http_100": 1000,
- "http_200": 1000,
- "http_300": 10,
- "http_400": 10,
- "http_500": 10,
- "time_100ms": 10,
- "time_500ms": 5,
- "time_1000ms": 2,
- "time_5000ms": 2,
- "time_longms": 1
}
}
]
}, - "total_bandwidth": 1024,
- "labels": {
- "key1": "value1",
- "key2": "value2"
}
}
A changes into stream or streamer configuration
{- "role": "streamer",
- "fetch_timeout": 1000,
- "stale_timeout": 1000,
- "channel_limit": 5,
- "cpu_limit": 10,
- "cluster_key": "xS6i6Q3DCc5nEvnu",
- "max_bitrate": 0,
- "config": {
- "cluster_key": "xS6i6Q3DCc5nEvnu",
- "event_sinks": [
- {
- "url": "jsonlog:///var/log/events-json.log",
- "only": [
- {
- "property1": [
- "stream_stopped"
], - "property2": [
- "stream_stopped"
]
}
], - "except": [
- {
- "property1": [
- "stream_stopped"
], - "property2": [
- "stream_stopped"
]
}
], - "throttle_delay": 1,
- "max_size": 10000,
- "max_depth": 100,
- "resend_limit": 1000,
- "resend_timeout": 10,
- "level": "debug",
- "extra": {
- "property1": "string",
- "property2": "string"
}
}
], - "rproxy": {
- "streampoint_key": "string",
- "forward_ports": {
- "property1": {
- "handler": "string",
- "options": { }
}, - "property2": {
- "handler": "string",
- "options": { }
}
}, - "endpoint_auth": "string"
}, - "http_proxies": [
- {
- "prefix": "string",
- "url": "string",
- "mainpage": false
}
]
}, - "total_bandwidth": 1024,
- "labels": {
- "key1": "value1",
- "key2": "value2"
}
}
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "changes": [
- {
- "hostname": "streamer1",
- "role": "ingest",
- "before": 321,
- "after": 123,
- "delta": 1
}
]
}
This method allows you to fetch registered episodes
select | string Example: select=episode_id,media,close_reason Comma-separated list of fields (including nested) that will be returned. |
limit | integer Example: limit=100 Limit select count in collection to N elements. |
cursor | string Example: cursor=JTI0cG9zaXRpb25fZ3Q9MQ== Properly encoded analog of offset, allowing to read next bunch of items.
We do not offer common |
episode_type | string Example: episode_type=motion Episode type |
media | string Example: media=cam-045 Filter the collection by media name on which the episode is registered |
updated_at_gt | integer <utc_ms> [ 1000000000000 .. 10000000000000 ] Example: updated_at_gt=1637094994000 Filter the collection by episode update time. This field is rather specific because it allows to have an update stream with new/updated episodes |
poll_timeout | integer <seconds> Example: poll_timeout=30 Client may ask to delay a response if there are no episodes to fetch. This should be used as a long-poll mechanism for lightweight fetching episodes from origin. |
dvr_presence_check | boolean Default: false Example: dvr_presence_check=true Enables check of DVR presence on streamer for the episode. |
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "episodes": [
- {
- "episode_id": 0,
- "media": "string",
- "close_reason": "timeout",
- "opened_at": 1000000000000,
- "started_at": 1000000000000,
- "updated_at": 1000000000000,
- "closed_at": 1000000000000,
- "preview_timestamp": 1000000000000,
- "preview": "string",
- "originator": {
- "source": "api",
- "hostname": "example.com"
}, - "episode_appearance_timestamps": {
- "inference_timestamp": 1637094994000,
- "central_timestamp": 1637098611000
}, - "has_dvr": null,
- "episode_type": "generic"
}
]
}
This method allows you to fetch the episode by its identifier
dvr_presence_check | boolean Default: false Example: dvr_presence_check=true Enables check of DVR presence on streamer for the episode. |
{- "episode_id": 0,
- "media": "string",
- "close_reason": "timeout",
- "opened_at": 1000000000000,
- "started_at": 1000000000000,
- "updated_at": 1000000000000,
- "closed_at": 1000000000000,
- "preview_timestamp": 1000000000000,
- "preview": "string",
- "originator": {
- "source": "api",
- "hostname": "example.com"
}, - "episode_appearance_timestamps": {
- "inference_timestamp": 1637094994000,
- "central_timestamp": 1637098611000
}, - "has_dvr": null,
- "episode_type": "generic"
}
This method allows you to create a new episode or update attributes of the existing one
A set of episode's attributes
episode_id required | integer <snowflake_id> Unique identifier of the episode. Must be created by the system that first creates this episode. Please, mention that it is assumed to be 64 bit length including time of creation in it (refer to snowflake),
so you cannot handle it in javascript with simple |
media required | string <media_name> Stream name on which this episode exists. |
Timeout"timeout" (string) The reason for closing the episode. | |
opened_at required | integer <utc_ms> [ 1000000000000 .. 10000000000000 ] The time when this episode was created. Naming is standard for whole flussonic ecosystem.
Usually this time will be the same as The value of this field is copied into |
started_at | integer <utc_ms> [ 1000000000000 .. 10000000000000 ] This field can be used as indication of the fact that some system have checked and ensured that
this episode has really started at some time, that may differ from For example video analytics will use this field for the time when this episode was confirmed as confident. May be not relevant for television systems. |
updated_at required | integer <utc_ms> [ 1000000000000 .. 10000000000000 ] The time of last change of the episode. System that processes episodes and can send them to other systems, MUST update this field on any changes in this episode. This field MUST be updated strictly monotonical and increasing. The updater MUST guarantee that
this Consumer of the episodes can use
This algorithm can be used for fetching update stream from the source. |
closed_at | integer <utc_ms> [ 1000000000000 .. 10000000000000 ] Episode emitter can decide that episode considered closed and will not grow further.
Episode can live without |
preview_timestamp | integer <utc_ms> [ 1000000000000 .. 10000000000000 ] The time when the preview of this episode is available.
Use it to request preview image via Mediaserver's DVR API ( Visit the Getting JPEGs from DVR by specific time article and JPEG thumbnail from DVR section of the Mediaserver's API Reference for details. This field may not be present. If so, you may use the timestamp from the |
preview | string <base64> <base64> Small inline image for previewing in UI |
object This describes the way this episode was updated, whether via an inference node or an API. In the case of an inference node, its hostname will be provided. | |
object The time when the episode appeared in the service relative to the server time. | |
episode_type | string Generic stream episode Value: "generic" |
{- "episode_id": 0,
- "media": "string",
- "close_reason": "timeout",
- "opened_at": 1000000000000,
- "started_at": 1000000000000,
- "updated_at": 1000000000000,
- "closed_at": 1000000000000,
- "preview_timestamp": 1000000000000,
- "preview": "string",
- "originator": {
- "source": "api",
- "hostname": "example.com"
}, - "episode_appearance_timestamps": {
- "inference_timestamp": 1637094994000,
- "central_timestamp": 1637098611000
}, - "episode_type": "generic"
}
{- "episode_id": 0,
- "media": "string",
- "close_reason": "timeout",
- "opened_at": 1000000000000,
- "started_at": 1000000000000,
- "updated_at": 1000000000000,
- "closed_at": 1000000000000,
- "preview_timestamp": 1000000000000,
- "preview": "string",
- "originator": {
- "source": "api",
- "hostname": "example.com"
}, - "episode_appearance_timestamps": {
- "inference_timestamp": 1637094994000,
- "central_timestamp": 1637098611000
}, - "has_dvr": null,
- "episode_type": "generic"
}
The list of registered videoanalytics persons
select | string Example: select=person_id,external_id Comma-separated list of fields (including nested) that will be returned. |
limit | integer Example: limit=100 Limit select count in collection to N elements. |
cursor | string Example: cursor=JTI0cG9zaXRpb25fZ3Q9MQ== Properly encoded analog of offset, allowing to read next bunch of items.
We do not offer common |
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "persons": [
- {
- "person_id": 0,
- "external_id": "string",
- "originator": "api",
- "updated_at": 1637034282845,
- "deleted_at": 1637095014573,
- "fingerprints": [
- {
- "data": "string",
- "version": "string"
}
], - "photos": [
- {
- "data": "string",
- "sha256": "stringstringstringstringstringstringstringstringstringstringstri",
- "mime_type": "image/jpeg"
}
]
}
]
}
This method allows you to fetch the person by its identifier
{- "person_id": 0,
- "external_id": "string",
- "originator": "api",
- "updated_at": 1637034282845,
- "deleted_at": 1637095014573,
- "fingerprints": [
- {
- "data": "string",
- "version": "string"
}
], - "photos": [
- {
- "data": "string",
- "sha256": "stringstringstringstringstringstringstringstringstringstringstri",
- "mime_type": "image/jpeg"
}
]
}
This method allows you to create a new person or update attributes of the existing one
A set of person's attributes
{- "external_id": "string",
- "originator": "api",
- "updated_at": 1637034282845,
- "deleted_at": 1637095014573,
- "fingerprints": [
- {
- "data": "string",
- "version": "string"
}
], - "photos": [
- {
- "data": "string",
- "sha256": "stringstringstringstringstringstringstringstringstringstringstri",
- "mime_type": "image/jpeg"
}
]
}
{- "person_id": 0,
- "external_id": "string",
- "originator": "api",
- "updated_at": 1637034282845,
- "deleted_at": 1637095014573,
- "fingerprints": [
- {
- "data": "string",
- "version": "string"
}
], - "photos": [
- {
- "data": "string",
- "sha256": "stringstringstringstringstringstringstringstringstringstringstri",
- "mime_type": "image/jpeg"
}
]
}
This method allows to get the whole list of global DVR congifurations.
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "dvrs": [
- {
- "name": "string"
}
]
}
Return list of configured streams for the streamer
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "updated_at": 1727274724000,
- "streams": [
- {
- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "config_on_disk": {
- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": null,
- "duration": null,
- "opened_at": null,
- "closed_at": null
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}
}, - "stats": {
- "lifetime": 71977,
- "last_dts_at": 1636383841974,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "status": "running",
- "last_running_at": 1737975543123,
- "input_error_rate": 0,
- "bytes_in": 2445568,
- "retry_count": 0,
- "current_agent_id": "string",
- "agent_status": "connected",
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "alive": true,
- "bitrate": 186,
- "running_on": [
- "streamer1.example.com"
], - "streaming_endpoint": "string",
- "online_clients": 3,
- "bytes_out": 0
}
}
]
}
This API method will be called to fetch list of streams configurations for newly requested by user streams.
If you do not send a configuration of any stream named in name
query parameter,
it will be considered as an unknown and terminated immediately
name required | string Example: name=s01,s02,s03 Comma-separated expicitly passed list of stream names. Used to get configuration
for the streams that were not listed in previous request without |
cursor | string Example: cursor=JTI0cG9zaXRpb25fZ3Q9MQ== Properly encoded analog of offset, allowing to read next bunch of items.
We do not offer common |
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "updated_at": 1727274724000,
- "streams": [
- {
- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "config_on_disk": {
- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": null,
- "duration": null,
- "opened_at": null,
- "closed_at": null
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}
}, - "stats": {
- "lifetime": 71977,
- "last_dts_at": 1636383841974,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "status": "running",
- "last_running_at": 1737975543123,
- "input_error_rate": 0,
- "bytes_in": 2445568,
- "retry_count": 0,
- "current_agent_id": "string",
- "agent_status": "connected",
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "alive": true,
- "bitrate": 186,
- "running_on": [
- "streamer1.example.com"
], - "streaming_endpoint": "string",
- "online_clients": 3,
- "bytes_out": 0
}
}
]
}
This API method will be called to fetch list of streams configurations.
Streamer will send here list of streams that were not enumerated in streams_list
response.
Use this to shutdown unknown streams or dynamically configure streams.
If you do not send a configuration of any stream named in name
query parameter,
it will be considered as an unknown and terminated immediately
name required | string Example: name=s01,s02,s03 Comma-separated exlpicitly passed list of stream names. Used to get configuration
for the streams that were not listed in previous request without |
cursor | string Example: cursor=JTI0cG9zaXRpb25fZ3Q9MQ== Properly encoded analog of offset, allowing to read next bunch of items.
We do not offer common |
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "updated_at": 1727274724000,
- "streams": [
- {
- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "config_on_disk": {
- "name": "string",
- "comment": "This is a test stream",
- "title": "Hockey channel",
- "position": 2,
- "named_by": "config",
- "srt_port_resolve": false,
- "template": "sports-hd",
- "recheck_secondary_inputs_interval": 120,
- "static": true,
- "disabled": false,
- "inputs": [
- {
- "url": "fake://fake",
- "width": 0,
- "height": 0,
- "bitrate": 0,
- "comment": "This is a test input",
- "source_timeout": 20,
- "audio_timeout": 20,
- "video_timeout": 20,
- "max_retry_timeout": 30,
- "timeout": 10,
- "frames_timeout": 3,
- "priority": 1,
- "stats": {
- "ip": "172.16.25.73",
- "proto": "dash",
- "opened_at": 1637094994000,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "ts_delay_per_tracks": [
- 1284
], - "url": "udp://239.0.0.1:1234",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML. like Gecko) Chrome/90.0.4430.72 Safari/537.36",
- "active": true,
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": null,
- "duration": null,
- "opened_at": null,
- "closed_at": null
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "bytes": 0,
- "frames": 0,
- "retries": 0,
- "media_info_changes": 0,
- "valid_secondary_inputs": 2,
- "invalid_secondary_inputs": 0,
- "resync_count_normal": 0,
- "resync_count_jump": 0,
- "resync_count_drift": 0,
- "reorder_count": 0,
- "ad_splices_ingested": 0,
- "ad_splices_inserted": 0,
- "srt": {
- "rtt": 0,
- "latency": 0,
- "packets": 0,
- "retransmitted_packets": 0,
- "error_lost_packets": 0,
- "error_dropped_packets": 0
}, - "onvif": {
- "motion_detected_count": 0,
- "errors_not_authorized_count": 0,
- "errors_url_unreachable_count": 0,
- "errors_no_service_count": 0,
- "errors_incorrect_time_values_count": 0
}, - "errors": 0,
- "errors_lost_packets": 0,
- "errors_decoder_reset": 0,
- "errors_broken_payload": 0,
- "errors_dropped_frames": 0,
- "errors_desync": 0,
- "errors_ts_pat": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "frames": 0,
- "empty_packets": 0,
- "errors_adaptation_broken": 0,
- "errors_ts_scrambled": 0,
- "errors_ts_pmt": 0,
- "errors_ts_cc": 0,
- "errors_ts_tei": 0,
- "errors_ts_psi_checksum": 0,
- "errors_pid_lost": 0,
- "broken_pes_count": 0,
- "broken_pes_sum": 0,
- "time_corrections": 0,
- "repeated_frames": 0,
- "corrected_backward_pts": 0,
- "pcr_resync": 0,
- "discarded_buffer_count": 0,
- "discarded_buffer_sum": 0,
- "fillers_count": 0,
- "fillers_sum": 0,
- "padding_pes_count": 0,
- "padding_pes_sum": 0,
- "crashed": 0,
- "dts_goes_backwards": 0,
- "dts_jump_forward": 0,
- "too_large_dts_jump": 0
}
], - "rtp_channels": [
- {
- "channel_id": 0,
- "content": "video",
- "rtp_packets": 0,
- "rtcp_packets": 0,
- "bytes": 0,
- "frames": 0,
- "pt_reject_count": 0,
- "pt_reject_sum": 0,
- "ts_goes_backwards": 0,
- "ts_jump_forward": 0,
- "ts_stuck": 0,
- "errors_dts_stuck": 0,
- "sr_ts_stuck": 0,
- "sender_clock_deviation": 0,
- "marker_packets_count": 0,
- "no_marker_mode_flag": true,
- "errors_broken_payload": 0,
- "errors_lost_packets": 0,
- "nal_count": 0,
- "discarded_broken_nal_count": 0,
- "discarded_not_allowed_nal_count": 0,
- "nal_fu_count": 0,
- "nal_stap_a_count": 0,
- "nal_aggregation_count": 0,
- "fu_pattern_is_broken_count": 0,
- "fu_has_both_start_end_bits_count": 0,
- "incomplete_nal_count": 0,
- "discarded_fu_count": 0,
- "fu_end_then_middle_workaround_count": 0,
- "nal_sei_count": 0,
- "invalid_sei_type_count": 0,
- "invalid_sei_size_count": 0,
- "invalid_sei_payload_count": 0,
- "discarded_sei_count": 0,
- "nal_idr_count": 0,
- "nal_single_count": 0,
- "nal_sps_count": 0,
- "nal_pps_count": 0,
- "nal_aud_count": 0,
- "nal_filler_count": 0,
- "nal_slice_count": 0,
- "nal_vps_count": 0,
- "nal_other_count": 0,
- "discarded_nal_count": 0
}
], - "errors_ts_service_lost": 0,
- "errors_ts_stuck_restarts": 0,
- "errors_404": 0,
- "errors_403": 0,
- "errors_500": 0,
- "errors_crashed": 0,
- "sdi": {
- "errors_no_signal": 0,
- "errors_duplicate": 0,
- "errors_ts_duplicate": 0,
- "errors_cpu_stall": 0,
- "peak_duration_deviation": 0,
- "avg_recv_duration": 0
}
}, - "user_agent": "string",
- "via": "string",
- "output_audio": "keep",
- "headers": {
- "User-Agent": "curl/7.85.0",
- "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
}, - "no_clients_reconnect_delay": 0,
- "allow_if": "string",
- "deny_if": "string"
}
], - "input_media_info": {
- "tracks": [
- {
- "match": {
- "language": "eng",
- "codec": "ac3",
- "index": 2
}, - "track_id": "v1",
- "frame_duration": 0,
- "avg_fps": 0,
- "bandwidth": 2600,
- "content": "audio",
- "title": "Video1",
- "bitrate": 2543,
- "pid": 8191,
- "codec": "h264",
- "last_gop": 28,
- "avg_gop": 25,
- "length_size": 2,
- "is_progressive": true,
- "closed_captions": [ ],
- "width": 0,
- "height": 0,
- "fps": 0,
- "pix_fmt": "yuv420p",
- "num_refs_frames": 32,
- "sar_width": 1,
- "sar_height": 1,
- "pixel_width": 0,
- "pixel_height": 0,
- "level": "string",
- "profile": "string",
- "bframes": 3,
- "gop_size": 0
}
], - "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "provider": "SportsTV",
- "dvbocr": "replace",
- "source_timeout": 10,
- "video_timeout": 20,
- "audio_timeout": 20,
- "max_retry_timeout": 30,
- "backup": {
- "file": "vod/blank.mp4",
- "timeout": 10,
- "audio_timeout": 5,
- "video_timeout": 4,
- "transcode": true,
- "dvr": true
}, - "epg_enabled": true,
- "mpegts_ac3": "keep",
- "clients_timeout": 485,
- "retry_limit": 0,
- "transcoder": {
- "global": {
- "target": "uhdtv",
- "hw": "cpu",
- "deviceid": "auto",
- "external": true,
- "gop": 150,
- "burn": {
- "text": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}, - "time": {
- "text": "string",
- "x": 0,
- "y": 0,
- "position": "tl",
- "font": {
- "file": "/usr/share/fonts/truetype/freefont/FONT_NAME.ttf",
- "size": 24,
- "color": "string",
- "alpha": 1
}, - "box": {
- "borderw": 10,
- "color": "string",
- "alpha": 0
}
}
}
}, - "decoder": {
- "pix_fmt": "yuv420p",
- "deinterlace": true,
- "deinterlace_rate": "frame",
- "crop": {
- "left": 0,
- "top": 0,
- "width": 0,
- "height": 0
}, - "drop_frame_interval": 3,
- "no_dpb": false,
- "streaming_frame": false
}, - "audio": {
- "codec": "opus",
- "bitrate": 64000,
- "avol": "-6dB",
- "split_channels": false,
- "sample_rate": 48000,
- "channels": 2
}, - "video": [ ],
- "tracks": [ ]
}, - "jpeg_snapshot_sign_key": "string",
- "dvr": {
- "reference": "localdvr0",
- "remotes": [
- "string"
], - "redundancy_factor": 1,
- "storage_limit": 400000000000,
- "expiration": 0,
- "episodes_expiration": 0,
- "episodes_url": "string",
- "schedule": [
- [
- 800,
- 1600
], - [
- 2200,
- 130
]
]
}, - "on_play": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "on_publish": {
- "domains": [
- "mycompany.com"
], - "max_sessions": 5000,
- "allowed_countries": [
- "US",
- "DE",
- "GB"
], - "disallowed_countries": [
- "US",
- "DE",
- "GB"
], - "soft_limitation": false,
- "session_keys": [
- "name",
- "token",
- "proto",
- "ip"
], - "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "drm": {
- "vendor": "string",
- "hls_ext_x_key_iv": true,
- "resource_id": "L2sItm6",
- "expires": 0,
- "encryption": "full"
}, - "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "prepush": false,
- "segment_count": 4,
- "segment_duration": 5000,
- "chunk_duration": 200,
- "url_prefix": false,
- "hls_scte35": "scte35",
- "add_audio_only": true,
- "webrtc_abr": {
- "start_track": "v2"
}, - "pushes": [
- {
- "url": "string",
- "service": "My service",
- "domain": "officialdomain.com",
- "encoder": "Lavf57",
- "comment": "This is a test push",
- "stats": {
- "url": "string",
- "opened_at": 1000000000000,
- "status": "starting",
- "standby_status": "active",
- "bytes": 0,
- "frames": 0,
- "segments": 0,
- "pusher_restarts": 0,
- "errors_stop_overloaded": 0,
- "errors_dropped_frames": 0,
- "errors_dropped_segments": 0,
- "pids": [
- {
- "pid": 0,
- "pnr": 0,
- "packets": 0,
- "payload_bytes": 0,
- "fillers_bytes": 0,
- "stuffing_packets": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
], - "sys_fillers_bytes": 0,
- "sys_payload_bytes": 0,
- "sys_stuffing_packets": 0,
- "encoded_bytes": 0,
- "resent_packets": 0,
- "errors_device_not_opened": 0,
- "errors_device_buffer_overflow": 0,
- "errors_audio_frame_decode": 0,
- "errors_video_frame_decode": 0,
- "errors_no_destination": 0,
- "errors_tls": 0,
- "errors_connection_lost": 0,
- "errors_401": 0,
- "errors_403": 0,
- "errors_404": 0,
- "errors_409": 0,
- "errors_500": 0,
- "errors_redirect_limit": 0,
- "errors_not_authorized": 0,
- "genlock_status": "no_ref",
- "genref_status": {
- "port": 0,
- "external": true,
- "vstd": "pal",
- "vstd_detected": "pal"
}
}, - "retry_limit": 0,
- "retry_timeout": 7,
- "timeout": 10,
- "connect_timeout": 2,
- "disabled": true
}
], - "mpegts_pids": {
- "pmt": 8191,
- "pcr": 8191,
- "sdt": 8191,
- "media": [
- {
- "pid": 8191,
- "content": "audio",
- "codec": "scte35",
- "track": 1,
- "bitrate": 2543,
- "stream_type": 12,
- "es_info": "52010D",
- "stats": {
- "payload": 0,
- "fillers": 0,
- "stuffing": 0,
- "trimmed_bytes": 0,
- "trimmed_frames": 0
}
}
], - "default": "auto"
}, - "labels": {
- "key1": "value1",
- "key2": "value2"
}, - "playback_headers": [
- {
- "playback": "live",
- "protocols": {
- "whitelist": false,
- "hls": true,
- "cmaf": true,
- "dash": true,
- "player": true,
- "mss": true,
- "rtmp": true,
- "rtsp": true,
- "m4f": true,
- "m4s": true,
- "mseld": true,
- "tshttp": true,
- "webrtc": true,
- "srt": true,
- "shoutcast": true,
- "mp4": true,
- "jpeg": true,
- "api": true
}, - "headers": {
- "Cache-Control": "max-age=3600"
}, - "segment_headers": {
- "Cache-Control": "max-age=3600"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}, - "vision": {
- "alg": "faces",
- "areas": "string",
- "detectors": [
- {
- "detector_type": "faces",
- "region_id": "string",
- "region_coordinates": [
- {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}, - {
- "x": 1,
- "y": 1
}
]
}
]
}, - "srt_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}, - "srt2_publish": {
- "port": 9050,
- "timeout": 10,
- "minversion": "1.1.0",
- "version": "1.3.0",
- "enforcedencryption": true,
- "passphrase": "9876543210",
- "linger": 15,
- "latency": 150,
- "streamid": "#!::r=my-stream,m=publish"
}
}, - "stats": {
- "lifetime": 71977,
- "last_dts_at": 1636383841974,
- "media_info": {
- "flow_type": "stream",
- "tracks": [ ],
- "duration": 0,
- "provider": "Netflix",
- "title": "Bunny",
- "stream_id": 253,
- "program_id": 110
}, - "ts_delay": 1284,
- "status": "running",
- "last_running_at": 1737975543123,
- "input_error_rate": 0,
- "bytes_in": 2445568,
- "retry_count": 0,
- "current_agent_id": "string",
- "agent_status": "connected",
- "dvr_info": {
- "from": 1641045644,
- "depth": 259200,
- "ranges": [
- {
- "from": 1525186456,
- "duration": 28800,
- "opened_at": 1000000000000,
- "closed_at": 1000000000000
}
], - "bytes": 129600000000,
- "disk_size": 1099511627776,
- "duration": 172800
}, - "alive": true,
- "bitrate": 186,
- "running_on": [
- "streamer1.example.com"
], - "streaming_endpoint": "string",
- "online_clients": 3,
- "bytes_out": 0
}
}
]
}
This method will return episodes for selected streams that should be left on disk during DVR cleaning process.
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "episodes": [
- {
- "opened_at": 1637094994000,
- "updated_at": 1637098611000,
- "closed_at": 1637094994000
}
]
}
This API method will be called to find stream name by the port which received srt connection.
SRT protocol has two modes: when no stream name is passed in protocol, or when it is passed, but only if passwords match on both sides.
So you cannot rely on a stream name, because it is either not passed, either is password protected.
When you build a cloud, you cannot offer the same password to all clients, because it is just the same like without password.
This method allows some dynamic configuration when you wait for a client on a pool of servers on a fixed UDP port. When connection comes (publish/ingress of play/egress), your configuration backend will be called for resolving this UDP port to a stream configuration. Streamer will find out what is the name of the stream, its password and all other settings.
hostname required | string Example: streamer03.my.cdn Hostname of the streamer server |
port required | integer (network_port) [ 0 .. 65535 ] Example: 3000 Srt port which has received the connection |
{- "errors": [
- {
- "id": "string",
- "status": "string",
- "code": "string",
- "title": "string",
- "source": {
- "pointer": "string",
- "parameter": "string"
}, - "meta": {
- "property1": "string",
- "property2": "string"
}
}
]
}
This method allows to get the batch of events. Currently this method is not implemented yet. However, its schema can be used for understanding Central logging.
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "events": [
- {
- "event": "string",
- "version": "string",
- "full_version": "string",
- "utc_ms": 1000000000000,
- "event_id": 0,
- "trace_id": "05cec7ee-fbd0-11ed-be56-0242ac120002",
- "server": "flussonic.host"
}
]
}
This method allows to get the list of all authorization backends configured in Flussonic.
{- "estimated_count": 5,
- "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
- "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
- "timing": { },
- "auth_backends": [
- {
- "name": "string",
- "allow_tokens": [
- "test_token1",
- "test_token2"
], - "deny_tokens": [
- "test_token3",
- "test_token4"
], - "allow_ips": [
- "127.0.0.1",
- "10.10.0.0/24"
], - "deny_ips": [
- "8.8.8.8",
- "10.10.0.0/24"
], - "allow_countries": [
- "RU",
- "US"
], - "deny_countries": [
- "RU",
- "GB"
], - "allow_uas": [
- "AppleWebKit/533.3 (KHTML, like Gecko)",
- "VLC/3.0.8 LibVLC/3.0.8"
], - "deny_uas": [
- "Mobile Safari/533.3",
- "VLC/3.0.8 LibVLC/3.0.8"
], - "allow_default": false
}
]
}
This method allows to get a single authorization backend.
{- "name": "string",
- "allow_tokens": [
- "test_token1",
- "test_token2"
], - "deny_tokens": [
- "test_token3",
- "test_token4"
], - "allow_ips": [
- "127.0.0.1",
- "10.10.0.0/24"
], - "deny_ips": [
- "8.8.8.8",
- "10.10.0.0/24"
], - "allow_countries": [
- "RU",
- "US"
], - "deny_countries": [
- "RU",
- "GB"
], - "allow_uas": [
- "AppleWebKit/533.3 (KHTML, like Gecko)",
- "VLC/3.0.8 LibVLC/3.0.8"
], - "deny_uas": [
- "Mobile Safari/533.3",
- "VLC/3.0.8 LibVLC/3.0.8"
], - "allow_default": false
}
Create or update an authorization backend. If you pass only a partial configuration, only the passed fields will be updated.
Partial authorization backend configuration.
{- "allow_tokens": [
- "test_token1",
- "test_token2"
], - "deny_tokens": [
- "test_token3",
- "test_token4"
], - "allow_ips": [
- "127.0.0.1",
- "10.10.0.0/24"
], - "deny_ips": [
- "8.8.8.8",
- "10.10.0.0/24"
], - "allow_countries": [
- "RU",
- "US"
], - "deny_countries": [
- "RU",
- "GB"
], - "allow_uas": [
- "AppleWebKit/533.3 (KHTML, like Gecko)",
- "VLC/3.0.8 LibVLC/3.0.8"
], - "deny_uas": [
- "Mobile Safari/533.3",
- "VLC/3.0.8 LibVLC/3.0.8"
], - "allow_default": false
}
{- "name": "string",
- "allow_tokens": [
- "test_token1",
- "test_token2"
], - "deny_tokens": [
- "test_token3",
- "test_token4"
], - "allow_ips": [
- "127.0.0.1",
- "10.10.0.0/24"
], - "deny_ips": [
- "8.8.8.8",
- "10.10.0.0/24"
], - "allow_countries": [
- "RU",
- "US"
], - "deny_countries": [
- "RU",
- "GB"
], - "allow_uas": [
- "AppleWebKit/533.3 (KHTML, like Gecko)",
- "VLC/3.0.8 LibVLC/3.0.8"
], - "deny_uas": [
- "Mobile Safari/533.3",
- "VLC/3.0.8 LibVLC/3.0.8"
], - "allow_default": false
}
This method describes what Flussonic sends to an authorization backend for playing session and what it awaits as a response.
{- "ad_inject": {
- "v": 2,
- "preroll": [
- "ad_vod/preroll1.mp4"
], - "midroll": [
- "ad_vod/midroll1.mp4",
- "ad_vod/midroll2.mp4"
], - "midroll_insert_by": "interval",
- "midroll_interval": 180,
- "midroll_program_id": 1
}, - "allowed_dvr_ranges": [
- {
- "opened_at": 1710010000,
- "closed_at": 1710020000
}
]
}
This method allows you to fetch cluster's health
Openmetrics"openmetrics" (string) Example: format=openmetrics This parameter is used instead of the Accept header to select of non-JSON response content format. |
{- "version": 240100023,
- "server_id": "123e4567-e89b-12d3-a456-426655440000",
- "collected_at": 1000000000000,
- "stream_metrics_total": {
- "operational": 0,
- "degradated": 0,
- "partial_outage": 0,
- "outage": 0,
- "disabled": 0,
- "total": 0
}, - "agent_metrics_total": {
- "operational": 0,
- "degradated": 0,
- "partial_outage": 0,
- "outage": 0,
- "disabled": 0,
- "total": 0
}, - "streamer_metrics_total": {
- "operational": 0,
- "degradated": 0,
- "partial_outage": 0,
- "outage": 0,
- "disabled": 0,
- "total": 0
}, - "streamer_bitrate_metrics_total": {
- "input_kbit": 0,
- "output_kbit": 0
}, - "streamer_metrics": [
- {
- "hostname": "string",
- "uptime": 4325502,
- "config": {
- "status": "operational"
}, - "status": "operational",
- "stream_metrics": {
- "operational": 0,
- "degradated": 0,
- "partial_outage": 0,
- "outage": 0,
- "disabled": 0,
- "total": 0,
- "status": "operational"
}, - "agent_metrics": {
- "operational": 0,
- "degradated": 0,
- "partial_outage": 0,
- "outage": 0,
- "disabled": 0,
- "total": 0,
- "status": "operational"
}, - "cpu": {
- "usage": 48,
- "status": "operational"
}, - "memory": {
- "usage": 27,
- "status": "operational"
}, - "storage": {
- "usage": 18,
- "status": "operational"
}, - "network": {
- "in_kbit": {
- "usage": 0,
- "status": "operational"
}, - "out_kbit": {
- "usage": 0,
- "status": "operational"
}
}
}
]
}