polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
191 lines • 4.6 kB
TypeScript
export interface StreamGetKeyRequest {
channelId: string;
}
export interface StreamGetKeyOptions {
channelId: string;
output?: 'table' | 'json';
}
export interface StreamInfoModel {
deployAddress: string;
inAddress: string;
streamName: string;
fps: number;
lfr: number;
inBandWidth: number;
}
export interface StreamKeyDisplayModel {
channelId: string;
rtmpUrl: string;
streamKey: string;
isMasked: boolean;
streamInfo?: {
fps: number;
bandwidth: number;
};
}
export interface StreamCredentials {
channelId: string;
rtmpUrl: string;
streamKey: string;
deployAddress: string;
inAddress: string;
metrics: {
fps: number;
lfr: number;
bandwidth: number;
};
}
export interface StreamStartRequest {
channelId: string;
}
export interface StreamStartOptions {
channelId: string;
}
export interface StreamStartResponse {
code: number;
status: string;
message: string;
data: string;
}
export interface StreamStopRequest {
channelId: string;
}
export interface StreamStopOptions {
channelId: string;
}
export interface StreamStopResponse {
code: number;
status: string;
message: string;
data: string;
}
export interface StreamStatusRequest {
channelId: string;
}
export interface StreamMonitorData {
deployAddress?: string;
inAddress?: string;
streamName: string;
fps: string;
lfr?: string;
inBandWidth: string;
retrievedAt: Date;
channelId: string;
}
export interface StreamStatusInfo {
channelId: string;
status: 'live' | 'stopped' | 'waiting' | 'error' | 'unknown';
statusText: string;
isLive: boolean;
duration?: number;
durationText?: string;
metrics?: {
fps: number;
lfr: number;
bandwidth: number;
bandwidthText: string;
};
network?: {
deployAddress?: string;
inAddress?: string;
streamName?: string;
};
lastUpdated: Date;
error?: {
code: string;
message: string;
};
}
export interface StreamStatusOptions {
channelId: string;
output?: 'table' | 'json';
watch?: boolean;
}
export interface StreamPushOptions {
channelId: string;
file: string;
verify?: boolean;
verificationInterval?: number;
qualityThreshold?: number;
showViewerLinks?: boolean;
}
export interface StreamVerificationOptions {
channelId: string;
duration?: number;
interval?: number;
qualityThreshold?: number;
showViewerLinks?: boolean;
saveReport?: string;
output?: 'table' | 'json';
}
export interface StreamMonitorOptions {
channelId: string;
refresh?: number;
alerts?: boolean;
output?: 'table' | 'json';
}
export interface QualityMetrics {
fps: number;
bandwidth: number;
latency?: number;
lfr?: number;
}
export interface QualityIssue {
timestamp: Date;
type: 'fps_low' | 'bandwidth_low' | 'connection_lost' | 'encoding_error' | 'other';
severity: 'warning' | 'error' | 'critical';
message: string;
metrics?: Partial<QualityMetrics>;
}
export interface ViewerLink {
protocol: 'HLS' | 'RTMP' | 'WebRTC' | 'HTTP-FLV';
url: string;
description: string;
}
export interface VerificationPoint {
checkNumber: number;
timestamp: Date;
status: 'healthy' | 'warning' | 'error';
metrics: QualityMetrics;
issues: QualityIssue[];
}
export interface VerificationSummary {
overallStatus: 'excellent' | 'good' | 'fair' | 'poor';
reliability: number;
averageQuality: QualityMetrics;
totalIssues: number;
recommendations: string[];
}
export interface StreamVerificationResult {
channelId: string;
verificationId: string;
startTime: Date;
endTime: Date;
totalChecks: number;
successfulChecks: number;
failedChecks: number;
averageMetrics: QualityMetrics;
qualityIssues: QualityIssue[];
viewerLinks: ViewerLink[];
summary: VerificationSummary;
}
export interface VerificationReport {
metadata: {
channelId: string;
testDuration: number;
testInterval: number;
timestamp: Date;
version: string;
};
summary: VerificationSummary;
timeline: VerificationPoint[];
issues: QualityIssue[];
viewerLinks: ViewerLink[];
}
export interface StreamActivity {
timestamp: Date;
type: 'status_change' | 'quality_change' | 'viewer_change' | 'error' | 'info';
message: string;
data?: Record<string, unknown>;
}
//# sourceMappingURL=stream.d.ts.map