@remotion/cloudrun 4.0.24 → 4.0.25
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/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-lint.log +5 -0
- package/dist/functions/helpers/payloads.d.ts +4 -4
- package/package.json +6 -6
- package/dist/cli/commands/render/renderMedia.d.ts +0 -2
- package/dist/cli/commands/render/renderMedia.js +0 -156
- package/dist/cli/commands/render/renderStill.d.ts +0 -2
- package/dist/cli/commands/render/renderStill.js +0 -123
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
|
|
2
|
-
> @remotion/cloudrun@4.0.
|
|
2
|
+
> @remotion/cloudrun@4.0.24 build /Users/jonathanburger/remotion/packages/cloudrun
|
|
3
3
|
> tsc -d && cp src/shared/sa-permissions.json dist/shared/sa-permissions.json && pnpm run buildContainer && pnpm run tarInstaller
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @remotion/cloudrun@4.0.
|
|
6
|
+
> @remotion/cloudrun@4.0.24 buildContainer /Users/jonathanburger/remotion/packages/cloudrun
|
|
7
7
|
> ts-node src/admin/bundle-renderLogic.ts
|
|
8
8
|
|
|
9
9
|
distribution bundled.
|
|
10
10
|
|
|
11
|
-
> @remotion/cloudrun@4.0.
|
|
11
|
+
> @remotion/cloudrun@4.0.24 tarInstaller /Users/jonathanburger/remotion/packages/cloudrun
|
|
12
12
|
> ts-node src/admin/bundle-installer.ts
|
|
13
13
|
|
|
@@ -241,19 +241,19 @@ declare const renderStillOnCloudrunResponsePayload: z.ZodObject<{
|
|
|
241
241
|
renderId: z.ZodString;
|
|
242
242
|
privacy: z.ZodEnum<["public-read", "project-private"]>;
|
|
243
243
|
}, "strip", z.ZodTypeAny, {
|
|
244
|
-
bucketName: string;
|
|
245
244
|
type: "success";
|
|
246
245
|
privacy: "public-read" | "project-private";
|
|
247
246
|
cloudStorageUri: string;
|
|
248
247
|
size: number;
|
|
248
|
+
bucketName: string;
|
|
249
249
|
renderId: string;
|
|
250
250
|
publicUrl?: string | null | undefined;
|
|
251
251
|
}, {
|
|
252
|
-
bucketName: string;
|
|
253
252
|
type: "success";
|
|
254
253
|
privacy: "public-read" | "project-private";
|
|
255
254
|
cloudStorageUri: string;
|
|
256
255
|
size: number;
|
|
256
|
+
bucketName: string;
|
|
257
257
|
renderId: string;
|
|
258
258
|
publicUrl?: string | null | undefined;
|
|
259
259
|
}>;
|
|
@@ -266,19 +266,19 @@ declare const renderMediaOnCloudrunResponsePayload: z.ZodObject<{
|
|
|
266
266
|
renderId: z.ZodString;
|
|
267
267
|
privacy: z.ZodEnum<["public-read", "project-private"]>;
|
|
268
268
|
}, "strip", z.ZodTypeAny, {
|
|
269
|
-
bucketName: string;
|
|
270
269
|
type: "success";
|
|
271
270
|
privacy: "public-read" | "project-private";
|
|
272
271
|
cloudStorageUri: string;
|
|
273
272
|
size: number;
|
|
273
|
+
bucketName: string;
|
|
274
274
|
renderId: string;
|
|
275
275
|
publicUrl?: string | null | undefined;
|
|
276
276
|
}, {
|
|
277
|
-
bucketName: string;
|
|
278
277
|
type: "success";
|
|
279
278
|
privacy: "public-read" | "project-private";
|
|
280
279
|
cloudStorageUri: string;
|
|
281
280
|
size: number;
|
|
281
|
+
bucketName: string;
|
|
282
282
|
renderId: string;
|
|
283
283
|
publicUrl?: string | null | undefined;
|
|
284
284
|
}>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/cloudrun",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.25",
|
|
4
4
|
"description": "GCP Cloud Run alternative to lambda rendering",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"dependencies": {
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"@google-cloud/logging": "^10.5.0",
|
|
13
13
|
"google-auth-library": "^8.7.0",
|
|
14
14
|
"zod": "^3.21.4",
|
|
15
|
-
"@remotion/bundler": "4.0.
|
|
16
|
-
"
|
|
17
|
-
"@remotion/cli": "4.0.
|
|
18
|
-
"remotion": "4.0.
|
|
15
|
+
"@remotion/bundler": "4.0.25",
|
|
16
|
+
"remotion": "4.0.25",
|
|
17
|
+
"@remotion/cli": "4.0.25",
|
|
18
|
+
"@remotion/renderer": "4.0.25"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@jonny/eslint-config": "3.0.266",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"prettier-plugin-organize-imports": "^3.2.2",
|
|
27
27
|
"ts-node": "^10.8.0",
|
|
28
28
|
"vitest": "0.24.3",
|
|
29
|
-
"@remotion/compositor-linux-x64-gnu": "4.0.
|
|
29
|
+
"@remotion/compositor-linux-x64-gnu": "4.0.25"
|
|
30
30
|
},
|
|
31
31
|
"exports": {
|
|
32
32
|
"./package.json": "./package.json",
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.renderMediaSubcommand = exports.RENDER_MEDIA_SUBCOMMAND = void 0;
|
|
4
|
-
const cli_1 = require("@remotion/cli");
|
|
5
|
-
const render_media_on_cloudrun_1 = require("../../../api/render-media-on-cloudrun");
|
|
6
|
-
// import {validateMaxRetries} from '../../../shared/validate-retries';
|
|
7
|
-
const config_1 = require("@remotion/cli/config");
|
|
8
|
-
const renderer_1 = require("@remotion/renderer");
|
|
9
|
-
const download_file_1 = require("../../../api/download-file");
|
|
10
|
-
const validate_serveurl_1 = require("../../../shared/validate-serveurl");
|
|
11
|
-
const args_1 = require("../../args");
|
|
12
|
-
const log_1 = require("../../log");
|
|
13
|
-
const renderArgsCheck_1 = require("./helpers/renderArgsCheck");
|
|
14
|
-
exports.RENDER_MEDIA_SUBCOMMAND = 'media';
|
|
15
|
-
const renderMediaSubcommand = async (args, remotionRoot) => {
|
|
16
|
-
var _a;
|
|
17
|
-
const { serveUrl, cloudRunUrl, outName, forceBucketName, downloadName, privacy, region, } = await (0, renderArgsCheck_1.renderArgsCheck)(exports.RENDER_MEDIA_SUBCOMMAND, args);
|
|
18
|
-
const { codec, reason: codecReason } = cli_1.CliInternals.getFinalOutputCodec({
|
|
19
|
-
cliFlag: cli_1.CliInternals.parsedCli.codec,
|
|
20
|
-
downloadName,
|
|
21
|
-
outName: outName !== null && outName !== void 0 ? outName : null,
|
|
22
|
-
configFile: (_a = config_1.ConfigInternals.getOutputCodecOrUndefined()) !== null && _a !== void 0 ? _a : null,
|
|
23
|
-
uiCodec: null,
|
|
24
|
-
});
|
|
25
|
-
const imageFormat = args_1.parsedCloudrunCli['image-format'];
|
|
26
|
-
const audioCodec = args_1.parsedCloudrunCli['audio-codec'];
|
|
27
|
-
const { chromiumOptions, crf, envVariables, frameRange, inputProps, logLevel, puppeteerTimeout, pixelFormat, proResProfile, jpegQuality, scale, everyNthFrame, numberOfGifLoops, muted, audioBitrate, videoBitrate, height, width, browserExecutable, port, } = await cli_1.CliInternals.getCliOptions({
|
|
28
|
-
type: 'series',
|
|
29
|
-
isLambda: true,
|
|
30
|
-
remotionRoot,
|
|
31
|
-
});
|
|
32
|
-
let composition = args[1];
|
|
33
|
-
if (!composition) {
|
|
34
|
-
log_1.Log.info('No compositions passed. Fetching compositions...');
|
|
35
|
-
(0, validate_serveurl_1.validateServeUrl)(serveUrl);
|
|
36
|
-
const server = renderer_1.RenderInternals.prepareServer({
|
|
37
|
-
concurrency: 1,
|
|
38
|
-
indent: false,
|
|
39
|
-
port,
|
|
40
|
-
remotionRoot,
|
|
41
|
-
verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
|
|
42
|
-
webpackConfigOrServeUrl: serveUrl,
|
|
43
|
-
});
|
|
44
|
-
const { compositionId } = await cli_1.CliInternals.getCompositionWithDimensionOverride({
|
|
45
|
-
args,
|
|
46
|
-
compositionIdFromUi: null,
|
|
47
|
-
browserExecutable,
|
|
48
|
-
chromiumOptions,
|
|
49
|
-
envVariables,
|
|
50
|
-
height,
|
|
51
|
-
indent: false,
|
|
52
|
-
inputProps,
|
|
53
|
-
port,
|
|
54
|
-
puppeteerInstance: undefined,
|
|
55
|
-
serveUrlOrWebpackUrl: serveUrl,
|
|
56
|
-
timeoutInMilliseconds: puppeteerTimeout,
|
|
57
|
-
verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
|
|
58
|
-
width,
|
|
59
|
-
server: await server,
|
|
60
|
-
});
|
|
61
|
-
composition = compositionId;
|
|
62
|
-
}
|
|
63
|
-
// Todo: Check cloudRunUrl is valid, as the error message is obtuse
|
|
64
|
-
cli_1.CliInternals.Log.info(cli_1.CliInternals.chalk.gray(`
|
|
65
|
-
Cloud Run Service URL = ${cloudRunUrl}
|
|
66
|
-
Region = ${region}
|
|
67
|
-
Type = media
|
|
68
|
-
Composition = ${composition}
|
|
69
|
-
Codec = ${codec}
|
|
70
|
-
Output Bucket = ${forceBucketName}
|
|
71
|
-
Output File = ${outName !== null && outName !== void 0 ? outName : 'out.mp4'}
|
|
72
|
-
Output File Privacy = ${privacy}
|
|
73
|
-
${downloadName ? ` Downloaded File = ${downloadName}` : ''}
|
|
74
|
-
`.trim()));
|
|
75
|
-
log_1.Log.info();
|
|
76
|
-
const renderStart = Date.now();
|
|
77
|
-
const progressBar = cli_1.CliInternals.createOverwriteableCliOutput({
|
|
78
|
-
quiet: cli_1.CliInternals.quietFlagProvided(),
|
|
79
|
-
cancelSignal: null,
|
|
80
|
-
updatesDontOverwrite: false,
|
|
81
|
-
indent: false,
|
|
82
|
-
});
|
|
83
|
-
const renderProgress = {
|
|
84
|
-
doneIn: null,
|
|
85
|
-
progress: 0,
|
|
86
|
-
};
|
|
87
|
-
const updateProgress = () => {
|
|
88
|
-
progressBar.update([
|
|
89
|
-
`Rendering on Cloud Run: `,
|
|
90
|
-
cli_1.CliInternals.makeProgressBar(renderProgress.progress),
|
|
91
|
-
`${renderProgress.doneIn === null ? 'Rendering' : 'Rendered'}`,
|
|
92
|
-
renderProgress.doneIn === null
|
|
93
|
-
? `${Math.round(renderProgress.progress * 100)}%`
|
|
94
|
-
: cli_1.CliInternals.chalk.gray(`${renderProgress.doneIn}ms`),
|
|
95
|
-
].join(' '), false);
|
|
96
|
-
};
|
|
97
|
-
const updateRenderProgress = (progress) => {
|
|
98
|
-
renderProgress.progress = progress;
|
|
99
|
-
updateProgress();
|
|
100
|
-
};
|
|
101
|
-
const res = await (0, render_media_on_cloudrun_1.renderMediaOnCloudrun)({
|
|
102
|
-
cloudRunUrl,
|
|
103
|
-
serveUrl,
|
|
104
|
-
region,
|
|
105
|
-
inputProps,
|
|
106
|
-
codec: codec,
|
|
107
|
-
imageFormat,
|
|
108
|
-
crf: crf !== null && crf !== void 0 ? crf : undefined,
|
|
109
|
-
envVariables,
|
|
110
|
-
pixelFormat,
|
|
111
|
-
proResProfile,
|
|
112
|
-
jpegQuality,
|
|
113
|
-
composition,
|
|
114
|
-
privacy,
|
|
115
|
-
frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : undefined,
|
|
116
|
-
outName,
|
|
117
|
-
chromiumOptions,
|
|
118
|
-
scale,
|
|
119
|
-
numberOfGifLoops,
|
|
120
|
-
everyNthFrame,
|
|
121
|
-
muted,
|
|
122
|
-
audioBitrate,
|
|
123
|
-
videoBitrate,
|
|
124
|
-
forceHeight: height,
|
|
125
|
-
forceWidth: width,
|
|
126
|
-
audioCodec,
|
|
127
|
-
forceBucketName,
|
|
128
|
-
updateRenderProgress,
|
|
129
|
-
logLevel: config_1.ConfigInternals.Logging.getLogLevel(),
|
|
130
|
-
});
|
|
131
|
-
renderProgress.doneIn = Date.now() - renderStart;
|
|
132
|
-
updateProgress();
|
|
133
|
-
log_1.Log.info(`
|
|
134
|
-
|
|
135
|
-
`);
|
|
136
|
-
log_1.Log.info(cli_1.CliInternals.chalk.blueBright(`
|
|
137
|
-
${res.publicUrl ? `Public URL = ${decodeURIComponent(res.publicUrl)}` : ``}
|
|
138
|
-
Cloud Storage Uri = ${res.cloudStorageUri}
|
|
139
|
-
Size (KB) = ${Math.round(Number(res.size) / 1000)}
|
|
140
|
-
Bucket Name = ${res.bucketName}
|
|
141
|
-
Privacy = ${res.privacy}
|
|
142
|
-
Render ID = ${res.renderId}
|
|
143
|
-
Codec = ${codec} (${codecReason})
|
|
144
|
-
`.trim()));
|
|
145
|
-
if (downloadName) {
|
|
146
|
-
log_1.Log.info('');
|
|
147
|
-
log_1.Log.info('downloading file...');
|
|
148
|
-
const destination = await (0, download_file_1.downloadFile)({
|
|
149
|
-
bucketName: res.bucketName,
|
|
150
|
-
gsutilURI: res.cloudStorageUri,
|
|
151
|
-
downloadName,
|
|
152
|
-
});
|
|
153
|
-
log_1.Log.info(cli_1.CliInternals.chalk.blueBright(`Downloaded file to ${destination}!`));
|
|
154
|
-
}
|
|
155
|
-
};
|
|
156
|
-
exports.renderMediaSubcommand = renderMediaSubcommand;
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.renderStillSubcommand = exports.RENDER_STILL_SUBCOMMAND = void 0;
|
|
4
|
-
const cli_1 = require("@remotion/cli");
|
|
5
|
-
const config_1 = require("@remotion/cli/config");
|
|
6
|
-
const renderer_1 = require("@remotion/renderer");
|
|
7
|
-
const download_file_1 = require("../../../api/download-file");
|
|
8
|
-
const render_still_on_cloudrun_1 = require("../../../api/render-still-on-cloudrun");
|
|
9
|
-
const validate_serveurl_1 = require("../../../shared/validate-serveurl");
|
|
10
|
-
const log_1 = require("../../log");
|
|
11
|
-
const renderArgsCheck_1 = require("./helpers/renderArgsCheck");
|
|
12
|
-
exports.RENDER_STILL_SUBCOMMAND = 'still';
|
|
13
|
-
const renderStillSubcommand = async (args, remotionRoot) => {
|
|
14
|
-
var _a, _b;
|
|
15
|
-
const { serveUrl, cloudRunUrl, outName, forceBucketName, privacy, downloadName, region, } = await (0, renderArgsCheck_1.renderArgsCheck)(exports.RENDER_STILL_SUBCOMMAND, args);
|
|
16
|
-
const { chromiumOptions, envVariables, inputProps, logLevel, puppeteerTimeout, jpegQuality, stillFrame, scale, height, width, browserExecutable, port, } = await cli_1.CliInternals.getCliOptions({
|
|
17
|
-
type: 'still',
|
|
18
|
-
isLambda: true,
|
|
19
|
-
remotionRoot,
|
|
20
|
-
});
|
|
21
|
-
let composition = args[1];
|
|
22
|
-
if (!composition) {
|
|
23
|
-
log_1.Log.info('No compositions passed. Fetching compositions...');
|
|
24
|
-
(0, validate_serveurl_1.validateServeUrl)(serveUrl);
|
|
25
|
-
const server = renderer_1.RenderInternals.prepareServer({
|
|
26
|
-
concurrency: 1,
|
|
27
|
-
indent: false,
|
|
28
|
-
port,
|
|
29
|
-
remotionRoot,
|
|
30
|
-
verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
|
|
31
|
-
webpackConfigOrServeUrl: serveUrl,
|
|
32
|
-
});
|
|
33
|
-
const { compositionId } = await cli_1.CliInternals.getCompositionWithDimensionOverride({
|
|
34
|
-
args,
|
|
35
|
-
compositionIdFromUi: null,
|
|
36
|
-
indent: false,
|
|
37
|
-
serveUrlOrWebpackUrl: serveUrl,
|
|
38
|
-
verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
|
|
39
|
-
browserExecutable,
|
|
40
|
-
chromiumOptions,
|
|
41
|
-
envVariables,
|
|
42
|
-
inputProps,
|
|
43
|
-
port,
|
|
44
|
-
puppeteerInstance: undefined,
|
|
45
|
-
timeoutInMilliseconds: puppeteerTimeout,
|
|
46
|
-
height,
|
|
47
|
-
width,
|
|
48
|
-
server: await server,
|
|
49
|
-
});
|
|
50
|
-
composition = compositionId;
|
|
51
|
-
}
|
|
52
|
-
const { format: imageFormat, source: imageFormatReason } = cli_1.CliInternals.determineFinalStillImageFormat({
|
|
53
|
-
downloadName,
|
|
54
|
-
outName: outName !== null && outName !== void 0 ? outName : null,
|
|
55
|
-
cliFlag: (_a = cli_1.CliInternals.parsedCli['image-format']) !== null && _a !== void 0 ? _a : null,
|
|
56
|
-
isLambda: true,
|
|
57
|
-
fromUi: null,
|
|
58
|
-
configImageFormat: (_b = config_1.ConfigInternals.getUserPreferredStillImageFormat()) !== null && _b !== void 0 ? _b : null,
|
|
59
|
-
});
|
|
60
|
-
log_1.Log.verbose(`Image format: (${imageFormat}), ${imageFormatReason}`);
|
|
61
|
-
// Todo: Check cloudRunUrl is valid, as the error message is obtuse
|
|
62
|
-
cli_1.CliInternals.Log.info(cli_1.CliInternals.chalk.gray(`
|
|
63
|
-
Cloud Run Service URL = ${cloudRunUrl}
|
|
64
|
-
Region = ${region}
|
|
65
|
-
Type = still
|
|
66
|
-
Composition = ${composition}
|
|
67
|
-
Output Bucket = ${forceBucketName}
|
|
68
|
-
Output File = ${outName !== null && outName !== void 0 ? outName : 'out.png'}
|
|
69
|
-
Output File Privacy = ${privacy}
|
|
70
|
-
${downloadName ? ` Downloaded File = ${downloadName}` : ''}
|
|
71
|
-
`.trim()));
|
|
72
|
-
log_1.Log.info();
|
|
73
|
-
const renderStart = Date.now();
|
|
74
|
-
const progressBar = cli_1.CliInternals.createOverwriteableCliOutput({
|
|
75
|
-
quiet: cli_1.CliInternals.quietFlagProvided(),
|
|
76
|
-
cancelSignal: null,
|
|
77
|
-
updatesDontOverwrite: false,
|
|
78
|
-
indent: false,
|
|
79
|
-
});
|
|
80
|
-
let doneIn = null;
|
|
81
|
-
const updateProgress = (newline) => {
|
|
82
|
-
progressBar.update([
|
|
83
|
-
`Rendering on Cloud Run:`,
|
|
84
|
-
`${doneIn === null ? '...' : `Rendered in ${doneIn}ms`}`,
|
|
85
|
-
].join(' '), newline);
|
|
86
|
-
};
|
|
87
|
-
const res = await (0, render_still_on_cloudrun_1.renderStillOnCloudrun)({
|
|
88
|
-
cloudRunUrl,
|
|
89
|
-
serveUrl,
|
|
90
|
-
region,
|
|
91
|
-
inputProps,
|
|
92
|
-
imageFormat,
|
|
93
|
-
composition,
|
|
94
|
-
privacy,
|
|
95
|
-
envVariables,
|
|
96
|
-
frame: stillFrame,
|
|
97
|
-
jpegQuality,
|
|
98
|
-
chromiumOptions,
|
|
99
|
-
scale,
|
|
100
|
-
forceHeight: height,
|
|
101
|
-
forceWidth: width,
|
|
102
|
-
forceBucketName,
|
|
103
|
-
outName,
|
|
104
|
-
logLevel: config_1.ConfigInternals.Logging.getLogLevel(),
|
|
105
|
-
});
|
|
106
|
-
doneIn = Date.now() - renderStart;
|
|
107
|
-
updateProgress(true);
|
|
108
|
-
log_1.Log.info(cli_1.CliInternals.chalk.gray(`Cloud Storage Uri = ${res.cloudStorageUri}`));
|
|
109
|
-
log_1.Log.info(cli_1.CliInternals.chalk.gray(`Render ID = ${res.renderId}`));
|
|
110
|
-
log_1.Log.info(cli_1.CliInternals.chalk.gray(`${Math.round(Number(res.size) / 1000)} KB, Privacy: ${res.privacy}, Bucket: ${res.bucketName}`));
|
|
111
|
-
log_1.Log.info(cli_1.CliInternals.chalk.blue(`○ ${res.publicUrl}`));
|
|
112
|
-
if (downloadName) {
|
|
113
|
-
log_1.Log.info('');
|
|
114
|
-
log_1.Log.info('downloading file...');
|
|
115
|
-
const destination = await (0, download_file_1.downloadFile)({
|
|
116
|
-
bucketName: res.bucketName,
|
|
117
|
-
gsutilURI: res.cloudStorageUri,
|
|
118
|
-
downloadName,
|
|
119
|
-
});
|
|
120
|
-
log_1.Log.info(cli_1.CliInternals.chalk.blueBright(`Downloaded file to ${destination}!`));
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
exports.renderStillSubcommand = renderStillSubcommand;
|