camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
1,764 lines (1,763 loc) • 65 kB
TypeScript
import { ProxyClient } from './internal/ProxyClient';
import { IClient, TBlobResponse, TResponse } from './internal/types';
import { TAudioFile, TAudioFileStorageType, TStream, TStreamList } from './types/CamStreamerAPI/CamStreamerAPI';
import { THttpRequestOptions, TProxyParams } from './types/common';
import { TOldStream, TOldStringStream } from './types/CamStreamerAPI/oldStreamSchema';
export declare class CamStreamerAPI<Client extends IClient<TResponse, any>> {
private client;
constructor(client: Client);
static getProxyPath: () => string;
static getWsEventsPath: () => string;
getClient(proxyParams?: TProxyParams): Client | ProxyClient<Client>;
checkAPIAvailable(options?: THttpRequestOptions): Promise<void>;
wsAuthorization(options?: THttpRequestOptions): Promise<string>;
getUtcTime(options?: THttpRequestOptions): Promise<number>;
getMaxFps(source?: number, options?: THttpRequestOptions): Promise<any>;
isCSPassValid(pass: string, options?: THttpRequestOptions): Promise<boolean>;
getStreamList(options?: THttpRequestOptions): Promise<({
post: {
postLocation: "timeline";
streamPrivacy: "public" | "friends" | "only_me";
} | {
postLocation: "page";
page: string;
};
type: "facebook";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
deleteAfterEnd: boolean;
saveToSdCard: boolean;
statusCameraLed: boolean;
statusCameraOutput: string | null;
countdown: boolean;
description?: string | undefined;
} | {
type: "mpeg_dvb";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
port: number;
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
saveToSdCard: boolean;
statusCameraLed: boolean;
statusCameraOutput: string | null;
ipAddress: string;
standard: "DVB" | "ATSC";
nullPacketsPaddingEnabled: boolean;
nullPacketsPaddingKbps: number;
videoPid: number;
audioPid: number;
mpegtsStreamId: number;
pmtPid: number;
pcrPid: number;
pcrPeriodMs: number;
providerName: string;
serviceName: string;
} | {
type: "rtmp";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
saveToSdCard: boolean;
statusCameraLed: boolean;
statusCameraOutput: string | null;
outputUrl: string;
streamKey: string;
streamIdentifier?: string | undefined;
} | {
type: "sd_card";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "windy";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "youtube";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
streamPrivacy: "public" | "unlisted" | "private";
saveToSdCard: boolean;
statusCameraLed: boolean;
statusCameraOutput: string | null;
countdown: boolean;
tags: string[];
latency: "normal" | "low" | "ultra_low";
afterEndStatus: "public" | "unlisted" | "private" | "no_change";
dvr: boolean;
hasWatchdogs: boolean;
enableManualControl: boolean;
playlist?: string | undefined;
description?: string | undefined;
notificationEmail?: string[] | undefined;
} | {
type: "vimeo";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "twitch";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "church";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "srt";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "da_cast";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "hls_pull";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "hls_push";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "wowza";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "dailymotion";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "ibm";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "microsoft_azure";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "microsoft_stream";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "game_changer";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
saveToSdCard: boolean;
statusCameraLed: boolean;
statusCameraOutput: string | null;
outputUrl: string;
streamKey: string;
streamIdentifier?: string | undefined;
} | {
type: "youtube_rtmp";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
saveToSdCard: boolean;
statusCameraLed: boolean;
statusCameraOutput: string | null;
outputUrl: string;
streamKey: string;
streamIdentifier?: string | undefined;
})[]>;
setStreamList(streamList: TStreamList['streamList'], options?: THttpRequestOptions): Promise<void>;
getStream(streamId: number, options?: THttpRequestOptions): Promise<{
post: {
postLocation: "timeline";
streamPrivacy: "public" | "friends" | "only_me";
} | {
postLocation: "page";
page: string;
};
type: "facebook";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
deleteAfterEnd: boolean;
saveToSdCard: boolean;
statusCameraLed: boolean;
statusCameraOutput: string | null;
countdown: boolean;
description?: string | undefined;
} | {
type: "mpeg_dvb";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
port: number;
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
saveToSdCard: boolean;
statusCameraLed: boolean;
statusCameraOutput: string | null;
ipAddress: string;
standard: "DVB" | "ATSC";
nullPacketsPaddingEnabled: boolean;
nullPacketsPaddingKbps: number;
videoPid: number;
audioPid: number;
mpegtsStreamId: number;
pmtPid: number;
pcrPid: number;
pcrPeriodMs: number;
providerName: string;
serviceName: string;
} | {
type: "rtmp";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
saveToSdCard: boolean;
statusCameraLed: boolean;
statusCameraOutput: string | null;
outputUrl: string;
streamKey: string;
streamIdentifier?: string | undefined;
} | {
type: "sd_card";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "windy";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "youtube";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
streamPrivacy: "public" | "unlisted" | "private";
saveToSdCard: boolean;
statusCameraLed: boolean;
statusCameraOutput: string | null;
countdown: boolean;
tags: string[];
latency: "normal" | "low" | "ultra_low";
afterEndStatus: "public" | "unlisted" | "private" | "no_change";
dvr: boolean;
hasWatchdogs: boolean;
enableManualControl: boolean;
playlist?: string | undefined;
description?: string | undefined;
notificationEmail?: string[] | undefined;
} | {
type: "vimeo";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "twitch";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "church";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "srt";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
} | {
type: "da_cast";
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;