UNPKG

@eleven-am/transcoder

Version:

High-performance HLS transcoding library with hardware acceleration, intelligent client management, and distributed processing support for Node.js

49 lines 1.64 kB
import { TaskEither } from '@eleven-am/fp'; import { MediaMetadata, VideoQuality } from './types'; export interface AdaptiveQualityResult { selectedQualities: VideoQuality[]; reason: string; complexityScore: number; } /** * Analyzes video content and selects optimal quality levels * Prevents upscaling and adjusts bitrates based on content complexity */ export declare class AdaptiveQualitySelector { private readonly qualityLevels; /** * Select optimal quality levels based on source video characteristics */ selectOptimalQualities(metadata: MediaMetadata): TaskEither<AdaptiveQualityResult>; /** * Get recommended quality based on network conditions */ getRecommendedQuality(availableBandwidth: number, qualities: VideoQuality[]): TaskEither<VideoQuality>; /** * Analyze video complexity based on metadata - TaskEither version */ private analyzeComplexityTask; private calculateBitrateFactor; private adjustScoreForBitrate; private adjustScoreForFrameRate; private adjustScoreForCodec; private adjustScoreForDuration; private normalizeScore; /** * Filter quality levels to prevent upscaling */ private filterQualitiesBySource; /** * Adjust bitrates based on content complexity */ private adjustBitratesForComplexity; /** * Add original quality option for high-quality sources */ private addOriginalQualityIfNeeded; /** * Generate human-readable reason for quality selection */ private generateSelectionReason; } //# sourceMappingURL=adaptiveQualitySelector.d.ts.map