@remotion/webcodecs 4.0.232 → 4.0.233
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 +2 -2
- package/dist/audio-decoder-config.d.ts +2 -1
- package/dist/audio-decoder-config.js +44 -3
- package/dist/audio-decoder.d.ts +6 -3
- package/dist/audio-decoder.js +20 -4
- package/dist/audio-encoder.d.ts +3 -2
- package/dist/audio-encoder.js +11 -3
- package/dist/browser-quirks.d.ts +1 -0
- package/dist/browser-quirks.js +5 -1
- package/dist/can-copy-video-track.d.ts +3 -1
- package/dist/can-copy-video-track.js +6 -1
- package/dist/can-reencode-audio-track.d.ts +3 -2
- package/dist/can-reencode-audio-track.js +2 -2
- package/dist/convert-media.d.ts +2 -1
- package/dist/convert-media.js +7 -3
- package/dist/convert-to-correct-videoframe.js +4 -0
- package/dist/default-on-video-track-handler.js +8 -2
- package/dist/esm/index.mjs +351 -137
- package/dist/get-wave-audio-decoder.d.ts +2 -0
- package/dist/get-wave-audio-decoder.js +29 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +6 -1
- package/dist/io-manager/event-emitter.d.ts +4 -0
- package/dist/io-manager/event-emitter.js +1 -0
- package/dist/io-manager/io-synchronizer.d.ts +8 -2
- package/dist/io-manager/io-synchronizer.js +31 -20
- package/dist/io-manager/make-timeout-promise.d.ts +4 -0
- package/dist/io-manager/make-timeout-promise.js +18 -0
- package/dist/on-audio-track.d.ts +3 -2
- package/dist/on-audio-track.js +6 -3
- package/dist/on-frame.d.ts +2 -1
- package/dist/on-frame.js +25 -14
- package/dist/on-video-track-handler.d.ts +2 -0
- package/dist/on-video-track.d.ts +4 -2
- package/dist/on-video-track.js +20 -5
- package/dist/rotate-video-frame.d.ts +5 -0
- package/dist/rotate-video-frame.js +48 -0
- package/dist/rotate-video.d.ts +4 -0
- package/dist/rotate-video.js +43 -0
- package/dist/rotation.d.ts +8 -0
- package/dist/rotation.js +10 -0
- package/dist/select-container-creator.d.ts +1 -1
- package/dist/test/avi-to-mp4.test.js +15 -0
- package/dist/video-decoder.d.ts +3 -2
- package/dist/video-decoder.js +11 -3
- package/dist/video-encoder.d.ts +3 -2
- package/dist/video-encoder.js +7 -2
- package/package.json +5 -3
package/dist/video-decoder.js
CHANGED
|
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createVideoDecoder = void 0;
|
|
4
4
|
const io_synchronizer_1 = require("./io-manager/io-synchronizer");
|
|
5
5
|
const log_1 = require("./log");
|
|
6
|
-
const createVideoDecoder = ({ onFrame, onError, signal, config, logLevel, }) => {
|
|
7
|
-
const ioSynchronizer = (0, io_synchronizer_1.makeIoSynchronizer)(
|
|
6
|
+
const createVideoDecoder = ({ onFrame, onError, signal, config, logLevel, progress, }) => {
|
|
7
|
+
const ioSynchronizer = (0, io_synchronizer_1.makeIoSynchronizer)({
|
|
8
|
+
logLevel,
|
|
9
|
+
label: 'Video decoder',
|
|
10
|
+
progress,
|
|
11
|
+
});
|
|
8
12
|
let outputQueue = Promise.resolve();
|
|
9
13
|
const videoDecoder = new VideoDecoder({
|
|
10
14
|
output(inputFrame) {
|
|
@@ -55,7 +59,11 @@ const createVideoDecoder = ({ onFrame, onError, signal, config, logLevel, }) =>
|
|
|
55
59
|
if (videoDecoder.state === 'closed') {
|
|
56
60
|
return;
|
|
57
61
|
}
|
|
58
|
-
await ioSynchronizer.waitFor({
|
|
62
|
+
await ioSynchronizer.waitFor({
|
|
63
|
+
unemitted: 20,
|
|
64
|
+
_unprocessed: 2,
|
|
65
|
+
minimumProgress: sample.timestamp - 5000000,
|
|
66
|
+
});
|
|
59
67
|
if (sample.type === 'key') {
|
|
60
68
|
await videoDecoder.flush();
|
|
61
69
|
}
|
package/dist/video-encoder.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LogLevel } from '@remotion/media-parser';
|
|
1
|
+
import type { LogLevel, ProgressTracker } from '@remotion/media-parser';
|
|
2
2
|
import type { ConvertMediaVideoCodec } from './get-available-video-codecs';
|
|
3
3
|
export type WebCodecsVideoEncoder = {
|
|
4
4
|
encodeFrame: (videoFrame: VideoFrame, timestamp: number) => Promise<void>;
|
|
@@ -6,11 +6,12 @@ export type WebCodecsVideoEncoder = {
|
|
|
6
6
|
close: () => void;
|
|
7
7
|
flush: () => Promise<void>;
|
|
8
8
|
};
|
|
9
|
-
export declare const createVideoEncoder: ({ onChunk, onError, signal, config, logLevel, outputCodec, }: {
|
|
9
|
+
export declare const createVideoEncoder: ({ onChunk, onError, signal, config, logLevel, outputCodec, progress, }: {
|
|
10
10
|
onChunk: (chunk: EncodedVideoChunk, metadata: EncodedVideoChunkMetadata | null) => Promise<void>;
|
|
11
11
|
onError: (error: DOMException) => void;
|
|
12
12
|
signal: AbortSignal;
|
|
13
13
|
config: VideoEncoderConfig;
|
|
14
14
|
logLevel: LogLevel;
|
|
15
15
|
outputCodec: ConvertMediaVideoCodec;
|
|
16
|
+
progress: ProgressTracker;
|
|
16
17
|
}) => WebCodecsVideoEncoder;
|
package/dist/video-encoder.js
CHANGED
|
@@ -4,11 +4,15 @@ exports.createVideoEncoder = void 0;
|
|
|
4
4
|
const convert_to_correct_videoframe_1 = require("./convert-to-correct-videoframe");
|
|
5
5
|
const io_synchronizer_1 = require("./io-manager/io-synchronizer");
|
|
6
6
|
const log_1 = require("./log");
|
|
7
|
-
const createVideoEncoder = ({ onChunk, onError, signal, config, logLevel, outputCodec, }) => {
|
|
7
|
+
const createVideoEncoder = ({ onChunk, onError, signal, config, logLevel, outputCodec, progress, }) => {
|
|
8
8
|
if (signal.aborted) {
|
|
9
9
|
throw new Error('Not creating video encoder, already aborted');
|
|
10
10
|
}
|
|
11
|
-
const ioSynchronizer = (0, io_synchronizer_1.makeIoSynchronizer)(
|
|
11
|
+
const ioSynchronizer = (0, io_synchronizer_1.makeIoSynchronizer)({
|
|
12
|
+
logLevel,
|
|
13
|
+
label: 'Video encoder',
|
|
14
|
+
progress,
|
|
15
|
+
});
|
|
12
16
|
let outputQueue = Promise.resolve();
|
|
13
17
|
const encoder = new VideoEncoder({
|
|
14
18
|
error(error) {
|
|
@@ -57,6 +61,7 @@ const createVideoEncoder = ({ onChunk, onError, signal, config, logLevel, output
|
|
|
57
61
|
// Firefox stalls if too few frames are passed
|
|
58
62
|
unemitted: 10,
|
|
59
63
|
_unprocessed: 10,
|
|
64
|
+
minimumProgress: frame.timestamp - 5000000,
|
|
60
65
|
});
|
|
61
66
|
// @ts-expect-error - can have changed in the meanwhile
|
|
62
67
|
if (encoder.state === 'closed') {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/webcodecs",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.233",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"module": "dist/esm/index.mjs",
|
|
@@ -17,13 +17,14 @@
|
|
|
17
17
|
"author": "Jonny Burger <jonny@remotion.dev>",
|
|
18
18
|
"license": "Remotion License (See https://remotion.dev/docs/webcodecs#license)",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@remotion/media-parser": "4.0.
|
|
20
|
+
"@remotion/media-parser": "4.0.233",
|
|
21
|
+
"@remotion/example-videos": "4.0.233"
|
|
21
22
|
},
|
|
22
23
|
"peerDependencies": {},
|
|
23
24
|
"devDependencies": {
|
|
24
25
|
"@types/dom-webcodecs": "0.1.11",
|
|
25
26
|
"eslint": "9.14.0",
|
|
26
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
27
|
+
"@remotion/eslint-config-internal": "4.0.233"
|
|
27
28
|
},
|
|
28
29
|
"keywords": [],
|
|
29
30
|
"publishConfig": {
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
"scripts": {
|
|
35
36
|
"formatting": "prettier src --check",
|
|
36
37
|
"lint": "eslint src",
|
|
38
|
+
"test": "bun test src",
|
|
37
39
|
"watch": "tsc -w",
|
|
38
40
|
"make": "tsc -d && bun --env-file=../.env.bundle bundle.ts"
|
|
39
41
|
}
|