diff --git a/src/input-format.ts b/src/input-format.ts index ed09428..5506af8 100644 --- a/src/input-format.ts +++ b/src/input-format.ts @@ -530,7 +530,7 @@ export class MpegTsInputFormat extends InputFormat { } else if (bytes[0] === 0x47 && bytes[TS_PACKET_SIZE + 16] === 0x47) { // MPEG-TS with Forward Error Correction return true; - } else if (bytes[4] === 0x47 && bytes[4 + TS_PACKET_SIZE] === 0x47) { + } else if (bytes[4] === 0x47 && bytes[4 + TS_PACKET_SIZE + 4] === 0x47) { // MPEG-2-TS (DVHS) return true; } diff --git a/src/mpeg-ts/mpeg-ts-demuxer.ts b/src/mpeg-ts/mpeg-ts-demuxer.ts index 253e8de..be61c08 100644 --- a/src/mpeg-ts/mpeg-ts-demuxer.ts +++ b/src/mpeg-ts/mpeg-ts-demuxer.ts @@ -161,10 +161,10 @@ export class MpegTsDemuxer extends Demuxer { // MPEG-TS with Forward Error Correction this.packetOffset = 0; this.packetStride = TS_PACKET_SIZE + 16; - } else if (startingBytes[4] === 0x47 && startingBytes[4 + TS_PACKET_SIZE] === 0x47) { + } else if (startingBytes[4] === 0x47 && startingBytes[4 + TS_PACKET_SIZE + 4] === 0x47) { // MPEG-2-TS (DVHS) this.packetOffset = 4; - this.packetStride = TS_PACKET_SIZE; + this.packetStride = TS_PACKET_SIZE + 4; } else { throw new Error('Unreachable.'); }