94 lines
2.0 KiB
TypeScript
94 lines
2.0 KiB
TypeScript
declare module 'mp4box' {
|
|
|
|
export interface MP4MediaTrack {
|
|
id: number;
|
|
created: Date;
|
|
modified: Date;
|
|
movie_duration: number;
|
|
layer: number;
|
|
alternate_group: number;
|
|
volume: number;
|
|
track_width: number;
|
|
track_height: number;
|
|
timescale: number;
|
|
duration: number;
|
|
bitrate: number;
|
|
codec: string;
|
|
language: string;
|
|
nb_samples: number;
|
|
|
|
}
|
|
|
|
export interface MP4VideoData {
|
|
width: number;
|
|
height: number;
|
|
}
|
|
|
|
export interface MP4VideoTrack extends MP4MediaTrack {
|
|
video: MP4VideoData;
|
|
[key: string]: any;
|
|
}
|
|
|
|
export interface MP4AudioData {
|
|
sample_rate: number;
|
|
channel_count: number;
|
|
sample_size: number;
|
|
}
|
|
|
|
export interface MP4AudioTrack extends MP4MediaTrack {
|
|
audio: MP4AudioData;
|
|
[key: string]: any;
|
|
}
|
|
|
|
export type MP4Track = MP4VideoTrack | MP4AudioTrack;
|
|
|
|
export class DataStream {
|
|
buffer: ArrayBuffer;
|
|
|
|
static BIG_ENDIAN: number;
|
|
constructor(buffer?: ArrayBuffer, offset?: number, endianness?: number);
|
|
}
|
|
|
|
export interface MP4Info {
|
|
duration: number;
|
|
timescale: number;
|
|
fragment_duration: number;
|
|
isFragmented: boolean;
|
|
isProgressive: boolean;
|
|
hasIOD: boolean;
|
|
brands: string[];
|
|
created: Date;
|
|
modified: Date;
|
|
tracks: MP4Track[];
|
|
videoTracks: MP4VideoTrack[];
|
|
}
|
|
|
|
export type MP4ArrayBuffer = ArrayBuffer & { fileStart: number };
|
|
|
|
export interface MP4File {
|
|
|
|
onMoovStart?: () => void;
|
|
onReady?: (info: MP4Info) => void;
|
|
onSamples?: (trackId: number, ref: any, samples: any) => void;
|
|
onError?: (e: string) => void;
|
|
|
|
processSamples(last: boolean): void;
|
|
|
|
getTrackById(id: number): MP4Track;
|
|
|
|
setExtractionOptions(id: number, user?: any, options?: any): void;
|
|
|
|
appendBuffer(data: MP4ArrayBuffer): number;
|
|
start(): void;
|
|
stop(): void;
|
|
flush(): void;
|
|
seek(time: number, useRap?: boolean): { offset: number; time: number };
|
|
releaseUsedSamples(id: number, sampleNumber: number): void;
|
|
}
|
|
|
|
export function createFile(): MP4File;
|
|
|
|
export {};
|
|
|
|
}
|