Files
Video-encoder-still-effed/src/types.ts
T

233 lines
4.6 KiB
TypeScript

export interface Disposition {
default: boolean;
dub: boolean;
original: boolean;
comment: boolean;
lyrics: boolean;
karaoke: boolean;
forced: boolean;
hearing_impaired: boolean;
visual_impaired: boolean;
clean_effects: boolean;
attached_pic: boolean;
timed_thumbnails: boolean;
non_diegetic: boolean;
captions: boolean;
descriptions: boolean;
metadata: boolean;
dependent: boolean;
still_image: boolean;
multilayer: boolean;
}
export interface VideoTrack {
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;
film_grain: number;
has_b_frames: number;
sample_aspect_ratio: string;
display_aspect_ratio: string;
pix_fmt: string;
level: number;
color_range: string;
chroma_location: string;
field_order: string;
refs: number;
r_frame_rate: string;
avg_frame_rate: string;
time_base: string;
start_pts: number;
start_time: string;
extradata_size: number;
disposition: Disposition;
tags: {
language: string;
};
}
export interface AudioTrack {
index: number;
codec_name: string;
codec_long_name: string;
profile: string;
codec_type: string;
codec_tag_string: string;
codec_tag: string;
channels: number;
channel_layout: string;
sample_rate: number;
bits_per_sample: number;
bits_per_raw_sample: number;
block_align: number;
frame_size: number;
initial_padding: number;
final_padding: number;
bit_rate: number;
max_bit_rate: number;
bits_per_frame: number;
id: number;
disposition: Disposition;
tags: {
language: string;
};
}
export interface SubtitlesTrack {
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;
film_grain: number;
has_b_frames: number;
sample_aspect_ratio: string;
display_aspect_ratio: string;
pix_fmt: string;
level: number;
color_range: string;
chroma_location: string;
field_order: string;
refs: number;
r_frame_rate: string;
avg_frame_rate: string;
time_base: string;
start_pts: number;
start_time: string;
extradata_size: number;
disposition: Disposition;
tags: {
language: string;
};
}
export interface VideoInfo {
format: {
filename: string;
nb_streams: number;
nb_programs: number;
nb_stream_groups: number;
format_name: string;
format_long_name: string;
start_time: string;
duration: string;
size: string;
bit_rate: string;
probe_score: number;
tags: {
encoder: string;
creation_time: string;
};
};
streams: (VideoTrack | AudioTrack | SubtitlesTrack)[];
}
export interface OMDBMovieInfo {
Title: string;
Year: string;
Rated: string;
Released: string;
Runtime: string;
Genre: string;
Director: string;
Writer: string;
Actors: string;
Plot: string;
Language: string;
Country: string;
Awards: string;
Poster: string;
Ratings: { Source: string; Value: string }[];
Metascore: string;
imdbRating: string;
imdbVotes: string;
imdbID: string;
Type: string;
DVD: string;
BoxOffice: string;
Production: string;
Website: string;
Response: string;
}
export interface OMDBSeriesInfo {
Title: string;
Year: string;
Rated: string;
Released: string;
Runtime: string;
Genre: string;
Director: string;
Writer: string;
Actors: string;
Plot: string;
Language: string;
Country: string;
Awards: string;
Poster: string;
Ratings: { Source: string; Value: string }[];
Metascore: string;
imdbRating: string;
imdbVotes: string;
imdbID: string;
Type: string;
totalSeasons: string;
Response: string;
}
export interface parsedAudioStream {
index: number;
language: string;
isSideloaded: boolean;
channels: number;
channel_layout: string;
}
export interface parsedSubtitleStream {
index: number;
language: string;
codec: string;
}
export interface parsedMetadata {
title: string;
date_released: string;
imdb_id: string;
original_media_type?: string;
season_number?: number;
episode_number?: number;
}
export interface parsedVideoInfo {
filename: string;
metadata?: parsedMetadata;
MPix: number;
fps: number;
isAnamorphic: boolean;
isInterlaced: boolean;
audioStreams?: parsedAudioStream[];
subtitleStreams?: parsedSubtitleStream[];
}
export interface profile {
crf: number;
preset: number;
filmGrain: number;
}