movi-player 0.3.3 → 0.3.5
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.
- package/README.md +23 -12
- package/dist/core/MoviPlayer.d.ts +65 -1
- package/dist/core/MoviPlayer.d.ts.map +1 -1
- package/dist/core/MoviPlayer.js +245 -10
- package/dist/core/MoviPlayer.js.map +1 -1
- package/dist/decode/AudioDecoder.d.ts +4 -0
- package/dist/decode/AudioDecoder.d.ts.map +1 -1
- package/dist/decode/AudioDecoder.js +14 -0
- package/dist/decode/AudioDecoder.js.map +1 -1
- package/dist/decode/SoftwareAudioDecoder.d.ts +12 -0
- package/dist/decode/SoftwareAudioDecoder.d.ts.map +1 -1
- package/dist/decode/SoftwareAudioDecoder.js +91 -2
- package/dist/decode/SoftwareAudioDecoder.js.map +1 -1
- package/dist/decode/VideoDecoder.d.ts.map +1 -1
- package/dist/decode/VideoDecoder.js +7 -0
- package/dist/decode/VideoDecoder.js.map +1 -1
- package/dist/demuxer.cjs +1863 -1788
- package/dist/demuxer.js +1722 -1649
- package/dist/element.cjs +2987 -1933
- package/dist/element.d.ts +48 -0
- package/dist/element.d.ts.map +1 -1
- package/dist/element.js +8008 -6950
- package/dist/element.js.map +1 -1
- package/dist/index.cjs +2987 -1933
- package/dist/index.js +8008 -6950
- package/dist/player.cjs +3102 -2970
- package/dist/player.js +1812 -1680
- package/dist/render/AudioRenderer.d.ts +30 -0
- package/dist/render/AudioRenderer.d.ts.map +1 -1
- package/dist/render/AudioRenderer.js +127 -44
- package/dist/render/AudioRenderer.js.map +1 -1
- package/dist/render/CanvasRenderer.d.ts +31 -0
- package/dist/render/CanvasRenderer.d.ts.map +1 -1
- package/dist/render/CanvasRenderer.js +81 -25
- package/dist/render/CanvasRenderer.js.map +1 -1
- package/dist/render/DASHPlayerWrapper.d.ts.map +1 -1
- package/dist/render/DASHPlayerWrapper.js +3 -1
- package/dist/render/DASHPlayerWrapper.js.map +1 -1
- package/dist/render/HLSPlayerWrapper.d.ts.map +1 -1
- package/dist/render/HLSPlayerWrapper.js +3 -1
- package/dist/render/HLSPlayerWrapper.js.map +1 -1
- package/dist/render/MoviElement.d.ts +237 -0
- package/dist/render/MoviElement.d.ts.map +1 -1
- package/dist/render/MoviElement.js +2154 -232
- package/dist/render/MoviElement.js.map +1 -1
- package/dist/render/ShakaPlayerWrapper.d.ts.map +1 -1
- package/dist/render/ShakaPlayerWrapper.js +3 -1
- package/dist/render/ShakaPlayerWrapper.js.map +1 -1
- package/dist/source/HttpSource.d.ts +3 -0
- package/dist/source/HttpSource.d.ts.map +1 -1
- package/dist/source/HttpSource.js +81 -22
- package/dist/source/HttpSource.js.map +1 -1
- package/dist/utils/QoE.d.ts +126 -0
- package/dist/utils/QoE.d.ts.map +1 -0
- package/dist/utils/QoE.js +192 -0
- package/dist/utils/QoE.js.map +1 -0
- package/dist/utils/ThumbnailRenderer.d.ts +25 -0
- package/dist/utils/ThumbnailRenderer.d.ts.map +1 -1
- package/dist/utils/ThumbnailRenderer.js +195 -2
- package/dist/utils/ThumbnailRenderer.js.map +1 -1
- package/dist/wasm/bindings.d.ts +8 -0
- package/dist/wasm/bindings.d.ts.map +1 -1
- package/dist/wasm/bindings.js +31 -7
- package/dist/wasm/bindings.js.map +1 -1
- package/dist/wasm/movi.js +0 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -6,8 +6,11 @@
|
|
|
6
6
|
##### No transcoding. No server processing. <br /> Just `<movi-player src="video.mkv" controls>`.
|
|
7
7
|
|
|
8
8
|
[](https://www.npmjs.com/package/movi-player)
|
|
9
|
-
[](https://www.npmjs.com/package/movi-player)
|
|
10
|
-
[](https://www.npmjs.com/package/movi-player)
|
|
10
|
+
[](https://www.jsdelivr.com/package/npm/movi-player)
|
|
11
|
+
[](https://www.npmjs.com/package/movi-player)
|
|
12
|
+
[](https://www.npmjs.com/package/movi-player)
|
|
13
|
+
[](#modules)
|
|
11
14
|
[](LICENSE)
|
|
12
15
|
[](https://github.com/MrUjjwalG/movi-player/stargazers)
|
|
13
16
|
|
|
@@ -74,6 +77,8 @@ Also available as a **desktop app** (Windows / macOS / Linux) for playing local
|
|
|
74
77
|
<movi-player src="video.mp4" controls autoplay muted></movi-player>
|
|
75
78
|
```
|
|
76
79
|
|
|
80
|
+
> Prefer the official hosted build? Load it straight from **`https://moviplayer.com/dist/element.js`** — always the latest release, and a drop-in on any page (no COOP/COEP or isolation headers required).
|
|
81
|
+
|
|
77
82
|
Or with npm:
|
|
78
83
|
|
|
79
84
|
```html
|
|
@@ -202,9 +207,9 @@ Use cases: video validators, asset management, HDR detection pipelines, search i
|
|
|
202
207
|
|
|
203
208
|
| Module | Size | Gzip | Brotli | What you get |
|
|
204
209
|
|---|---|---|---|---|
|
|
205
|
-
| `movi-player` / `movi-player/element` | ~410KB |
|
|
206
|
-
| `movi-player/player` | ~180KB |
|
|
207
|
-
| `movi-player/demuxer` | ~50KB | 2.
|
|
210
|
+
| `movi-player` / `movi-player/element` | ~410KB | 3.13 MB | 2.37 MB | Full player with UI, controls, gestures |
|
|
211
|
+
| `movi-player/player` | ~180KB | 3.15 MB | 2.38 MB | Programmatic playback, no UI |
|
|
212
|
+
| `movi-player/demuxer` | ~50KB | 2.37 MB | 1.79 MB | Metadata extraction, decoding only |
|
|
208
213
|
|
|
209
214
|
> **Note:** Module sizes (first column) exclude the embedded WASM binary. Gzip/Brotli columns show the total transfer size including WASM. Enable Brotli compression on your server for optimal delivery.
|
|
210
215
|
|
|
@@ -301,8 +306,10 @@ Use cases: video validators, asset management, HDR detection pipelines, search i
|
|
|
301
306
|
lcevcurl="https://..." <!-- URL to lazy-load the lcevc_dec.js decoder library -->
|
|
302
307
|
sw <!-- Force software decoding -->
|
|
303
308
|
fps="60" <!-- Override frame rate -->
|
|
304
|
-
|
|
309
|
+
playsinline <!-- Play inline; on any touch device, suppress swipe/volume gestures while inline so they don't fight page scroll (fullscreen unaffected) -->
|
|
310
|
+
gesturefs <!-- DEPRECATED: use playsinline -->
|
|
305
311
|
nohotkeys <!-- Disable keyboard shortcuts -->
|
|
312
|
+
noerrorscreen <!-- Suppress the built-in error overlays (host renders its own) -->
|
|
306
313
|
encrypted <!-- Encrypted playback mode -->
|
|
307
314
|
tokenurl="/api/token" <!-- Token endpoint (encrypted) -->
|
|
308
315
|
videourl="/api/video" <!-- Video endpoint (encrypted) -->
|
|
@@ -369,6 +376,7 @@ Press `?` during playback to toggle the shortcuts panel (also available from the
|
|
|
369
376
|
| `S` | Snapshot | `0` / `Home` | Seek to start |
|
|
370
377
|
| `P` | Picture-in-Picture | Arrows | Seek / Volume |
|
|
371
378
|
| `V` | Cycle subtitle track | `Z` / `X` | Subtitle delay -/+ 100ms |
|
|
379
|
+
| `1` – `9` | Seek to 10%–90% | | |
|
|
372
380
|
|
|
373
381
|
## Server Requirements
|
|
374
382
|
|
|
@@ -376,12 +384,15 @@ Videos served over HTTP need:
|
|
|
376
384
|
|
|
377
385
|
1. **Range requests** -- for seeking
|
|
378
386
|
2. **CORS headers** -- if cross-origin
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
387
|
+
|
|
388
|
+
**COOP/COEP headers are _optional_.** The WASM engine is single-threaded with Asyncify I/O, so it plays fine **without** `SharedArrayBuffer` — no isolation headers, no service worker, no "Security Headers Missing" screen. Setting them only enables an optional **zero-copy `SharedArrayBuffer` fast-path** for HTTP streaming; without them `HttpSource` uses a plain-buffer path and streams normally.
|
|
389
|
+
|
|
390
|
+
```
|
|
391
|
+
Cross-Origin-Opener-Policy: same-origin
|
|
392
|
+
Cross-Origin-Embedder-Policy: require-corp
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
On static hosts where you can't set response headers (GitHub Pages, Netlify free tier, etc.), [coi-serviceworker](https://github.com/gzuidhof/coi-serviceworker) can inject these client-side if you want the fast-path — but it's no longer required to play.
|
|
385
396
|
|
|
386
397
|
## Browser Support
|
|
387
398
|
|
|
@@ -6,6 +6,7 @@ import { EventEmitter } from "../events/EventEmitter";
|
|
|
6
6
|
import { type SourceAdapter } from "../source";
|
|
7
7
|
import { TrackManager } from "./TrackManager";
|
|
8
8
|
import { LogLevel } from "../utils/Logger";
|
|
9
|
+
import { type VRView } from "../render/CanvasRenderer";
|
|
9
10
|
export declare class MoviPlayer extends EventEmitter<PlayerEventMap> {
|
|
10
11
|
private static readonly _isMobileDevice;
|
|
11
12
|
private config;
|
|
@@ -28,6 +29,13 @@ export declare class MoviPlayer extends EventEmitter<PlayerEventMap> {
|
|
|
28
29
|
private mediaInfo;
|
|
29
30
|
private fileSize;
|
|
30
31
|
private lastBufferedTime;
|
|
32
|
+
/**
|
|
33
|
+
* Enable/disable seek-bar scrub previews on an already-constructed player.
|
|
34
|
+
* Lets the `thumb` attribute be toggled at runtime (or applied after `src`,
|
|
35
|
+
* whose callback creates the player first) without recreating the player.
|
|
36
|
+
* The thumbnail pipeline stays lazy — it only spins up on the first hover.
|
|
37
|
+
*/
|
|
38
|
+
setPreviewsEnabled(enabled: boolean): void;
|
|
31
39
|
private previewsAllowed;
|
|
32
40
|
/** Proxy a stream wrapper's events + mirror its TrackManager onto the player. */
|
|
33
41
|
private wireStreamWrapper;
|
|
@@ -55,6 +63,7 @@ export declare class MoviPlayer extends EventEmitter<PlayerEventMap> {
|
|
|
55
63
|
private _stallStartTime;
|
|
56
64
|
private _bufferingEntryTime;
|
|
57
65
|
private _playStartTime;
|
|
66
|
+
private _primingAudio;
|
|
58
67
|
private _decoderStuckSince;
|
|
59
68
|
private _lastDesyncSeekTime;
|
|
60
69
|
private animationFrameId;
|
|
@@ -148,6 +157,36 @@ export declare class MoviPlayer extends EventEmitter<PlayerEventMap> {
|
|
|
148
157
|
* Clears the seek flag, synchronizes clock, and transitions to final state.
|
|
149
158
|
*/
|
|
150
159
|
private notifySeekCompletion;
|
|
160
|
+
/**
|
|
161
|
+
* Heavy lossless/complex software audio codecs (TrueHD/MLP, DTS/DCA) decode
|
|
162
|
+
* sub-realtime for ~1-2s from a cold start. Every seek flushes the decoder,
|
|
163
|
+
* so each post-seek resume is a cold start that needs the audio prime cushion
|
|
164
|
+
* — not just the first play/replay. Hardware audio (AAC) and lightweight
|
|
165
|
+
* software codecs (Opus/FLAC/AC-3/E-AC-3) decode faster than realtime even
|
|
166
|
+
* cold and don't need it. (issue #11)
|
|
167
|
+
*/
|
|
168
|
+
private activeAudioNeedsColdPrime;
|
|
169
|
+
/**
|
|
170
|
+
* Tell the demuxer to skip every audio track except the active one. A file
|
|
171
|
+
* with a second, unused audio track (e.g. a dual-TrueHD source with ~933
|
|
172
|
+
* packets/s PER track) otherwise floods the read path with packets the loop
|
|
173
|
+
* immediately throws away — roughly doubling the reads needed per second. On
|
|
174
|
+
* a slower engine (Safari pulls ~half the packets/s of Chromium) that starved
|
|
175
|
+
* the ACTIVE audio below realtime and stalled every few seconds (issue #11).
|
|
176
|
+
* AVDISCARD_ALL makes av_read_frame skip them internally so each read returns
|
|
177
|
+
* a useful packet. Only audio streams are touched — video and subtitles keep
|
|
178
|
+
* their demuxer defaults (subtitles are read on demand). Re-applied on every
|
|
179
|
+
* audio-track switch so the newly-selected track is re-enabled.
|
|
180
|
+
*/
|
|
181
|
+
private applyStreamDiscard;
|
|
182
|
+
/**
|
|
183
|
+
* Begin an audio prime: hold the AudioContext suspended (primeForBuffering,
|
|
184
|
+
* which never issues a resume() so it can't drain/race), flush any pending
|
|
185
|
+
* post-seek audio packets into the decoder so the cushion starts filling, and
|
|
186
|
+
* flag _primingAudio so the buffering→resume gate waits for a real cushion
|
|
187
|
+
* (2s) rather than the thin 0.1s default before resuming.
|
|
188
|
+
*/
|
|
189
|
+
private beginAudioPrime;
|
|
151
190
|
/**
|
|
152
191
|
* Main Playback Loop
|
|
153
192
|
*/
|
|
@@ -182,7 +221,7 @@ export declare class MoviPlayer extends EventEmitter<PlayerEventMap> {
|
|
|
182
221
|
/**
|
|
183
222
|
* Generates a preview frame for the given time using C for demuxing and WebCodecs for decoding.
|
|
184
223
|
*/
|
|
185
|
-
getPreviewFrame(time: number): Promise<Blob | null>;
|
|
224
|
+
getPreviewFrame(time: number, view?: VRView | null): Promise<Blob | null>;
|
|
186
225
|
/**
|
|
187
226
|
* Generate timeline thumbnails at regular intervals
|
|
188
227
|
* @param count Number of thumbnails to generate (default 8)
|
|
@@ -330,6 +369,11 @@ export declare class MoviPlayer extends EventEmitter<PlayerEventMap> {
|
|
|
330
369
|
* Rotate video 90 degrees clockwise
|
|
331
370
|
*/
|
|
332
371
|
rotateVideo(): number;
|
|
372
|
+
/**
|
|
373
|
+
* The currently-displayed decoded VideoFrame, or null. Fallback capture
|
|
374
|
+
* source for snapshots when the WebGL canvas reads back blank.
|
|
375
|
+
*/
|
|
376
|
+
getCurrentVideoFrame(): VideoFrame | null;
|
|
333
377
|
/**
|
|
334
378
|
* Get current video rotation
|
|
335
379
|
*/
|
|
@@ -340,6 +384,9 @@ export declare class MoviPlayer extends EventEmitter<PlayerEventMap> {
|
|
|
340
384
|
/** Enable/disable 360° equirectangular projection on the video renderer. */
|
|
341
385
|
setVR360(enabled: boolean): void;
|
|
342
386
|
isVR360Enabled(): boolean;
|
|
387
|
+
/** Live 360° camera + projection snapshot for reprojecting seek-bar previews
|
|
388
|
+
* to the current view. Null when not in 360. */
|
|
389
|
+
getVR360View(): VRView | null;
|
|
343
390
|
/** Select the VR projection/layout: half = VR180, fisheye = equidistant
|
|
344
391
|
* fisheye, stereoSbs = side-by-side stereo (left eye), stereographic =
|
|
345
392
|
* little-planet. */
|
|
@@ -415,6 +462,13 @@ export declare class MoviPlayer extends EventEmitter<PlayerEventMap> {
|
|
|
415
462
|
* audio is muxed inside the native <video> element.
|
|
416
463
|
*/
|
|
417
464
|
hasAudibleSource(): boolean;
|
|
465
|
+
/**
|
|
466
|
+
* True when audio plays through a native HTMLMediaElement — an adaptive
|
|
467
|
+
* stream (HLS/DASH via the stream wrapper's <video>) or native split-source
|
|
468
|
+
* audio — rather than the AudioContext. Such audio can't be boosted above
|
|
469
|
+
* 100% (HTMLMediaElement.volume caps at [0,1]), so the volume UI caps at 100%.
|
|
470
|
+
*/
|
|
471
|
+
usesNativeAudio(): boolean;
|
|
418
472
|
/** True for a live (dynamic) adaptive stream — drives the LIVE indicator. */
|
|
419
473
|
isLiveStream(): boolean;
|
|
420
474
|
/** True when the active adaptive stream is audio-only (no video track). */
|
|
@@ -510,6 +564,16 @@ export declare class MoviPlayer extends EventEmitter<PlayerEventMap> {
|
|
|
510
564
|
/**
|
|
511
565
|
* Get comprehensive player stats for "Stats for nerds" overlay
|
|
512
566
|
*/
|
|
567
|
+
/**
|
|
568
|
+
* Raw render-health numbers for the stutter-hint monitor — distinct from
|
|
569
|
+
* getStats(), which formats display strings. framesPresented is cumulative
|
|
570
|
+
* (resets to 0 on seek/reset), so callers must handle it going backwards.
|
|
571
|
+
* Null when there's no video renderer (audio-only / adaptive streams).
|
|
572
|
+
*/
|
|
573
|
+
getRenderHealth(): {
|
|
574
|
+
framesPresented: number;
|
|
575
|
+
sourceFps: number;
|
|
576
|
+
} | null;
|
|
513
577
|
getStats(): Record<string, string | number | boolean>;
|
|
514
578
|
/**
|
|
515
579
|
* Get current I/O throughput in bytes/sec (for graph)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoviPlayer.d.ts","sourceRoot":"","sources":["../../src/core/MoviPlayer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,UAAU,EACV,UAAU,EAEV,aAAa,EAId,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAU,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"MoviPlayer.d.ts","sourceRoot":"","sources":["../../src/core/MoviPlayer.ts"],"names":[],"mappings":"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"}
|