From 4e44c779022d29370681c36bc9131553e08d8808 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Tue, 25 Aug 2020 18:52:25 -0400 Subject: [PATCH] Fix mp4-remux CHUNK_DEMUXER_ERROR_APPEND_FAILED in Chrome 74 and lowers and Chromium based browsers like Opera --- src/remux/mp4-remuxer.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/remux/mp4-remuxer.js b/src/remux/mp4-remuxer.js index 031a08eee35..8ab411aed5e 100644 --- a/src/remux/mp4-remuxer.js +++ b/src/remux/mp4-remuxer.js @@ -15,12 +15,18 @@ import { logger } from '../utils/logger'; const MAX_SILENT_FRAME_DURATION_90KHZ = toMpegTsClockFromTimescale(10); const PTS_DTS_SHIFT_TOLERANCE_90KHZ = toMpegTsClockFromTimescale(0.2); +let chromeVersion = null; + class MP4Remuxer { constructor (observer, config, typeSupported, vendor) { this.observer = observer; this.config = config; this.typeSupported = typeSupported; this.ISGenerated = false; + if (chromeVersion === null) { + const result = navigator.userAgent.match(/Chrome\/(\d+)/i); + chromeVersion = result ? parseInt(result[1]) : 0; + } } destroy () { @@ -308,6 +314,9 @@ class MP4Remuxer { } } + if (chromeVersion && chromeVersion < 75) { + firstDTS = Math.max(0, firstDTS); + } let nbNalu = 0; let naluLen = 0; for (let i = 0; i < nbSamples; i++) {