UNPKG

hjplayer

Version:

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

78 lines (73 loc) 1.72 kB
// from http://mp4ra.org/codecs.html const sampleEntryCodesISO = { audio: { a3ds: true, 'ac-3': true, 'ac-4': true, alac: true, alaw: true, dra1: true, 'dts+': true, 'dts-': true, dtsc: true, dtse: true, dtsh: true, 'ec-3': true, enca: true, g719: true, g726: true, m4ae: true, mha1: true, mha2: true, mhm1: true, mhm2: true, mlpa: true, mp4a: true, 'raw ': true, Opus: true, samr: true, sawb: true, sawp: true, sevc: true, sqcp: true, ssmv: true, twos: true, ulaw: true }, video: { avc1: true, avc2: true, avc3: true, avc4: true, avcp: true, drac: true, dvav: true, dvhe: true, encv: true, hev1: true, hvc1: true, mjp2: true, mp4v: true, mvc1: true, mvc2: true, mvc3: true, mvc4: true, resv: true, rv60: true, s263: true, svc1: true, svc2: true, 'vc-1': true, vp08: true, vp09: true } }; export type CodecType = 'audio' | 'video' function isCodecType(codec: string, type: CodecType): boolean { const typeCodes: any = sampleEntryCodesISO[type]; return !!typeCodes && typeCodes[codec.slice(0, 4)] === true; } function isCodecSupportedInMp4(codec: string, type: CodecType): boolean { return (window as any).MediaSource.isTypeSupported(`${type || 'video'}/mp4;codecs="${codec}"`); } export { isCodecType, isCodecSupportedInMp4 };