@remotion/serverless 4.0.424 → 4.0.426
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/dist/handlers/launch.js +15 -13
- package/dist/handlers/start.js +4 -2
- package/dist/handlers/still.js +7 -5
- package/dist/merge-chunks.js +1 -1
- package/dist/overall-render-progress.d.ts +2 -2
- package/dist/overall-render-progress.js +59 -53
- package/dist/validate-composition.d.ts +3 -1
- package/dist/validate-composition.js +3 -1
- package/package.json +7 -7
package/dist/handlers/launch.js
CHANGED
|
@@ -18,7 +18,7 @@ const validate_composition_1 = require("../validate-composition");
|
|
|
18
18
|
const send_telemetry_event_1 = require("./send-telemetry-event");
|
|
19
19
|
const innerLaunchHandler = async ({ params, options, overallProgress, registerCleanupTask, providerSpecifics, insideFunctionSpecifics, onBrowser, }) => {
|
|
20
20
|
var _a, _b;
|
|
21
|
-
var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
21
|
+
var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
22
22
|
if (params.type !== serverless_client_2.ServerlessRoutines.launch) {
|
|
23
23
|
throw new Error('Expected launch type');
|
|
24
24
|
}
|
|
@@ -75,6 +75,8 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
|
|
|
75
75
|
port: null,
|
|
76
76
|
forceHeight: params.forceHeight,
|
|
77
77
|
forceWidth: params.forceWidth,
|
|
78
|
+
forceFps: (_f = params.forceFps) !== null && _f !== void 0 ? _f : null,
|
|
79
|
+
forceDurationInFrames: (_g = params.forceDurationInFrames) !== null && _g !== void 0 ? _g : null,
|
|
78
80
|
logLevel: params.logLevel,
|
|
79
81
|
server: undefined,
|
|
80
82
|
offthreadVideoCacheSizeInBytes: params.offthreadVideoCacheSizeInBytes,
|
|
@@ -95,7 +97,7 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
|
|
|
95
97
|
renderer_1.RenderInternals.validateConcurrency({
|
|
96
98
|
value: params.concurrencyPerFunction,
|
|
97
99
|
setting: 'concurrencyPerLambda',
|
|
98
|
-
checkIfValidForCurrentMachine: ((
|
|
100
|
+
checkIfValidForCurrentMachine: ((_h = params.rendererFunctionName) !== null && _h !== void 0 ? _h : null) === null,
|
|
99
101
|
});
|
|
100
102
|
const realFrameRange = renderer_1.RenderInternals.getRealFrameRange(comp.durationInFrames, params.frameRange);
|
|
101
103
|
const frameCount = renderer_1.RenderInternals.getFramesToRender(realFrameRange, params.everyNthFrame);
|
|
@@ -217,7 +219,7 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
|
|
|
217
219
|
return payload;
|
|
218
220
|
});
|
|
219
221
|
renderer_1.RenderInternals.Log.info(logOptions, 'Render plan: ', chunks.map((c, i) => `Chunk ${i} (Frames ${c[0]} - ${c[1]})`).join(', '));
|
|
220
|
-
const rendererFunctionName = (
|
|
222
|
+
const rendererFunctionName = (_j = params.rendererFunctionName) !== null && _j !== void 0 ? _j : insideFunctionSpecifics.getCurrentFunctionName();
|
|
221
223
|
const renderMetadata = {
|
|
222
224
|
startedDate,
|
|
223
225
|
totalChunks: chunks.length,
|
|
@@ -239,7 +241,7 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
|
|
|
239
241
|
memorySizeInMb: insideFunctionSpecifics.getCurrentMemorySizeInMb(),
|
|
240
242
|
region: insideFunctionSpecifics.getCurrentRegionInFunction(),
|
|
241
243
|
renderId: params.renderId,
|
|
242
|
-
outName: (0, remove_outname_credentials_1.removeOutnameCredentials)((
|
|
244
|
+
outName: (0, remove_outname_credentials_1.removeOutnameCredentials)((_k = params.outName) !== null && _k !== void 0 ? _k : undefined),
|
|
243
245
|
privacy: params.privacy,
|
|
244
246
|
everyNthFrame: params.everyNthFrame,
|
|
245
247
|
frameRange: realFrameRange,
|
|
@@ -252,10 +254,10 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
|
|
|
252
254
|
metadata: params.metadata,
|
|
253
255
|
functionName: insideFunctionSpecifics.getCurrentFunctionName(),
|
|
254
256
|
dimensions: {
|
|
255
|
-
width: comp.width * ((
|
|
256
|
-
height: comp.height * ((
|
|
257
|
+
width: comp.width * ((_l = params.scale) !== null && _l !== void 0 ? _l : 1),
|
|
258
|
+
height: comp.height * ((_m = params.scale) !== null && _m !== void 0 ? _m : 1),
|
|
257
259
|
},
|
|
258
|
-
rendererFunctionName: (
|
|
260
|
+
rendererFunctionName: (_o = params.rendererFunctionName) !== null && _o !== void 0 ? _o : insideFunctionSpecifics.getCurrentFunctionName(),
|
|
259
261
|
scale: params.scale,
|
|
260
262
|
};
|
|
261
263
|
const { key, renderBucketName, customCredentials } = (0, serverless_client_2.getExpectedOutName)({
|
|
@@ -264,7 +266,7 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
|
|
|
264
266
|
customCredentials: typeof params.outName === 'string' ||
|
|
265
267
|
typeof params.outName === 'undefined'
|
|
266
268
|
? null
|
|
267
|
-
: ((
|
|
269
|
+
: ((_p = (_b = params.outName) === null || _b === void 0 ? void 0 : _b.s3OutputProvider) !== null && _p !== void 0 ? _p : null),
|
|
268
270
|
bucketNamePrefix: providerSpecifics.getBucketPrefix(),
|
|
269
271
|
});
|
|
270
272
|
if (!params.overwrite) {
|
|
@@ -341,7 +343,7 @@ const innerLaunchHandler = async ({ params, options, overallProgress, registerCl
|
|
|
341
343
|
willRetry: false,
|
|
342
344
|
totalAttempts: 1,
|
|
343
345
|
});
|
|
344
|
-
overallProgress.upload();
|
|
346
|
+
overallProgress.upload('artifactWriteError');
|
|
345
347
|
renderer_1.RenderInternals.Log.error({ indent: false, logLevel: params.logLevel }, 'Failed to write artifact to S3', err);
|
|
346
348
|
});
|
|
347
349
|
return { alreadyExisted: false };
|
|
@@ -486,7 +488,7 @@ const launchHandler = async ({ params, options, providerSpecifics, insideFunctio
|
|
|
486
488
|
willRetry: false,
|
|
487
489
|
totalAttempts: 1,
|
|
488
490
|
});
|
|
489
|
-
overallProgress.upload();
|
|
491
|
+
overallProgress.upload('timeoutWebhookError');
|
|
490
492
|
}
|
|
491
493
|
};
|
|
492
494
|
let webhookInvoked = false;
|
|
@@ -563,7 +565,7 @@ const launchHandler = async ({ params, options, providerSpecifics, insideFunctio
|
|
|
563
565
|
willRetry: false,
|
|
564
566
|
totalAttempts: 1,
|
|
565
567
|
});
|
|
566
|
-
overallProgress.upload();
|
|
568
|
+
overallProgress.upload('successWebhookError');
|
|
567
569
|
renderer_1.RenderInternals.Log.error({ indent: false, logLevel: params.logLevel }, 'Failed to invoke webhook:');
|
|
568
570
|
renderer_1.RenderInternals.Log.error({ indent: false, logLevel: params.logLevel }, err);
|
|
569
571
|
}
|
|
@@ -587,7 +589,7 @@ const launchHandler = async ({ params, options, providerSpecifics, insideFunctio
|
|
|
587
589
|
willRetry: false,
|
|
588
590
|
message: err.message,
|
|
589
591
|
});
|
|
590
|
-
await overallProgress.upload();
|
|
592
|
+
await overallProgress.upload('fatalError');
|
|
591
593
|
runCleanupTasks();
|
|
592
594
|
renderer_1.RenderInternals.Log.error({ indent: false, logLevel: params.logLevel }, 'Wrote error to S3');
|
|
593
595
|
clearTimeout(webhookDueToTimeout);
|
|
@@ -631,7 +633,7 @@ const launchHandler = async ({ params, options, providerSpecifics, insideFunctio
|
|
|
631
633
|
willRetry: false,
|
|
632
634
|
totalAttempts: 1,
|
|
633
635
|
});
|
|
634
|
-
overallProgress.upload();
|
|
636
|
+
overallProgress.upload('errorWebhookError');
|
|
635
637
|
renderer_1.RenderInternals.Log.error({ indent: false, logLevel: params.logLevel }, 'Failed to invoke webhook:');
|
|
636
638
|
renderer_1.RenderInternals.Log.error({ indent: false, logLevel: params.logLevel }, error);
|
|
637
639
|
}
|
package/dist/handlers/start.js
CHANGED
|
@@ -5,7 +5,7 @@ const serverless_client_1 = require("@remotion/serverless-client");
|
|
|
5
5
|
const overall_render_progress_1 = require("../overall-render-progress");
|
|
6
6
|
const check_version_mismatch_1 = require("./check-version-mismatch");
|
|
7
7
|
const startHandler = async ({ params, options, providerSpecifics, insideFunctionSpecifics, }) => {
|
|
8
|
-
var _a, _b, _c, _d, _e;
|
|
8
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
9
9
|
if (params.type !== serverless_client_1.ServerlessRoutines.start) {
|
|
10
10
|
throw new TypeError('Expected type start');
|
|
11
11
|
}
|
|
@@ -82,6 +82,8 @@ const startHandler = async ({ params, options, providerSpecifics, insideFunction
|
|
|
82
82
|
encodingMaxRate: params.encodingMaxRate,
|
|
83
83
|
forceHeight: params.forceHeight,
|
|
84
84
|
forceWidth: params.forceWidth,
|
|
85
|
+
forceFps: (_e = params.forceFps) !== null && _e !== void 0 ? _e : null,
|
|
86
|
+
forceDurationInFrames: (_f = params.forceDurationInFrames) !== null && _f !== void 0 ? _f : null,
|
|
85
87
|
rendererFunctionName: params.rendererFunctionName,
|
|
86
88
|
audioCodec: params.audioCodec,
|
|
87
89
|
offthreadVideoCacheSizeInBytes: params.offthreadVideoCacheSizeInBytes,
|
|
@@ -94,7 +96,7 @@ const startHandler = async ({ params, options, providerSpecifics, insideFunction
|
|
|
94
96
|
offthreadVideoThreads: params.offthreadVideoThreads,
|
|
95
97
|
storageClass: params.storageClass,
|
|
96
98
|
mediaCacheSizeInBytes: params.mediaCacheSizeInBytes,
|
|
97
|
-
isProduction: (
|
|
99
|
+
isProduction: (_g = params.isProduction) !== null && _g !== void 0 ? _g : true,
|
|
98
100
|
};
|
|
99
101
|
await providerSpecifics.callFunctionAsync({
|
|
100
102
|
functionName: insideFunctionSpecifics.getCurrentFunctionName(),
|
package/dist/handlers/still.js
CHANGED
|
@@ -17,7 +17,7 @@ const validate_composition_1 = require("../validate-composition");
|
|
|
17
17
|
const check_version_mismatch_1 = require("./check-version-mismatch");
|
|
18
18
|
const send_telemetry_event_1 = require("./send-telemetry-event");
|
|
19
19
|
const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStream, timeoutInMilliseconds, providerSpecifics, insideFunctionSpecifics, }, cleanup) => {
|
|
20
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
20
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
21
21
|
if (params.type !== serverless_client_1.ServerlessRoutines.still) {
|
|
22
22
|
throw new TypeError('Expected still type');
|
|
23
23
|
}
|
|
@@ -107,6 +107,8 @@ const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStre
|
|
|
107
107
|
port: null,
|
|
108
108
|
forceHeight: params.forceHeight,
|
|
109
109
|
forceWidth: params.forceWidth,
|
|
110
|
+
forceFps: (_d = params.forceFps) !== null && _d !== void 0 ? _d : null,
|
|
111
|
+
forceDurationInFrames: (_e = params.forceDurationInFrames) !== null && _e !== void 0 ? _e : null,
|
|
110
112
|
logLevel: params.logLevel,
|
|
111
113
|
server,
|
|
112
114
|
offthreadVideoCacheSizeInBytes: params.offthreadVideoCacheSizeInBytes,
|
|
@@ -134,7 +136,7 @@ const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStre
|
|
|
134
136
|
memorySizeInMb: insideFunctionSpecifics.getCurrentMemorySizeInMb(),
|
|
135
137
|
region: insideFunctionSpecifics.getCurrentRegionInFunction(),
|
|
136
138
|
renderId,
|
|
137
|
-
outName: (0, remove_outname_credentials_1.removeOutnameCredentials)((
|
|
139
|
+
outName: (0, remove_outname_credentials_1.removeOutnameCredentials)((_f = params.outName) !== null && _f !== void 0 ? _f : undefined),
|
|
138
140
|
privacy: params.privacy,
|
|
139
141
|
audioCodec: null,
|
|
140
142
|
deleteAfter: params.deleteAfter,
|
|
@@ -214,7 +216,7 @@ const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStre
|
|
|
214
216
|
composition,
|
|
215
217
|
output: outputPath,
|
|
216
218
|
serveUrl,
|
|
217
|
-
envVariables: (
|
|
219
|
+
envVariables: (_g = params.envVariables) !== null && _g !== void 0 ? _g : {},
|
|
218
220
|
frame: renderer_1.RenderInternals.convertToPositiveFrameIndex({
|
|
219
221
|
frame: params.frame,
|
|
220
222
|
durationInFrames: composition.durationInFrames,
|
|
@@ -223,7 +225,7 @@ const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStre
|
|
|
223
225
|
serializedInputPropsWithCustomSchema,
|
|
224
226
|
overwrite: false,
|
|
225
227
|
puppeteerInstance: browserInstance.instance,
|
|
226
|
-
jpegQuality: (
|
|
228
|
+
jpegQuality: (_h = params.jpegQuality) !== null && _h !== void 0 ? _h : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
|
|
227
229
|
chromiumOptions: params.chromiumOptions,
|
|
228
230
|
scale: params.scale,
|
|
229
231
|
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
@@ -278,7 +280,7 @@ const innerStillHandler = async ({ params, expectedBucketOwner, renderId, onStre
|
|
|
278
280
|
licenseKey: params.licenseKey,
|
|
279
281
|
logLevel: params.logLevel,
|
|
280
282
|
isStill: true,
|
|
281
|
-
isProduction: (
|
|
283
|
+
isProduction: (_j = params.isProduction) !== null && _j !== void 0 ? _j : true,
|
|
282
284
|
}),
|
|
283
285
|
]);
|
|
284
286
|
const estimatedPrice = providerSpecifics.estimatePrice({
|
package/dist/merge-chunks.js
CHANGED
|
@@ -89,7 +89,7 @@ const mergeChunksAndFinishRender = async (options) => {
|
|
|
89
89
|
timeToFinish: Date.now() - options.startTime,
|
|
90
90
|
providerSpecifics: options.providerSpecifics,
|
|
91
91
|
});
|
|
92
|
-
options.overallProgress.setPostRenderData(postRenderData);
|
|
92
|
+
await options.overallProgress.setPostRenderData(postRenderData);
|
|
93
93
|
fs_1.default.unlinkSync(outfile);
|
|
94
94
|
await cleanupChunksProm;
|
|
95
95
|
return postRenderData;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ChunkRetry, CloudProvider, FunctionErrorInfo, OverallRenderProgress, PostRenderData, ProviderSpecifics, ReceivedArtifact, RenderMetadata } from '@remotion/serverless-client';
|
|
2
2
|
export type OverallProgressHelper<Provider extends CloudProvider> = {
|
|
3
|
-
upload: () => Promise<void>;
|
|
3
|
+
upload: (reason: string) => Promise<void>;
|
|
4
4
|
setFrames: ({ encoded, rendered, index }: {
|
|
5
5
|
rendered: number;
|
|
6
6
|
encoded: number;
|
|
@@ -11,7 +11,7 @@ export type OverallProgressHelper<Provider extends CloudProvider> = {
|
|
|
11
11
|
setCombinedFrames: (framesEncoded: number) => void;
|
|
12
12
|
setTimeToCombine: (timeToCombine: number) => void;
|
|
13
13
|
addRetry: (retry: ChunkRetry) => void;
|
|
14
|
-
setPostRenderData: (postRenderData: PostRenderData<Provider>) => void
|
|
14
|
+
setPostRenderData: (postRenderData: PostRenderData<Provider>) => Promise<void>;
|
|
15
15
|
setRenderMetadata: (renderMetadata: RenderMetadata<Provider>) => void;
|
|
16
16
|
addErrorWithoutUpload: (errorInfo: FunctionErrorInfo) => void;
|
|
17
17
|
setExpectedChunks: (expectedChunks: number) => void;
|
|
@@ -31,51 +31,57 @@ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner,
|
|
|
31
31
|
let framesEncoded = [];
|
|
32
32
|
let lambdasInvoked = [];
|
|
33
33
|
const renderProgress = (0, exports.makeInitialOverallRenderProgress)(timeoutTimestamp);
|
|
34
|
-
let
|
|
35
|
-
|
|
36
|
-
let
|
|
37
|
-
const getLatestRequestId = () => latestUploadRequest;
|
|
34
|
+
let dirty = false;
|
|
35
|
+
let dirtyReasons = [];
|
|
36
|
+
let uploadLoopPromise = null;
|
|
38
37
|
let encodeStartTime = null;
|
|
39
38
|
let renderFramesStartTime = null;
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
const markDirty = (reason) => {
|
|
40
|
+
dirty = true;
|
|
41
|
+
dirtyReasons.push(reason);
|
|
42
|
+
};
|
|
43
|
+
const runUploadLoop = async () => {
|
|
44
|
+
while (dirty) {
|
|
45
|
+
dirty = false;
|
|
46
|
+
const reasons = dirtyReasons.join(', ');
|
|
47
|
+
dirtyReasons = [];
|
|
48
|
+
const toWrite = JSON.stringify(renderProgress);
|
|
49
|
+
renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, `Uploading progress - ${reasons} (${toWrite.length} bytes)`);
|
|
50
|
+
const start = Date.now();
|
|
51
|
+
try {
|
|
52
|
+
await providerSpecifics.writeFile({
|
|
53
|
+
body: toWrite,
|
|
54
|
+
bucketName,
|
|
55
|
+
customCredentials: null,
|
|
56
|
+
downloadBehavior: null,
|
|
57
|
+
expectedBucketOwner,
|
|
58
|
+
key: (0, serverless_client_1.overallProgressKey)(renderId),
|
|
59
|
+
privacy: 'private',
|
|
60
|
+
region,
|
|
61
|
+
forcePathStyle,
|
|
62
|
+
storageClass: null,
|
|
63
|
+
requestHandler: null,
|
|
64
|
+
});
|
|
65
|
+
renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, `Uploaded progress in ${Date.now() - start}ms`);
|
|
66
|
+
// Space out the requests a bit
|
|
67
|
+
await new Promise((resolve) => {
|
|
68
|
+
setTimeout(resolve, Math.max(0, 250 - (Date.now() - start)));
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
// If an error occurs in uploading the state that contains the errors,
|
|
73
|
+
// that is unfortunate. We just log it.
|
|
74
|
+
renderer_1.RenderInternals.Log.error({ indent: false, logLevel }, 'Error uploading progress', err);
|
|
75
|
+
}
|
|
44
76
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
77
|
+
uploadLoopPromise = null;
|
|
78
|
+
};
|
|
79
|
+
const upload = async (reason) => {
|
|
80
|
+
markDirty(reason);
|
|
81
|
+
if (!uploadLoopPromise) {
|
|
82
|
+
uploadLoopPromise = runUploadLoop();
|
|
48
83
|
}
|
|
49
|
-
|
|
50
|
-
const start = Date.now();
|
|
51
|
-
currentUploadPromise = providerSpecifics
|
|
52
|
-
.writeFile({
|
|
53
|
-
body: toWrite,
|
|
54
|
-
bucketName,
|
|
55
|
-
customCredentials: null,
|
|
56
|
-
downloadBehavior: null,
|
|
57
|
-
expectedBucketOwner,
|
|
58
|
-
key: (0, serverless_client_1.overallProgressKey)(renderId),
|
|
59
|
-
privacy: 'private',
|
|
60
|
-
region,
|
|
61
|
-
forcePathStyle,
|
|
62
|
-
storageClass: null,
|
|
63
|
-
requestHandler: null,
|
|
64
|
-
})
|
|
65
|
-
.then(() => {
|
|
66
|
-
// By default, upload is way too fast (~20 requests per second)
|
|
67
|
-
// Space out the requests a bit
|
|
68
|
-
return new Promise((resolve) => {
|
|
69
|
-
setTimeout(resolve, Math.max(0, 250 - (Date.now() - start)));
|
|
70
|
-
});
|
|
71
|
-
})
|
|
72
|
-
.catch((err) => {
|
|
73
|
-
// If an error occurs in uploading the state that contains the errors,
|
|
74
|
-
// that is unfortunate. We just log it.
|
|
75
|
-
renderer_1.RenderInternals.Log.error({ indent: false, logLevel }, 'Error uploading progress', err);
|
|
76
|
-
});
|
|
77
|
-
await currentUploadPromise;
|
|
78
|
-
currentUploadPromise = null;
|
|
84
|
+
await uploadLoopPromise;
|
|
79
85
|
};
|
|
80
86
|
return {
|
|
81
87
|
upload,
|
|
@@ -108,7 +114,7 @@ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner,
|
|
|
108
114
|
}
|
|
109
115
|
renderProgress.framesRendered = totalFramesRendered;
|
|
110
116
|
renderProgress.framesEncoded = totalFramesEncoded;
|
|
111
|
-
upload();
|
|
117
|
+
upload(`setFrames(rendered=${totalFramesRendered}, encoded=${totalFramesEncoded})`);
|
|
112
118
|
},
|
|
113
119
|
addChunkCompleted: (chunkIndex, start, rendered) => {
|
|
114
120
|
var _a;
|
|
@@ -123,15 +129,15 @@ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner,
|
|
|
123
129
|
start,
|
|
124
130
|
rendered,
|
|
125
131
|
});
|
|
126
|
-
upload();
|
|
132
|
+
upload(`addChunkCompleted(chunk=${chunkIndex})`);
|
|
127
133
|
},
|
|
128
134
|
setCombinedFrames: (frames) => {
|
|
129
135
|
renderProgress.combinedFrames = frames;
|
|
130
|
-
upload();
|
|
136
|
+
upload(`setCombinedFrames(${frames})`);
|
|
131
137
|
},
|
|
132
138
|
setTimeToCombine: (timeToCombine) => {
|
|
133
139
|
renderProgress.timeToCombine = timeToCombine;
|
|
134
|
-
upload();
|
|
140
|
+
upload(`setTimeToCombine(${timeToCombine})`);
|
|
135
141
|
},
|
|
136
142
|
setLambdaInvoked(chunk) {
|
|
137
143
|
if (lambdasInvoked.length === 0) {
|
|
@@ -139,15 +145,15 @@ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner,
|
|
|
139
145
|
}
|
|
140
146
|
lambdasInvoked[chunk] = true;
|
|
141
147
|
renderProgress.lambdasInvoked = lambdasInvoked.reduce((a, b) => a + Number(b), 0);
|
|
142
|
-
upload();
|
|
148
|
+
upload(`setLambdaInvoked(chunk=${chunk})`);
|
|
143
149
|
},
|
|
144
|
-
setPostRenderData(postRenderData) {
|
|
150
|
+
async setPostRenderData(postRenderData) {
|
|
145
151
|
renderProgress.postRenderData = postRenderData;
|
|
146
|
-
upload();
|
|
152
|
+
await upload('setPostRenderData');
|
|
147
153
|
},
|
|
148
154
|
setRenderMetadata: (renderMetadata) => {
|
|
149
155
|
renderProgress.renderMetadata = renderMetadata;
|
|
150
|
-
upload();
|
|
156
|
+
upload('setRenderMetadata');
|
|
151
157
|
},
|
|
152
158
|
addErrorWithoutUpload: (errorInfo) => {
|
|
153
159
|
renderProgress.errors.push(errorInfo);
|
|
@@ -159,19 +165,19 @@ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner,
|
|
|
159
165
|
},
|
|
160
166
|
setCompositionValidated(timestamp) {
|
|
161
167
|
renderProgress.compositionValidated = timestamp;
|
|
162
|
-
upload();
|
|
168
|
+
upload('setCompositionValidated');
|
|
163
169
|
},
|
|
164
170
|
setServeUrlOpened(timestamp) {
|
|
165
171
|
renderProgress.serveUrlOpened = timestamp;
|
|
166
|
-
upload();
|
|
172
|
+
upload('setServeUrlOpened');
|
|
167
173
|
},
|
|
168
174
|
addRetry(retry) {
|
|
169
175
|
renderProgress.retries.push(retry);
|
|
170
|
-
upload();
|
|
176
|
+
upload('addRetry');
|
|
171
177
|
},
|
|
172
178
|
addReceivedArtifact(asset) {
|
|
173
179
|
renderProgress.receivedArtifact.push(asset);
|
|
174
|
-
upload();
|
|
180
|
+
upload('addReceivedArtifact');
|
|
175
181
|
},
|
|
176
182
|
getReceivedArtifacts() {
|
|
177
183
|
return renderProgress.receivedArtifact;
|
|
@@ -11,6 +11,8 @@ type ValidateCompositionOptions<Provider extends CloudProvider> = {
|
|
|
11
11
|
port: number | null;
|
|
12
12
|
forceHeight: number | null;
|
|
13
13
|
forceWidth: number | null;
|
|
14
|
+
forceFps: number | null;
|
|
15
|
+
forceDurationInFrames: number | null;
|
|
14
16
|
logLevel: LogLevel;
|
|
15
17
|
server: RemotionServer | undefined;
|
|
16
18
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
@@ -20,5 +22,5 @@ type ValidateCompositionOptions<Provider extends CloudProvider> = {
|
|
|
20
22
|
onServeUrlVisited: () => void;
|
|
21
23
|
providerSpecifics: ProviderSpecifics<Provider>;
|
|
22
24
|
};
|
|
23
|
-
export declare const validateComposition: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, providerSpecifics, offthreadVideoThreads, mediaCacheSizeInBytes, }: ValidateCompositionOptions<Provider>) => Promise<VideoConfig>;
|
|
25
|
+
export declare const validateComposition: <Provider extends CloudProvider<string, Record<string, unknown>, Record<string, unknown>, string, object>>({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, forceFps, forceDurationInFrames, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, providerSpecifics, offthreadVideoThreads, mediaCacheSizeInBytes, }: ValidateCompositionOptions<Provider>) => Promise<VideoConfig>;
|
|
24
26
|
export {};
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validateComposition = void 0;
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
5
|
const validate_1 = require("./validate");
|
|
6
|
-
const validateComposition = async ({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, providerSpecifics, offthreadVideoThreads, mediaCacheSizeInBytes, }) => {
|
|
6
|
+
const validateComposition = async ({ serveUrl, composition, browserInstance, serializedInputPropsWithCustomSchema, envVariables, timeoutInMilliseconds, chromiumOptions, port, forceHeight, forceWidth, forceFps, forceDurationInFrames, logLevel, server, offthreadVideoCacheSizeInBytes, onBrowserDownload, onServeUrlVisited, providerSpecifics, offthreadVideoThreads, mediaCacheSizeInBytes, }) => {
|
|
7
7
|
const { metadata: comp } = await renderer_1.RenderInternals.internalSelectComposition({
|
|
8
8
|
id: composition,
|
|
9
9
|
puppeteerInstance: browserInstance,
|
|
@@ -30,6 +30,8 @@ const validateComposition = async ({ serveUrl, composition, browserInstance, ser
|
|
|
30
30
|
...comp,
|
|
31
31
|
height: forceHeight !== null && forceHeight !== void 0 ? forceHeight : comp.height,
|
|
32
32
|
width: forceWidth !== null && forceWidth !== void 0 ? forceWidth : comp.width,
|
|
33
|
+
fps: forceFps !== null && forceFps !== void 0 ? forceFps : comp.fps,
|
|
34
|
+
durationInFrames: forceDurationInFrames !== null && forceDurationInFrames !== void 0 ? forceDurationInFrames : comp.durationInFrames,
|
|
33
35
|
};
|
|
34
36
|
const reason = `of the "<Composition />" component with the id "${composition}"`;
|
|
35
37
|
(0, validate_1.validateDurationInFrames)(comp.durationInFrames, {
|
package/package.json
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/serverless"
|
|
4
4
|
},
|
|
5
5
|
"name": "@remotion/serverless",
|
|
6
|
-
"version": "4.0.
|
|
6
|
+
"version": "4.0.426",
|
|
7
7
|
"description": "A runtime for distributed rendering",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"sideEffects": false,
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint src",
|
|
12
|
-
"formatting": "prettier
|
|
12
|
+
"formatting": "prettier src --check",
|
|
13
13
|
"test": "bun test src",
|
|
14
14
|
"make": "tsgo -d"
|
|
15
15
|
},
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
"access": "public"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@remotion/renderer": "4.0.
|
|
27
|
-
"@remotion/bundler": "4.0.
|
|
28
|
-
"@remotion/licensing": "4.0.
|
|
29
|
-
"@remotion/serverless-client": "4.0.
|
|
26
|
+
"@remotion/renderer": "4.0.426",
|
|
27
|
+
"@remotion/bundler": "4.0.426",
|
|
28
|
+
"@remotion/licensing": "4.0.426",
|
|
29
|
+
"@remotion/serverless-client": "4.0.426"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
32
|
+
"@remotion/eslint-config-internal": "4.0.426",
|
|
33
33
|
"eslint": "9.19.0",
|
|
34
34
|
"@typescript/native-preview": "7.0.0-dev.20260217.1"
|
|
35
35
|
},
|