import * as z$1 from "zod"; import { Readable } from "node:stream"; import * as _$fs from "fs"; //#region src/Probe.d.ts declare const AudioStreamSchema: z$1.ZodObject<{ index: z$1.ZodNumber; codec_name: z$1.ZodString; codec_long_name: z$1.ZodString; codec_type: z$1.ZodLiteral<"audio">; codec_tag_string: z$1.ZodString; codec_tag: z$1.ZodString; sample_fmt: z$1.ZodString; sample_rate: z$1.ZodString; channels: z$1.ZodNumber; channel_layout: z$1.ZodOptional; bits_per_sample: z$1.ZodNumber; initial_padding: z$1.ZodOptional; r_frame_rate: z$1.ZodString; avg_frame_rate: z$1.ZodString; time_base: z$1.ZodString; start_pts: z$1.ZodOptional; start_time: z$1.ZodOptional; duration_ts: z$1.ZodNumber; duration: z$1.ZodNumber; bit_rate: z$1.ZodString; disposition: z$1.ZodRecord; }, "strip", z$1.ZodTypeAny, { index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; }, { index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; }>; type AudioStreamSchema = z$1.infer; declare const VideoStreamSchema: z$1.ZodObject<{ index: z$1.ZodNumber; codec_name: z$1.ZodString; codec_long_name: z$1.ZodString; codec_type: z$1.ZodLiteral<"video">; codec_tag_string: z$1.ZodString; codec_tag: z$1.ZodString; profile: z$1.ZodOptional; level: z$1.ZodOptional; width: z$1.ZodNumber; height: z$1.ZodNumber; coded_width: z$1.ZodNumber; coded_height: z$1.ZodNumber; pix_fmt: z$1.ZodOptional; tags: z$1.ZodOptional>; r_frame_rate: z$1.ZodString; avg_frame_rate: z$1.ZodString; time_base: z$1.ZodString; start_pts: z$1.ZodOptional; start_time: z$1.ZodOptional; duration_ts: z$1.ZodOptional; duration: z$1.ZodOptional; bit_rate: z$1.ZodOptional; disposition: z$1.ZodRecord; }, "strip", z$1.ZodTypeAny, { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; }, { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; }>; type VideoStreamSchema = z$1.infer; declare const StreamSchema: z$1.ZodDiscriminatedUnion<"codec_type", [z$1.ZodObject<{ index: z$1.ZodNumber; codec_name: z$1.ZodString; codec_long_name: z$1.ZodString; codec_type: z$1.ZodLiteral<"audio">; codec_tag_string: z$1.ZodString; codec_tag: z$1.ZodString; sample_fmt: z$1.ZodString; sample_rate: z$1.ZodString; channels: z$1.ZodNumber; channel_layout: z$1.ZodOptional; bits_per_sample: z$1.ZodNumber; initial_padding: z$1.ZodOptional; r_frame_rate: z$1.ZodString; avg_frame_rate: z$1.ZodString; time_base: z$1.ZodString; start_pts: z$1.ZodOptional; start_time: z$1.ZodOptional; duration_ts: z$1.ZodNumber; duration: z$1.ZodNumber; bit_rate: z$1.ZodString; disposition: z$1.ZodRecord; }, "strip", z$1.ZodTypeAny, { index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; }, { index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; }>, z$1.ZodObject<{ index: z$1.ZodNumber; codec_name: z$1.ZodString; codec_long_name: z$1.ZodString; codec_type: z$1.ZodLiteral<"video">; codec_tag_string: z$1.ZodString; codec_tag: z$1.ZodString; profile: z$1.ZodOptional; level: z$1.ZodOptional; width: z$1.ZodNumber; height: z$1.ZodNumber; coded_width: z$1.ZodNumber; coded_height: z$1.ZodNumber; pix_fmt: z$1.ZodOptional; tags: z$1.ZodOptional>; r_frame_rate: z$1.ZodString; avg_frame_rate: z$1.ZodString; time_base: z$1.ZodString; start_pts: z$1.ZodOptional; start_time: z$1.ZodOptional; duration_ts: z$1.ZodOptional; duration: z$1.ZodOptional; bit_rate: z$1.ZodOptional; disposition: z$1.ZodRecord; }, "strip", z$1.ZodTypeAny, { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; }, { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; }>, z$1.ZodObject<{ index: z$1.ZodNumber; codec_type: z$1.ZodLiteral<"data">; duration: z$1.ZodOptional; duration_ts: z$1.ZodOptional; start_pts: z$1.ZodOptional; }, "strip", z$1.ZodTypeAny, { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; }, { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; }>]>; type StreamSchema = z$1.infer; declare const ProbeSchema: z$1.ZodObject<{ streams: z$1.ZodArray; codec_tag_string: z$1.ZodString; codec_tag: z$1.ZodString; sample_fmt: z$1.ZodString; sample_rate: z$1.ZodString; channels: z$1.ZodNumber; channel_layout: z$1.ZodOptional; bits_per_sample: z$1.ZodNumber; initial_padding: z$1.ZodOptional; r_frame_rate: z$1.ZodString; avg_frame_rate: z$1.ZodString; time_base: z$1.ZodString; start_pts: z$1.ZodOptional; start_time: z$1.ZodOptional; duration_ts: z$1.ZodNumber; duration: z$1.ZodNumber; bit_rate: z$1.ZodString; disposition: z$1.ZodRecord; }, "strip", z$1.ZodTypeAny, { index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; }, { index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; }>, z$1.ZodObject<{ index: z$1.ZodNumber; codec_name: z$1.ZodString; codec_long_name: z$1.ZodString; codec_type: z$1.ZodLiteral<"video">; codec_tag_string: z$1.ZodString; codec_tag: z$1.ZodString; profile: z$1.ZodOptional; level: z$1.ZodOptional; width: z$1.ZodNumber; height: z$1.ZodNumber; coded_width: z$1.ZodNumber; coded_height: z$1.ZodNumber; pix_fmt: z$1.ZodOptional; tags: z$1.ZodOptional>; r_frame_rate: z$1.ZodString; avg_frame_rate: z$1.ZodString; time_base: z$1.ZodString; start_pts: z$1.ZodOptional; start_time: z$1.ZodOptional; duration_ts: z$1.ZodOptional; duration: z$1.ZodOptional; bit_rate: z$1.ZodOptional; disposition: z$1.ZodRecord; }, "strip", z$1.ZodTypeAny, { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; }, { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; }>, z$1.ZodObject<{ index: z$1.ZodNumber; codec_type: z$1.ZodLiteral<"data">; duration: z$1.ZodOptional; duration_ts: z$1.ZodOptional; start_pts: z$1.ZodOptional; }, "strip", z$1.ZodTypeAny, { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; }, { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; }>]>, "many">; format: z$1.ZodObject<{ filename: z$1.ZodString; nb_streams: z$1.ZodNumber; nb_programs: z$1.ZodNumber; format_name: z$1.ZodString; format_long_name: z$1.ZodString; start_time: z$1.ZodOptional; duration: z$1.ZodOptional; size: z$1.ZodOptional; bit_rate: z$1.ZodOptional; probe_score: z$1.ZodNumber; }, "strip", z$1.ZodTypeAny, { filename: string; nb_streams: number; nb_programs: number; format_name: string; format_long_name: string; probe_score: number; start_time?: string | undefined; duration?: string | undefined; bit_rate?: string | undefined; size?: string | undefined; }, { filename: string; nb_streams: number; nb_programs: number; format_name: string; format_long_name: string; probe_score: number; start_time?: string | undefined; duration?: string | undefined; bit_rate?: string | undefined; size?: string | undefined; }>; }, "strip", z$1.ZodTypeAny, { format: { filename: string; nb_streams: number; nb_programs: number; format_name: string; format_long_name: string; probe_score: number; start_time?: string | undefined; duration?: string | undefined; bit_rate?: string | undefined; size?: string | undefined; }; streams: ({ index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; } | { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; } | { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; })[]; }, { format: { filename: string; nb_streams: number; nb_programs: number; format_name: string; format_long_name: string; probe_score: number; start_time?: string | undefined; duration?: string | undefined; bit_rate?: string | undefined; size?: string | undefined; }; streams: ({ index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; } | { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; } | { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; })[]; }>; declare const PacketProbeSchema: z$1.ZodObject<{ packets: z$1.ZodArray; duration_time: z$1.ZodOptional; pos: z$1.ZodOptional; flags: z$1.ZodOptional; }, "strip", z$1.ZodTypeAny, { stream_index: number; pts: number; pts_time: number; dts: number; dts_time: number; duration?: number | undefined; duration_time?: number | undefined; pos?: number | undefined; flags?: string | undefined; }, { stream_index: number; pts: number; pts_time: number; dts: number; dts_time: number; duration?: number | undefined; duration_time?: number | undefined; pos?: number | undefined; flags?: string | undefined; }>, "many">; format: z$1.ZodObject<{ filename: z$1.ZodString; nb_streams: z$1.ZodNumber; nb_programs: z$1.ZodNumber; format_name: z$1.ZodString; format_long_name: z$1.ZodString; start_time: z$1.ZodOptional; duration: z$1.ZodOptional; size: z$1.ZodOptional; bit_rate: z$1.ZodOptional; probe_score: z$1.ZodNumber; }, "strip", z$1.ZodTypeAny, { filename: string; nb_streams: number; nb_programs: number; format_name: string; format_long_name: string; probe_score: number; start_time?: string | undefined; duration?: string | undefined; bit_rate?: string | undefined; size?: string | undefined; }, { filename: string; nb_streams: number; nb_programs: number; format_name: string; format_long_name: string; probe_score: number; start_time?: string | undefined; duration?: string | undefined; bit_rate?: string | undefined; size?: string | undefined; }>; streams: z$1.ZodArray; codec_tag_string: z$1.ZodString; codec_tag: z$1.ZodString; sample_fmt: z$1.ZodString; sample_rate: z$1.ZodString; channels: z$1.ZodNumber; channel_layout: z$1.ZodOptional; bits_per_sample: z$1.ZodNumber; initial_padding: z$1.ZodOptional; r_frame_rate: z$1.ZodString; avg_frame_rate: z$1.ZodString; time_base: z$1.ZodString; start_pts: z$1.ZodOptional; start_time: z$1.ZodOptional; duration_ts: z$1.ZodNumber; duration: z$1.ZodNumber; bit_rate: z$1.ZodString; disposition: z$1.ZodRecord; }, "strip", z$1.ZodTypeAny, { index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; }, { index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; }>, z$1.ZodObject<{ index: z$1.ZodNumber; codec_name: z$1.ZodString; codec_long_name: z$1.ZodString; codec_type: z$1.ZodLiteral<"video">; codec_tag_string: z$1.ZodString; codec_tag: z$1.ZodString; profile: z$1.ZodOptional; level: z$1.ZodOptional; width: z$1.ZodNumber; height: z$1.ZodNumber; coded_width: z$1.ZodNumber; coded_height: z$1.ZodNumber; pix_fmt: z$1.ZodOptional; tags: z$1.ZodOptional>; r_frame_rate: z$1.ZodString; avg_frame_rate: z$1.ZodString; time_base: z$1.ZodString; start_pts: z$1.ZodOptional; start_time: z$1.ZodOptional; duration_ts: z$1.ZodOptional; duration: z$1.ZodOptional; bit_rate: z$1.ZodOptional; disposition: z$1.ZodRecord; }, "strip", z$1.ZodTypeAny, { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; }, { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; }>, z$1.ZodObject<{ index: z$1.ZodNumber; codec_type: z$1.ZodLiteral<"data">; duration: z$1.ZodOptional; duration_ts: z$1.ZodOptional; start_pts: z$1.ZodOptional; }, "strip", z$1.ZodTypeAny, { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; }, { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; }>]>, "many">; }, "strip", z$1.ZodTypeAny, { packets: { stream_index: number; pts: number; pts_time: number; dts: number; dts_time: number; duration?: number | undefined; duration_time?: number | undefined; pos?: number | undefined; flags?: string | undefined; }[]; format: { filename: string; nb_streams: number; nb_programs: number; format_name: string; format_long_name: string; probe_score: number; start_time?: string | undefined; duration?: string | undefined; bit_rate?: string | undefined; size?: string | undefined; }; streams: ({ index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; } | { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; } | { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; })[]; }, { packets: { stream_index: number; pts: number; pts_time: number; dts: number; dts_time: number; duration?: number | undefined; duration_time?: number | undefined; pos?: number | undefined; flags?: string | undefined; }[]; format: { filename: string; nb_streams: number; nb_programs: number; format_name: string; format_long_name: string; probe_score: number; start_time?: string | undefined; duration?: string | undefined; bit_rate?: string | undefined; size?: string | undefined; }; streams: ({ index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; } | { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; } | { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; })[]; }>; type ProbeSchema = z$1.infer; type PacketProbeSchema = z$1.infer; interface TrackSegment { cts: number; dts: number; duration: number; offset: number; size: number; } interface AudioTrackFragmentIndex { track: number; type: "audio"; timescale: number; duration: number; channel_count: number; sample_rate: number; sample_size: number; sample_count: number; codec: string; startTimeOffsetMs?: number; initSegment: { offset: 0; size: number; }; segments: Array; } interface VideoTrackFragmentIndex { track: number; type: "video"; timescale: number; duration: number; width: number; height: number; sample_count: number; codec: string; startTimeOffsetMs?: number; /** Present when this track has a paired alpha matte track (grayscale H264). */ alphaTrackId?: number; /** * True when the track is served as native VP9/WebM (alpha source). * The cached file is a WebM and segment byte ranges reference EBML clusters. * When false (or absent), the track is fMP4 regardless of the codec string. */ isAlpha?: boolean; initSegment: { offset: 0; size: number; }; segments: Array; } type TrackFragmentIndex = AudioTrackFragmentIndex | VideoTrackFragmentIndex; declare abstract class ProbeBase { readonly absolutePath: string; abstract data: ProbeSchema | PacketProbeSchema; get audioStreams(): AudioStreamSchema[]; get videoStreams(): VideoStreamSchema[]; get streams(): ({ index: number; codec_name: string; codec_long_name: string; codec_type: "audio"; codec_tag_string: string; codec_tag: string; sample_fmt: string; sample_rate: string; channels: number; bits_per_sample: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; duration_ts: number; duration: number; bit_rate: string; disposition: Record; channel_layout?: string | undefined; initial_padding?: number | undefined; start_pts?: number | undefined; start_time?: number | undefined; } | { index: number; codec_name: string; codec_long_name: string; codec_type: "video"; codec_tag_string: string; codec_tag: string; r_frame_rate: string; avg_frame_rate: string; time_base: string; disposition: Record; width: number; height: number; coded_width: number; coded_height: number; start_pts?: number | undefined; start_time?: number | undefined; duration_ts?: number | undefined; duration?: number | undefined; bit_rate?: string | undefined; profile?: string | undefined; level?: number | undefined; pix_fmt?: string | undefined; tags?: Record | undefined; } | { index: number; codec_type: "data"; start_pts?: number | undefined; duration_ts?: number | undefined; duration?: string | undefined; })[]; get format(): { filename: string; nb_streams: number; nb_programs: number; format_name: string; format_long_name: string; probe_score: number; start_time?: string | undefined; duration?: string | undefined; bit_rate?: string | undefined; size?: string | undefined; }; get mustReencodeAudio(): boolean; get mustReencodeVideo(): boolean; get mustRemux(): boolean; get hasNonAudioOrVideoStreams(): boolean; get hasAudio(): boolean; get hasVideo(): boolean; /** * Returns true if the file contains a video stream with an alpha channel. * VP9 alpha WebM uses TAG:ALPHA_MODE=1 (ffprobe may report uppercase or lowercase). * Some encoders use yuva* pix_fmt directly. */ get hasAlphaVideo(): boolean; get isAudioOnly(): boolean; get isMp3(): boolean; get isVideoOnly(): boolean; get mustProcess(): boolean; get startTimeOffsetMs(): number | undefined; get audioTimebase(): { num: number; den: number; } | null; get videoTimebase(): { num: number; den: number; } | null; get ffmpegAudioInputOptions(): string[]; get ffmpegVideoInputOptions(): never[]; get ffmpegAudioOutputOptions(): string[]; get ffmpegVideoOutputOptions(): string[]; protected constructor(absolutePath: string); /** * Returns a sane output frame rate string for ffmpeg's `-r` flag. * * VFR (variable-frame-rate) content — common in screen recordings — stores * r_frame_rate as the stream timescale divided by 1 (e.g. "90000/1"), * which is not a real playback rate. Using that value with `-r` would tell * ffmpeg to output 90 000 fps, hanging the process while it synthesises * millions of frames. * * Strategy: * 1. Parse r_frame_rate and avg_frame_rate. * 2. Use r_frame_rate only when it is ≤ MAX_SCRUB_FPS (60). * 3. Otherwise fall back to avg_frame_rate, also capped at MAX_SCRUB_FPS. * 4. If neither gives a sane value, default to 30. */ protected getScrubFrameRate(): string; createConformingReadstream(): _$fs.ReadStream | Readable; createTrackReadstream(trackIndex: number): Readable; /** * Produces a fragmented MP4 stream of the alpha matte for the first video stream. * Uses FFmpeg's `alphaextract` filter to isolate the alpha plane and encodes it * as H264 yuv420p — grayscale content means H264 compresses the constant U/V * chroma planes to near-zero bits. */ createAlphaTrackReadstream(): Readable; createScrubTrackReadstream(): Readable; /** * Spawn ffmpeg with the given args, forward stderr to the debug log under * `logTag`, and resolve when the process exits cleanly. Rejects on non-zero * exit or spawn error. Used by every "encode-to-file" helper. */ protected runFfmpegToFile(args: string[], logTag: string): Promise; /** * Encodes a low-resolution VP9/WebM scrub track for alpha sources to `outPath`. * Preserves the alpha channel (yuva420p) at scrub resolution. * * WebM requires seeking during mux (to write the Cues index), so the output * must be a file — not a pipe. Returns a Promise that resolves when ffmpeg * has finished writing the file. */ transcodeWebmScrubToFile(outPath: string): Promise; /** * Re-encode a VP9/WebM source with forced keyframes every `segmentDurMs` * milliseconds. The output file has one cluster per segment (the ffmpeg * matroska muxer always starts a new cluster at every keyframe), and each * cluster is independently decodable. This is what allows the * byte-range-sliced segment serving model to work with mediabunny's * VideoDecoder. * * Without this re-encode, libvpx-vp9 sources typically have a single GOP * spanning the entire video — slicing such a file at cluster boundaries * gives you P-frames that can't be decoded without the keyframe in the * preceding segment, and mediabunny aborts after the first frame. * * @param outPath - Path to write the WebM file * @param segmentDurMs - Duration between forced keyframes (segment length) * @param opts.width / opts.height - Output dimensions (default: source dims) */ transcodeWebmKeyframeAligned(outPath: string, segmentDurMs: number, opts?: { width?: number; height?: number; }): Promise; } declare class Probe extends ProbeBase { data: ProbeSchema; static probePath(absolutePath: string): Promise; static probeStream(stream: Readable): Promise; constructor(absolutePath: string, rawData: any); } declare class PacketProbe extends ProbeBase { data: PacketProbeSchema; static probePath(absolutePath: string): Promise; static probeStream(stream: Readable): Promise; constructor(absolutePath: string, rawData: any); get packets(): { stream_index: number; pts: number; pts_time: number; dts: number; dts_time: number; duration?: number | undefined; duration_time?: number | undefined; pos?: number | undefined; flags?: string | undefined; }[]; get bestEffortAudioDuration(): number; get videoPacketDuration(): number | never[]; } //#endregion export { AudioStreamSchema, AudioTrackFragmentIndex, PacketProbe, PacketProbeSchema, Probe, ProbeSchema, StreamSchema, TrackFragmentIndex, TrackSegment, VideoStreamSchema, VideoTrackFragmentIndex }; //# sourceMappingURL=Probe.d.ts.map