UNPKG

hjplayer

Version:

hjplayer, a HTML5 Player, can play flv and hls by Media Source Extension, based on typescript;

248 lines (230 loc) 4.35 kB
// export type track = { // container: string | undefined // type: string // id: number // pid: number // inputTimeScale: number // sequenceNumber: number // samples: Array<any> // dropped: number | undefined // isAAC: boolean | undefined // duration: number | undefined // samplerate: number // config?: Array<number> // channelCount?: number // codec?: string // manifestCodec?: string // [x: string]: any // } export type track = { container: string | undefined type: string id: number pid: number inputTimeScale: number sequenceNumber: number samples: Array<any> dropped: number | undefined isAAC: boolean | undefined duration: number | undefined [x: string]: any } /** * 视频序列 */ export type TSVideoTrack = { container: string type: string id: number pid: number inputTimeScale: number sequenceNumber: number samples: Array<avcSample> dropped: number isAAC: undefined duration: undefined | number pesData?: pesData [x: string]: any } /** * 音频序列 */ export type TSAudioTrack = { container: string type: 'audio' id: number pid: number inputTimeScale: number sequenceNumber: number samples: Array<aacSample> dropped: undefined isAAC: boolean duration: number pesData?: pesData [x: string]: any } export type TSAACTrack = { container: string type: 'audio' id: number pid: number inputTimeScale: number sequenceNumber: number samples: Array<any> dropped: undefined isAAC: boolean duration: number samplerate: number config?: Array<number> channelCount?: number codec?: string manifestCodec?: string [x: string]: any } /** * mp3的歌手,标题,专辑名称,年代,风格等信息序列 */ export type TSId3Track = { container: undefined type: 'id3' id: number pid: number inputTimeScale: number sequenceNumber: number samples: Array<parsedPesData> dropped: undefined isAAC: undefined duration: undefined pesData?: pesData [x: string]: any } /** * 文本序列 */ export type TSTextTrack = { container: undefined type: 'text' id: number pid: number inputTimeScale: number sequenceNumber: number samples: Array<SampleLike> dropped: undefined isAAC: undefined duration: undefined } /** * 未解析的PES包数据 */ export type pesData = { data: Array<Uint8Array> size: number } /** * 解析后的PES包数据 */ export type parsedPesData = { data: Uint8Array pts: number | undefined dts: number | undefined len: number } /** * AVC视频 Sapmple 数据 */ export type avcSample = { /** * 是否为关键帧 */ key: boolean /** * pts值 */ pts: number /** * dts */ dts: number /** * NAL Uint Array */ units: Array<NALUnit> /** * sample debug 信息 */ debug: string /** * 是否为I帧或者P帧(NALUnit.type == 5 || NALUnit.type == 1) */ frame: boolean [x: string]: any } export type aacSample = { unit: Uint8Array dts: number pts: number } export type SampleLike = { /** * pts值 */ pts: number | undefined [x: string]: any } /** * H.264 NAL Unit */ export type NALUnit = { /** * NAL 的类型 */ type: number /** * NAL 的数据内容 */ data: Uint8Array /** * NAL Unit的状态 */ state?: number } export type typeSupported = { mp4: boolean mpeg: boolean mp3: boolean } export type TSVideoData = { data1: Uint8Array data2: Uint8Array startPTS: number endPTS: number startDTS: number endDTS: number type: string hasAudio: boolean hasVideo: boolean nb: number dropped: number | undefined } export type TSAudioData = { /** * moof 数据 */ data1: Uint8Array /** * mdat数据 */ data2: Uint8Array startPTS: number endPTS: number startDTS: number endDTS: number type: string hasAudio: boolean hasVideo: boolean nb: number } export type agentInfo = { userAgent: string vendor: string }