@give-tech/ec-player 0.0.1-beta.17 → 0.0.1-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fMP4Demuxer.d.ts","sourceRoot":"","sources":["../../src/demuxer/fMP4Demuxer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8CH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,mBAAmB,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,UAAU,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,MAAM,CAAQ;IAEtB;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI;IAyBtD;;OAEG;IACH,OAAO,CAAC,SAAS;IAkBjB;;OAEG;IACH,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"fMP4Demuxer.d.ts","sourceRoot":"","sources":["../../src/demuxer/fMP4Demuxer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -464,6 +464,7 @@ class fMP4Demuxer {
|
|
|
464
464
|
const endOffset = trakOffset + trakSize;
|
|
465
465
|
let currentTrackId = null;
|
|
466
466
|
let isVideoTrack = false;
|
|
467
|
+
console.log("[fMP4Demuxer] parseTrak called, size:", trakSize);
|
|
467
468
|
while (offset < endOffset - 8) {
|
|
468
469
|
const boxSize = readUint32$1(data, offset);
|
|
469
470
|
const boxType = readFourCC(data, offset + 4);
|
|
@@ -476,10 +477,12 @@ class fMP4Demuxer {
|
|
|
476
477
|
} else {
|
|
477
478
|
currentTrackId = readUint32$1(data, boxDataStart + 1 + 3 + 4 + 4);
|
|
478
479
|
}
|
|
480
|
+
console.log("[fMP4Demuxer] tkhd: version=", version, "trackId=", currentTrackId);
|
|
479
481
|
} else if (boxType === "mdia") {
|
|
480
482
|
isVideoTrack = this.parseMdiaAndCheckVideo(data, offset, boxSize);
|
|
481
483
|
if (isVideoTrack && currentTrackId !== null) {
|
|
482
484
|
this.trackId = currentTrackId;
|
|
485
|
+
console.log("[fMP4Demuxer] Found video track, trackId:", currentTrackId);
|
|
483
486
|
}
|
|
484
487
|
}
|
|
485
488
|
offset += boxSize;
|
|
@@ -603,6 +606,7 @@ class fMP4Demuxer {
|
|
|
603
606
|
if (boxSize < 8) break;
|
|
604
607
|
if (boxType === "hvcC") {
|
|
605
608
|
this.hvcC = data.slice(offset, offset + boxSize);
|
|
609
|
+
console.log("[fMP4Demuxer] Found hvcC, size:", boxSize);
|
|
606
610
|
return;
|
|
607
611
|
}
|
|
608
612
|
offset += boxSize;
|
|
@@ -763,7 +767,9 @@ class fMP4Demuxer {
|
|
|
763
767
|
extractSamples(moof, mdatData, moofOffset, mdatOffset) {
|
|
764
768
|
const samples = [];
|
|
765
769
|
for (const traf of moof.trafs) {
|
|
766
|
-
if (!traf.tfhd || !traf.tfdt)
|
|
770
|
+
if (!traf.tfhd || !traf.tfdt) {
|
|
771
|
+
continue;
|
|
772
|
+
}
|
|
767
773
|
if (traf.tfhd.trackId !== this.trackId) {
|
|
768
774
|
continue;
|
|
769
775
|
}
|
|
@@ -776,8 +782,15 @@ class fMP4Demuxer {
|
|
|
776
782
|
dataOffset = absoluteOffset - mdatOffset - 8;
|
|
777
783
|
}
|
|
778
784
|
for (const sample of trun.samples) {
|
|
779
|
-
|
|
780
|
-
|
|
785
|
+
let sampleSize = sample.size;
|
|
786
|
+
if (sampleSize === void 0 || sampleSize <= 0) {
|
|
787
|
+
sampleSize = mdatData.length - dataOffset;
|
|
788
|
+
}
|
|
789
|
+
if (sampleSize <= 0) {
|
|
790
|
+
console.log(`[fMP4Demuxer] Skipping sample: no data available`);
|
|
791
|
+
continue;
|
|
792
|
+
}
|
|
793
|
+
const sampleData = mdatData.slice(dataOffset, dataOffset + sampleSize);
|
|
781
794
|
const isSync = (sample.flags ?? 0) & 16777216;
|
|
782
795
|
const cto = sample.compositionTimeOffset ?? 0;
|
|
783
796
|
const duration = sample.duration ?? 0;
|
|
@@ -788,7 +801,7 @@ class fMP4Demuxer {
|
|
|
788
801
|
duration,
|
|
789
802
|
isSync: isSync !== 0
|
|
790
803
|
});
|
|
791
|
-
dataOffset +=
|
|
804
|
+
dataOffset += sampleSize;
|
|
792
805
|
baseDts += duration;
|
|
793
806
|
}
|
|
794
807
|
}
|
|
@@ -1496,6 +1509,7 @@ class HLSSegmentPrefetcher extends SegmentPrefetcher {
|
|
|
1496
1509
|
* 获取分片数据
|
|
1497
1510
|
*/
|
|
1498
1511
|
async fetchSegment(segment, index) {
|
|
1512
|
+
console.log("[HLSSegmentPrefetcher] fetchSegment called, index=", index, "uri=", segment.uri);
|
|
1499
1513
|
if (segment.initSegmentUri && segment.initSegmentUri !== this.currentInitSegmentUri) {
|
|
1500
1514
|
console.log("[HLSSegmentPrefetcher] Init segment changed:", segment.initSegmentUri);
|
|
1501
1515
|
await this.player.loadNewInitSegment(segment.initSegmentUri);
|
|
@@ -1503,13 +1517,22 @@ class HLSSegmentPrefetcher extends SegmentPrefetcher {
|
|
|
1503
1517
|
}
|
|
1504
1518
|
const baseUrl = this.baseUrl;
|
|
1505
1519
|
const url = segment.uri.startsWith("http") ? segment.uri : baseUrl + segment.uri;
|
|
1520
|
+
console.log("[HLSSegmentPrefetcher] Fetching URL:", url);
|
|
1506
1521
|
const headers = {};
|
|
1507
1522
|
if (segment.byteRange) {
|
|
1508
1523
|
const { start, end } = segment.byteRange;
|
|
1509
1524
|
headers["Range"] = `bytes=${start}-${end}`;
|
|
1510
1525
|
}
|
|
1511
|
-
|
|
1512
|
-
|
|
1526
|
+
try {
|
|
1527
|
+
const response = await fetch(url, { headers });
|
|
1528
|
+
console.log("[HLSSegmentPrefetcher] Fetch response:", response.status, response.ok);
|
|
1529
|
+
const buffer = await response.arrayBuffer();
|
|
1530
|
+
console.log("[HLSSegmentPrefetcher] Fetched data size:", buffer.byteLength);
|
|
1531
|
+
return new Uint8Array(buffer);
|
|
1532
|
+
} catch (error) {
|
|
1533
|
+
console.error("[HLSSegmentPrefetcher] Fetch error:", error);
|
|
1534
|
+
throw error;
|
|
1535
|
+
}
|
|
1513
1536
|
}
|
|
1514
1537
|
/**
|
|
1515
1538
|
* 解析分片数据
|
|
@@ -1868,9 +1891,7 @@ class HLSPlayer extends BasePlayer {
|
|
|
1868
1891
|
this._sampleQueue.push({ sample });
|
|
1869
1892
|
}
|
|
1870
1893
|
totalSampleCount += samples.length;
|
|
1871
|
-
console.log("[parseFMP4Data] Pushed", samples.length, "samples, totalQueue=", this._sampleQueue.length);
|
|
1872
1894
|
}
|
|
1873
|
-
console.log("[parseFMP4Data] Total samples parsed:", totalSampleCount);
|
|
1874
1895
|
return totalSampleCount;
|
|
1875
1896
|
}
|
|
1876
1897
|
/**
|