@remotion/webcodecs 4.0.229 → 4.0.231
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 +12 -1
- package/dist/arraybuffer-to-uint8-array.d.ts +1 -0
- package/dist/arraybuffer-to-uint8-array.js +7 -0
- package/dist/audio-decoder.d.ts +2 -2
- package/dist/audio-encoder-config.js +15 -2
- package/dist/audio-encoder.d.ts +2 -1
- package/dist/audio-encoder.js +17 -5
- package/dist/browser-quirks.d.ts +2 -0
- package/dist/browser-quirks.js +11 -0
- package/dist/can-copy-audio-track.d.ts +2 -4
- package/dist/can-copy-audio-track.js +7 -4
- package/dist/can-copy-video-track.d.ts +2 -4
- package/dist/can-copy-video-track.js +6 -6
- package/dist/can-reencode-audio-track.js +1 -6
- package/dist/can-reencode-video-track.js +1 -0
- package/dist/choose-correct-avc1-profile.d.ts +5 -0
- package/dist/choose-correct-avc1-profile.js +54 -0
- package/dist/codec-id.d.ts +7 -4
- package/dist/codec-id.js +28 -5
- package/dist/convert-encoded-chunk.d.ts +2 -1
- package/dist/convert-encoded-chunk.js +25 -2
- package/dist/convert-media.d.ts +13 -12
- package/dist/convert-media.js +62 -46
- package/dist/convert-to-correct-videoframe.d.ts +9 -0
- package/dist/convert-to-correct-videoframe.js +28 -0
- package/dist/default-on-audio-track-handler.d.ts +2 -0
- package/dist/default-on-audio-track-handler.js +36 -0
- package/dist/default-on-video-track-handler.d.ts +2 -0
- package/dist/default-on-video-track-handler.js +29 -0
- package/dist/esm/index.mjs +493 -174
- package/dist/generate-output-filename.d.ts +2 -0
- package/dist/generate-output-filename.js +14 -0
- package/dist/get-default-audio-codec.d.ts +4 -0
- package/dist/get-default-audio-codec.js +13 -0
- package/dist/get-default-video-codec.d.ts +4 -0
- package/dist/get-default-video-codec.js +10 -0
- package/dist/index.d.ts +12 -8
- package/dist/index.js +12 -1
- package/dist/io-manager/io-synchronizer.js +2 -2
- package/dist/{resolve-audio-action.d.ts → on-audio-track-handler.d.ts} +5 -5
- package/dist/on-audio-track-handler.js +2 -0
- package/dist/on-audio-track.d.ts +7 -8
- package/dist/on-audio-track.js +55 -16
- package/dist/on-frame.d.ts +4 -4
- package/dist/on-frame.js +15 -9
- package/dist/{resolve-video-action.d.ts → on-video-track-handler.d.ts} +5 -5
- package/dist/on-video-track-handler.js +2 -0
- package/dist/on-video-track.d.ts +8 -8
- package/dist/on-video-track.js +49 -15
- package/dist/set-remotion-imported.d.ts +6 -0
- package/dist/set-remotion-imported.js +25 -0
- package/dist/throttled-state-update.d.ts +13 -0
- package/dist/throttled-state-update.js +49 -0
- package/dist/video-decoder.d.ts +2 -2
- package/dist/video-decoder.js +5 -0
- package/dist/video-encoder-config.d.ts +2 -1
- package/dist/video-encoder-config.js +9 -2
- package/dist/video-encoder.d.ts +4 -2
- package/dist/video-encoder.js +12 -10
- package/package.json +4 -3
- package/dist/can-reencode-audio.d.ts +0 -7
- package/dist/can-reencode-audio.js +0 -21
- package/dist/can-reencode-video.d.ts +0 -6
- package/dist/can-reencode-video.js +0 -15
- package/dist/event-emitter.d.ts +0 -25
- package/dist/event-emitter.js +0 -23
- package/dist/polyfill-encoded-audio-chunk.d.ts +0 -3
- package/dist/polyfill-encoded-audio-chunk.js +0 -5
- package/dist/resolve-audio-action.js +0 -32
- package/dist/resolve-video-action.js +0 -26
- package/dist/wait-until-return.d.ts +0 -4
- package/dist/wait-until-return.js +0 -14
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertToCorrectVideoFrame = exports.needsToCorrectVideoFrame = void 0;
|
|
4
|
+
const browser_quirks_1 = require("./browser-quirks");
|
|
5
|
+
const needsToCorrectVideoFrame = ({ videoFrame, outputCodec, }) => {
|
|
6
|
+
return (0, browser_quirks_1.isFirefox)() && videoFrame.format === 'BGRX' && outputCodec === 'h264';
|
|
7
|
+
};
|
|
8
|
+
exports.needsToCorrectVideoFrame = needsToCorrectVideoFrame;
|
|
9
|
+
const convertToCorrectVideoFrame = ({ videoFrame, outputCodec, }) => {
|
|
10
|
+
if (!(0, exports.needsToCorrectVideoFrame)({ videoFrame, outputCodec })) {
|
|
11
|
+
return videoFrame;
|
|
12
|
+
}
|
|
13
|
+
const canvas = new OffscreenCanvas(videoFrame.displayWidth, videoFrame.displayHeight);
|
|
14
|
+
canvas.width = videoFrame.displayWidth;
|
|
15
|
+
canvas.height = videoFrame.displayHeight;
|
|
16
|
+
const ctx = canvas.getContext('2d');
|
|
17
|
+
if (!ctx) {
|
|
18
|
+
throw new Error('Could not get 2d context');
|
|
19
|
+
}
|
|
20
|
+
ctx.drawImage(videoFrame, 0, 0);
|
|
21
|
+
return new VideoFrame(canvas, {
|
|
22
|
+
displayHeight: videoFrame.displayHeight,
|
|
23
|
+
displayWidth: videoFrame.displayWidth,
|
|
24
|
+
duration: videoFrame.duration,
|
|
25
|
+
timestamp: videoFrame.timestamp,
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
exports.convertToCorrectVideoFrame = convertToCorrectVideoFrame;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultOnAudioTrackHandler = void 0;
|
|
4
|
+
const media_parser_1 = require("@remotion/media-parser");
|
|
5
|
+
const can_copy_audio_track_1 = require("./can-copy-audio-track");
|
|
6
|
+
const can_reencode_audio_track_1 = require("./can-reencode-audio-track");
|
|
7
|
+
const get_default_audio_codec_1 = require("./get-default-audio-codec");
|
|
8
|
+
const DEFAULT_BITRATE = 128000;
|
|
9
|
+
const defaultOnAudioTrackHandler = async ({ track, defaultAudioCodec, logLevel, container, }) => {
|
|
10
|
+
const bitrate = DEFAULT_BITRATE;
|
|
11
|
+
const canCopy = (0, can_copy_audio_track_1.canCopyAudioTrack)({
|
|
12
|
+
inputCodec: track.codecWithoutConfig,
|
|
13
|
+
container,
|
|
14
|
+
});
|
|
15
|
+
if (canCopy) {
|
|
16
|
+
media_parser_1.MediaParserInternals.Log.verbose(logLevel, `Track ${track.trackId} (audio): Can copy track, therefore copying`);
|
|
17
|
+
return Promise.resolve({ type: 'copy' });
|
|
18
|
+
}
|
|
19
|
+
const audioCodec = defaultAudioCodec !== null && defaultAudioCodec !== void 0 ? defaultAudioCodec : (0, get_default_audio_codec_1.getDefaultAudioCodec)({ container });
|
|
20
|
+
const canReencode = await (0, can_reencode_audio_track_1.canReencodeAudioTrack)({
|
|
21
|
+
audioCodec,
|
|
22
|
+
track,
|
|
23
|
+
bitrate,
|
|
24
|
+
});
|
|
25
|
+
if (canReencode) {
|
|
26
|
+
media_parser_1.MediaParserInternals.Log.verbose(logLevel, `Track ${track.trackId} (audio): Cannot copy, but re-encode, therefore re-encoding`);
|
|
27
|
+
return Promise.resolve({
|
|
28
|
+
type: 'reencode',
|
|
29
|
+
bitrate,
|
|
30
|
+
audioCodec,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
media_parser_1.MediaParserInternals.Log.verbose(logLevel, `Track ${track.trackId} (audio): Can neither re-encode nor copy, failing render`);
|
|
34
|
+
return Promise.resolve({ type: 'fail' });
|
|
35
|
+
};
|
|
36
|
+
exports.defaultOnAudioTrackHandler = defaultOnAudioTrackHandler;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultOnVideoTrackHandler = void 0;
|
|
4
|
+
const media_parser_1 = require("@remotion/media-parser");
|
|
5
|
+
const can_copy_video_track_1 = require("./can-copy-video-track");
|
|
6
|
+
const can_reencode_video_track_1 = require("./can-reencode-video-track");
|
|
7
|
+
const get_default_video_codec_1 = require("./get-default-video-codec");
|
|
8
|
+
const defaultOnVideoTrackHandler = async ({ track, defaultVideoCodec, logLevel, container, }) => {
|
|
9
|
+
const canCopy = (0, can_copy_video_track_1.canCopyVideoTrack)({
|
|
10
|
+
inputCodec: track.codecWithoutConfig,
|
|
11
|
+
container,
|
|
12
|
+
});
|
|
13
|
+
if (canCopy) {
|
|
14
|
+
media_parser_1.MediaParserInternals.Log.verbose(logLevel, `Track ${track.trackId} (video): Can copy, therefore copying`);
|
|
15
|
+
return Promise.resolve({ type: 'copy' });
|
|
16
|
+
}
|
|
17
|
+
const videoCodec = defaultVideoCodec !== null && defaultVideoCodec !== void 0 ? defaultVideoCodec : (0, get_default_video_codec_1.getDefaultVideoCodec)({ container });
|
|
18
|
+
const canReencode = await (0, can_reencode_video_track_1.canReencodeVideoTrack)({
|
|
19
|
+
videoCodec,
|
|
20
|
+
track,
|
|
21
|
+
});
|
|
22
|
+
if (canReencode) {
|
|
23
|
+
media_parser_1.MediaParserInternals.Log.verbose(logLevel, `Track ${track.trackId} (video): Cannot copy, but re-enconde, therefore re-encoding`);
|
|
24
|
+
return Promise.resolve({ type: 'reencode', videoCodec });
|
|
25
|
+
}
|
|
26
|
+
media_parser_1.MediaParserInternals.Log.verbose(logLevel, `Track ${track.trackId} (video): Can neither copy nor re-encode, therefore failing`);
|
|
27
|
+
return Promise.resolve({ type: 'fail' });
|
|
28
|
+
};
|
|
29
|
+
exports.defaultOnVideoTrackHandler = defaultOnVideoTrackHandler;
|