///
import * as CP from 'child_process';
export declare const exec: typeof CP.exec.__promisify__;
export declare type RawProbeData = {
[key: string]: unknown;
} & {
streams: {
[key: string]: unknown;
} & {
index: number;
codec_name: string;
codec_long_name: string;
profile?: string;
codec_type: string;
codec_tag_string: string;
codec_tag: string;
width: number;
height: number;
coded_width: number;
coded_height: number;
closed_captions: number;
has_b_frames: number;
sample_aspect_ratio?: string;
display_aspect_ratio?: string;
pix_fmt: string;
level: number;
color_range?: string;
color_space?: string;
chroma_location?: string;
refs: number;
is_avc?: string;
nal_length_size?: string;
r_frame_rate: string;
avg_frame_rate: string;
time_base: string;
start_pts?: number;
start_time?: string;
duration_ts?: number;
duration?: string;
sample_fmt?: string;
sample_rate?: string;
channels?: number;
channel_layout?: string;
bit_rate?: string;
bits_per_sample?: number;
bits_per_raw_sample?: string;
nb_frames?: string;
disposition: Disposition;
tags?: {
[key: string]: unknown;
} & {
language: string;
title?: string;
comment?: string;
handler_name: string;
vendor_id: string;
};
}[];
format: {
[key: string]: unknown;
} & {
filename: string;
nb_streams: number;
nb_programs: number;
format_name: string;
format_long_name: string;
start_time?: string;
duration: number;
size: number;
bit_rate?: string;
probe_score: number;
tags?: {
[key: string]: unknown;
} & {
encoder: string;
album?: string;
genre?: string;
title?: string;
artist?: string;
album_artist?: string;
track?: string;
date: string;
major_brand?: string;
minor_version?: string;
compatible_brands?: string;
};
};
};
export interface Disposition {
default: number;
dub: number;
original: number;
comment: number;
lyrics: number;
karaoke: number;
forced: number;
hearing_impaired: number;
visual_impaired: number;
clean_effects: number;
attached_pic: number;
timed_thumbnails: number;
}
export declare type ImageStream = {
[key: string]: unknown;
} & {
type: 'image';
codec: string;
width: number;
height: number;
sar: number;
dar: number;
displayWidth: number;
displayHeight: number;
title?: string;
disposition: Disposition;
pixelFormat: string;
tags?: {
[key: string]: any;
};
};
export declare type CoverStream = Omit;
export declare type VideoStream = {
[key: string]: unknown;
} & {
type: 'video';
codec: string;
width: number;
height: number;
sar: number;
dar: number;
displayWidth: number;
displayHeight: number;
framerate: number;
title?: string;
disposition: Disposition;
pixelFormat: string;
tags?: {
[key: string]: any;
};
};
export declare type AudioStream = {
[key: string]: unknown;
} & {
type: 'audio';
codec: string;
channels: number;
language?: string;
title?: string;
disposition: Disposition;
tags?: {
[key: string]: any;
};
};
export declare type SubtitlesStream = {
[key: string]: unknown;
} & {
type: 'subtitles';
codec: string;
language?: string;
title?: string;
disposition: Disposition;
tags?: {
[key: string]: any;
};
};
export declare type Stream = ImageStream | VideoStream | AudioStream | SubtitlesStream;
export declare type ImageMeta = {
[key: string]: unknown;
} & {
path: string;
type: 'image';
size: number;
codec: string;
container: string;
width: number;
height: number;
sar: number;
dar: number;
displayWidth: number;
displayHeight: number;
pixelFormat: string;
rawProbeData: RawProbeData;
};
export declare type AudioMeta = {
[key: string]: unknown;
} & {
path: string;
type: 'audio';
size: number;
codec: string;
container: string;
channels: number;
duration: number;
cover?: CoverStream;
album?: string;
genre?: string;
language?: string;
title?: string;
artist?: string;
album_artist?: string;
track?: string;
rawProbeData: RawProbeData;
};
export declare type VideoMeta = {
[key: string]: unknown;
} & {
path: string;
type: 'video';
codec: string;
container: string;
duration: number;
framerate: number;
title?: string;
size: number;
width: number;
height: number;
sar: number;
dar: number;
displayWidth: number;
displayHeight: number;
streams: Stream[];
videoStreams: VideoStream[];
audioStreams: AudioStream[];
subtitlesStreams: SubtitlesStream[];
rawProbeData: RawProbeData;
};
export declare type Meta = ImageMeta | AudioMeta | VideoMeta;
export declare function ffprobe(filePath: string, { path: ffprobePath }?: {
path?: string;
}): Promise;