diff --git a/packages/griffith-mp4/src/mp4/mp4Probe.js b/packages/griffith-mp4/src/mp4/mp4Probe.js index fd821e48..de6feb17 100644 --- a/packages/griffith-mp4/src/mp4/mp4Probe.js +++ b/packages/griffith-mp4/src/mp4/mp4Probe.js @@ -69,6 +69,7 @@ export default class MP4Probe { videoSamples[videoSamples.length - 1].start + videoSamples[videoSamples.length - 1].bufferStart === stcoBox.samples[stcoBox.samples.length - 1].chunkOffset + return getFragmentPosition( videoSamples, audioSamples, diff --git a/packages/griffith-mp4/src/mp4/utils/getSamplesInterval.js b/packages/griffith-mp4/src/mp4/utils/getSamplesInterval.js index e3c565b6..ecac6a61 100644 --- a/packages/griffith-mp4/src/mp4/utils/getSamplesInterval.js +++ b/packages/griffith-mp4/src/mp4/utils/getSamplesInterval.js @@ -11,6 +11,7 @@ export function getVideoSamplesInterval(mp4BoxTree, time = 0) { const timeInterval = intervalArray.map(interval => getDuration(sttsBox, interval) ) + const interval = { offsetInterVal: [], timeInterVal: [], @@ -52,8 +53,8 @@ export function getAudioSamplesInterval(mp4BoxTree, videoInterval) { let start = 0 let end = 0 - const {mediaTime} = audioElstBox.entries[0] - let startDuration = mediaTime || 0 + const {mediaTime, segmentDuration} = audioElstBox.entries[0] + let startDuration = mediaTime !== -1 ? mediaTime : segmentDuration let endDuration = 0 for (let i = 0; i < sttsBox.samples.length; i++) { const {sampleCount, sampleDelta} = sttsBox.samples[i] diff --git a/packages/griffith-mp4/src/mse/controller.js b/packages/griffith-mp4/src/mse/controller.js index 9a92a45d..c34577dc 100644 --- a/packages/griffith-mp4/src/mse/controller.js +++ b/packages/griffith-mp4/src/mse/controller.js @@ -118,7 +118,6 @@ export default class MSE { seek = time => { FragmentFetch.clear() - const [start, end] = this.mp4Probe.getFragmentPosition(time) this.mseUpdating = true