@remotion/cloudrun 4.0.533 → 4.0.535

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.
@@ -14,7 +14,7 @@ const deployServiceRaw = async ({ performImageVersionValidation = true, memoryLi
14
14
  (0, validate_gcp_region_1.validateGcpRegion)(region);
15
15
  (0, validate_project_id_1.validateProjectID)(projectID);
16
16
  if (performImageVersionValidation) {
17
- (0, validate_image_remotion_version_1.validateImageRemotionVersion)();
17
+ await (0, validate_image_remotion_version_1.validateImageRemotionVersion)();
18
18
  }
19
19
  const parent = `projects/${projectID}/locations/${region}`;
20
20
  const cloudRunClient = (0, get_cloud_run_client_1.getCloudRunClient)();
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAuthClientForUrl = void 0;
4
4
  const google_auth_library_1 = require("google-auth-library");
5
5
  const is_in_cloud_task_1 = require("../../functions/helpers/is-in-cloud-task");
6
+ const check_credentials_1 = require("../../shared/check-credentials");
6
7
  const getAuthClientForUrl = async (url) => {
8
+ (0, check_credentials_1.checkCredentials)();
7
9
  let auth = new google_auth_library_1.GoogleAuth();
8
10
  if ((0, is_in_cloud_task_1.isInCloudTask)()) {
9
11
  auth = new google_auth_library_1.GoogleAuth({
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCloudLoggingClient = void 0;
4
4
  const logging_1 = require("@google-cloud/logging");
5
5
  const is_in_cloud_task_1 = require("../../functions/helpers/is-in-cloud-task");
6
+ const check_credentials_1 = require("../../shared/check-credentials");
6
7
  const { LoggingServiceV2Client } = logging_1.v2;
7
8
  const getCloudLoggingClient = () => {
9
+ (0, check_credentials_1.checkCredentials)();
8
10
  if ((0, is_in_cloud_task_1.isInCloudTask)()) {
9
11
  return new LoggingServiceV2Client({
10
12
  projectId: (0, is_in_cloud_task_1.getProjectId)(),
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCloudRunClient = void 0;
4
4
  const run_1 = require("@google-cloud/run");
5
5
  const is_in_cloud_task_1 = require("../../functions/helpers/is-in-cloud-task");
6
+ const check_credentials_1 = require("../../shared/check-credentials");
6
7
  const { ServicesClient } = run_1.v2;
7
8
  const getCloudRunClient = () => {
9
+ (0, check_credentials_1.checkCredentials)();
8
10
  if ((0, is_in_cloud_task_1.isInCloudTask)()) {
9
11
  return new ServicesClient({
10
12
  projectId: (0, is_in_cloud_task_1.getProjectId)(),
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCloudStorageClient = void 0;
4
4
  const storage_1 = require("@google-cloud/storage");
5
5
  const is_in_cloud_task_1 = require("../../functions/helpers/is-in-cloud-task");
6
+ const check_credentials_1 = require("../../shared/check-credentials");
6
7
  const getCloudStorageClient = () => {
8
+ (0, check_credentials_1.checkCredentials)();
7
9
  if ((0, is_in_cloud_task_1.isInCloudTask)()) {
8
10
  return new storage_1.Storage({
9
11
  projectId: (0, is_in_cloud_task_1.getProjectId)(),
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getResourceManagerClient = void 0;
4
4
  const resource_manager_1 = require("@google-cloud/resource-manager");
5
5
  const is_in_cloud_task_1 = require("../../functions/helpers/is-in-cloud-task");
6
+ const check_credentials_1 = require("../../shared/check-credentials");
6
7
  const { ProjectsClient } = resource_manager_1.v3;
7
8
  const getResourceManagerClient = () => {
9
+ (0, check_credentials_1.checkCredentials)();
8
10
  if ((0, is_in_cloud_task_1.isInCloudTask)()) {
9
11
  return new ProjectsClient({
10
12
  projectId: (0, is_in_cloud_task_1.getProjectId)(),
@@ -75,7 +75,7 @@ export type RenderMediaOnCloudrunInput = {
75
75
  renderIdOverride?: z.infer<typeof CloudRunPayload>['renderIdOverride'];
76
76
  renderStatusWebhook?: z.infer<typeof CloudRunPayload>['renderStatusWebhook'];
77
77
  } & Partial<ToOptions<typeof BrowserSafeApis.optionsMap.renderMediaOnCloudRun>>;
78
- export declare const internalRenderMediaOnCloudrun: ({ cloudRunUrl, serviceName, region, serveUrl, composition, inputProps, codec, forceBucketName, privacy, outName, updateRenderProgress, renderIdOverride, renderStatusWebhook, jpegQuality, audioCodec, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, proResProfile, x264Preset, gopSize, crf, pixelFormat, imageFormat, scale, everyNthFrame, numberOfGifLoops, frameRange, envVariables, chromiumOptions, muted, forceWidth, forceHeight, forceFps, forceDurationInFrames, logLevel, delayRenderTimeoutInMilliseconds, concurrency, enforceAudioTrack, preferLossless, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, downloadBehavior, metadata, mediaCacheSizeInBytes, sampleRate, }: InternalRenderMediaOnCloudrun) => Promise<{
78
+ export declare const internalRenderMediaOnCloudrun: ({ cloudRunUrl, serviceName, region, serveUrl, composition, inputProps, codec, forceBucketName, privacy, outName, updateRenderProgress, renderIdOverride, renderStatusWebhook, jpegQuality, audioCodec, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, proResProfile, x264Preset, gopSize, disableSharedMemoryCapture, crf, pixelFormat, imageFormat, scale, everyNthFrame, numberOfGifLoops, frameRange, envVariables, chromiumOptions, muted, forceWidth, forceHeight, forceFps, forceDurationInFrames, logLevel, delayRenderTimeoutInMilliseconds, concurrency, enforceAudioTrack, preferLossless, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, downloadBehavior, metadata, mediaCacheSizeInBytes, sampleRate, }: InternalRenderMediaOnCloudrun) => Promise<{
79
79
  type: "success";
80
80
  publicUrl?: string | null | undefined;
81
81
  cloudStorageUri: string;
@@ -91,7 +91,7 @@ export declare const internalRenderMediaOnCloudrun: ({ cloudRunUrl, serviceName,
91
91
  requestCrashTime: string;
92
92
  requestElapsedTimeInSeconds: number;
93
93
  }>;
94
- export declare const renderMediaOnCloudrun: ({ cloudRunUrl, serviceName, region, serveUrl, composition, inputProps, codec, forceBucketName, privacy, outName, updateRenderProgress, jpegQuality, audioCodec, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, proResProfile, x264Preset, gopSize, crf, pixelFormat, imageFormat, scale, everyNthFrame, numberOfGifLoops, frameRange, envVariables, chromiumOptions, muted, forceWidth, forceHeight, forceFps, forceDurationInFrames, logLevel, delayRenderTimeoutInMilliseconds, concurrency, enforceAudioTrack, preferLossless, offthreadVideoCacheSizeInBytes, colorSpace, downloadBehavior, metadata, renderIdOverride, renderStatusWebhook, offthreadVideoThreads, mediaCacheSizeInBytes, sampleRate, }: RenderMediaOnCloudrunInput) => Promise<{
94
+ export declare const renderMediaOnCloudrun: ({ cloudRunUrl, serviceName, region, serveUrl, composition, inputProps, codec, forceBucketName, privacy, outName, updateRenderProgress, jpegQuality, audioCodec, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, proResProfile, x264Preset, gopSize, disableSharedMemoryCapture, crf, pixelFormat, imageFormat, scale, everyNthFrame, numberOfGifLoops, frameRange, envVariables, chromiumOptions, muted, forceWidth, forceHeight, forceFps, forceDurationInFrames, logLevel, delayRenderTimeoutInMilliseconds, concurrency, enforceAudioTrack, preferLossless, offthreadVideoCacheSizeInBytes, colorSpace, downloadBehavior, metadata, renderIdOverride, renderStatusWebhook, offthreadVideoThreads, mediaCacheSizeInBytes, sampleRate, }: RenderMediaOnCloudrunInput) => Promise<{
95
95
  type: "success";
96
96
  publicUrl?: string | null | undefined;
97
97
  cloudStorageUri: string;
@@ -11,7 +11,7 @@ const validate_serveurl_1 = require("../shared/validate-serveurl");
11
11
  const get_or_create_bucket_1 = require("./get-or-create-bucket");
12
12
  const get_auth_client_for_url_1 = require("./helpers/get-auth-client-for-url");
13
13
  const get_cloudrun_endpoint_1 = require("./helpers/get-cloudrun-endpoint");
14
- const internalRenderMediaOnCloudrunRaw = async ({ cloudRunUrl, serviceName, region, serveUrl, composition, inputProps, codec, forceBucketName, privacy, outName, updateRenderProgress, renderIdOverride, renderStatusWebhook, jpegQuality, audioCodec, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, proResProfile, x264Preset, gopSize, crf, pixelFormat, imageFormat, scale, everyNthFrame, numberOfGifLoops, frameRange, envVariables, chromiumOptions, muted, forceWidth, forceHeight, forceFps, forceDurationInFrames, logLevel, delayRenderTimeoutInMilliseconds, concurrency, enforceAudioTrack, preferLossless, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, downloadBehavior, metadata, mediaCacheSizeInBytes, sampleRate, }) => {
14
+ const internalRenderMediaOnCloudrunRaw = async ({ cloudRunUrl, serviceName, region, serveUrl, composition, inputProps, codec, forceBucketName, privacy, outName, updateRenderProgress, renderIdOverride, renderStatusWebhook, jpegQuality, audioCodec, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, proResProfile, x264Preset, gopSize, disableSharedMemoryCapture, crf, pixelFormat, imageFormat, scale, everyNthFrame, numberOfGifLoops, frameRange, envVariables, chromiumOptions, muted, forceWidth, forceHeight, forceFps, forceDurationInFrames, logLevel, delayRenderTimeoutInMilliseconds, concurrency, enforceAudioTrack, preferLossless, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, downloadBehavior, metadata, mediaCacheSizeInBytes, sampleRate, }) => {
15
15
  const actualCodec = (0, validate_gcp_codec_1.validateCloudrunCodec)(codec);
16
16
  (0, validate_serveurl_1.validateServeUrl)(serveUrl);
17
17
  if (privacy)
@@ -44,6 +44,7 @@ const internalRenderMediaOnCloudrunRaw = async ({ cloudRunUrl, serviceName, regi
44
44
  proResProfile: proResProfile !== null && proResProfile !== void 0 ? proResProfile : null,
45
45
  x264Preset: x264Preset !== null && x264Preset !== void 0 ? x264Preset : null,
46
46
  gopSize: gopSize !== null && gopSize !== void 0 ? gopSize : null,
47
+ disableSharedMemoryCapture,
47
48
  everyNthFrame: everyNthFrame !== null && everyNthFrame !== void 0 ? everyNthFrame : 1,
48
49
  numberOfGifLoops: numberOfGifLoops !== null && numberOfGifLoops !== void 0 ? numberOfGifLoops : null,
49
50
  frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
@@ -141,7 +142,7 @@ exports.internalRenderMediaOnCloudrun = (0, error_handling_1.wrapWithErrorHandli
141
142
  * @description Initiates a media rendering process on the Remotion Cloud Run service, facilitating configurations like service region, project composition, and output settings.
142
143
  * @see [Documentation](https://remotion.dev/docs/cloudrun/rendermediaoncloudrun)
143
144
  */
144
- const renderMediaOnCloudrun = ({ cloudRunUrl, serviceName, region, serveUrl, composition, inputProps, codec, forceBucketName, privacy, outName, updateRenderProgress, jpegQuality, audioCodec, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, proResProfile, x264Preset, gopSize, crf, pixelFormat, imageFormat, scale, everyNthFrame, numberOfGifLoops, frameRange, envVariables, chromiumOptions, muted, forceWidth, forceHeight, forceFps, forceDurationInFrames, logLevel, delayRenderTimeoutInMilliseconds, concurrency, enforceAudioTrack, preferLossless, offthreadVideoCacheSizeInBytes, colorSpace, downloadBehavior, metadata, renderIdOverride, renderStatusWebhook, offthreadVideoThreads, mediaCacheSizeInBytes, sampleRate, }) => {
145
+ const renderMediaOnCloudrun = ({ cloudRunUrl, serviceName, region, serveUrl, composition, inputProps, codec, forceBucketName, privacy, outName, updateRenderProgress, jpegQuality, audioCodec, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, proResProfile, x264Preset, gopSize, disableSharedMemoryCapture, crf, pixelFormat, imageFormat, scale, everyNthFrame, numberOfGifLoops, frameRange, envVariables, chromiumOptions, muted, forceWidth, forceHeight, forceFps, forceDurationInFrames, logLevel, delayRenderTimeoutInMilliseconds, concurrency, enforceAudioTrack, preferLossless, offthreadVideoCacheSizeInBytes, colorSpace, downloadBehavior, metadata, renderIdOverride, renderStatusWebhook, offthreadVideoThreads, mediaCacheSizeInBytes, sampleRate, }) => {
145
146
  if (Array.isArray(frameRange) && Array.isArray(frameRange[0])) {
146
147
  throw new Error('Multiple frame ranges are not supported on Cloud Run. Use renderMedia() locally to render multiple ranges.');
147
148
  }
@@ -166,6 +167,7 @@ const renderMediaOnCloudrun = ({ cloudRunUrl, serviceName, region, serveUrl, com
166
167
  proResProfile: proResProfile !== null && proResProfile !== void 0 ? proResProfile : undefined,
167
168
  x264Preset: x264Preset !== null && x264Preset !== void 0 ? x264Preset : null,
168
169
  gopSize: gopSize !== null && gopSize !== void 0 ? gopSize : null,
170
+ disableSharedMemoryCapture: disableSharedMemoryCapture !== null && disableSharedMemoryCapture !== void 0 ? disableSharedMemoryCapture : false,
169
171
  crf: crf !== null && crf !== void 0 ? crf : undefined,
170
172
  pixelFormat: pixelFormat !== null && pixelFormat !== void 0 ? pixelFormat : undefined,
171
173
  imageFormat: imageFormat !== null && imageFormat !== void 0 ? imageFormat : undefined,
@@ -1,3 +1,4 @@
1
+ import { CliInternals } from '@remotion/cli';
1
2
  import type { Privacy } from '../defaults';
2
3
  import type { GcpRegion } from '../pricing/gcp-regions';
3
4
  type servicesCommandLineOptions = {
@@ -18,6 +19,6 @@ type servicesCommandLineOptions = {
18
19
  webhook: string;
19
20
  ['render-id-override']: string;
20
21
  };
21
- export declare const parsedCloudrunCli: servicesCommandLineOptions & import("minimist").ParsedArgs;
22
+ export declare const parsedCloudrunCli: servicesCommandLineOptions & ReturnType<typeof CliInternals.minimist>;
22
23
  export declare const forceFlagProvided: boolean;
23
24
  export {};
@@ -16,7 +16,7 @@ const command_names_1 = require("../command-names");
16
16
  const renderArgsCheck_1 = require("./helpers/renderArgsCheck");
17
17
  const command_names_2 = require("../command-names");
18
18
  Object.defineProperty(exports, "RENDER_COMMAND", { enumerable: true, get: function () { return command_names_2.RENDER_COMMAND; } });
19
- const { audioBitrateOption, x264Option, offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, scaleOption, crfOption, gopSizeOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, colorSpaceOption, numberOfGifLoopsOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, encodingMaxRateOption, encodingBufferSizeOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, metadataOption, mediaCacheSizeInBytesOption, darkModeOption, pixelFormatOption, browserExecutableOption, everyNthFrameOption, proResProfileOption, userAgentOption, disableWebSecurityOption, ignoreCertificateErrorsOption, overrideHeightOption, overrideWidthOption, overrideFpsOption, overrideDurationOption, sampleRateOption, concurrencyOption, } = client_1.BrowserSafeApis.options;
19
+ const { audioBitrateOption, x264Option, offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, scaleOption, crfOption, gopSizeOption, disableSharedMemoryCaptureOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, colorSpaceOption, numberOfGifLoopsOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, encodingMaxRateOption, encodingBufferSizeOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, metadataOption, mediaCacheSizeInBytesOption, darkModeOption, pixelFormatOption, browserExecutableOption, everyNthFrameOption, proResProfileOption, userAgentOption, disableWebSecurityOption, ignoreCertificateErrorsOption, overrideHeightOption, overrideWidthOption, overrideFpsOption, overrideDurationOption, sampleRateOption, concurrencyOption, } = client_1.BrowserSafeApis.options;
20
20
  const renderCommand = async (args, remotionRoot, logLevel) => {
21
21
  var _a, _b, _c;
22
22
  const { serveUrl, cloudRunUrl, outName, forceBucketName, downloadName, privacy, region, } = await (0, renderArgsCheck_1.renderArgsCheck)(command_names_1.RENDER_COMMAND, args, logLevel);
@@ -230,6 +230,9 @@ ${downloadName ? ` Downloaded File = ${downloadName}` : ''}
230
230
  const crf = crfOption.getValue({
231
231
  commandLine: cli_1.CliInternals.parsedCli,
232
232
  }).value;
233
+ const disableSharedMemoryCapture = disableSharedMemoryCaptureOption.getValue({
234
+ commandLine: cli_1.CliInternals.parsedCli,
235
+ }).value;
233
236
  const gopSize = gopSizeOption.getValue({
234
237
  commandLine: cli_1.CliInternals.parsedCli,
235
238
  }).value;
@@ -284,6 +287,7 @@ ${downloadName ? ` Downloaded File = ${downloadName}` : ''}
284
287
  proResProfile,
285
288
  x264Preset,
286
289
  gopSize,
290
+ disableSharedMemoryCapture,
287
291
  crf,
288
292
  pixelFormat,
289
293
  imageFormat: imageFormat !== null && imageFormat !== void 0 ? imageFormat : undefined,
@@ -1,2 +1,133 @@
1
+ export declare const cloudrunCommandHelp: readonly [{
2
+ readonly path: readonly [];
3
+ readonly args: " <command>";
4
+ readonly description: "Control Remotion Cloud Run.";
5
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli";
6
+ readonly options: readonly [];
7
+ }, {
8
+ readonly path: readonly ["render"];
9
+ readonly args: " <serve-url|site-name> [<composition-id>] [<output-location>]";
10
+ readonly description: "Render Remotion media on GCP Cloud Run.";
11
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/render";
12
+ readonly options: {
13
+ flag: string;
14
+ description: string;
15
+ optionIds: readonly string[];
16
+ }[];
17
+ }, {
18
+ readonly path: readonly ["still"];
19
+ readonly args: " <serve-url|site-name> [<still-id>] [<output-location>]";
20
+ readonly description: "Render a Remotion still on GCP Cloud Run.";
21
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/still";
22
+ readonly options: {
23
+ flag: string;
24
+ description: string;
25
+ optionIds: readonly string[];
26
+ }[];
27
+ }, {
28
+ readonly path: readonly ["services"];
29
+ readonly args: " <command>";
30
+ readonly description: "Deploy and manage Cloud Run services on GCP.";
31
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/services";
32
+ readonly options: readonly [];
33
+ }, {
34
+ readonly path: readonly ["services", "deploy"];
35
+ readonly args: "";
36
+ readonly description: "Deploy a new Cloud Run service.";
37
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/services/deploy";
38
+ readonly options: {
39
+ flag: string;
40
+ description: string;
41
+ optionIds: readonly string[];
42
+ }[];
43
+ }, {
44
+ readonly path: readonly ["services", "ls"];
45
+ readonly args: "";
46
+ readonly description: "List deployed Cloud Run services.";
47
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/services/ls";
48
+ readonly options: {
49
+ flag: string;
50
+ description: string;
51
+ optionIds: readonly string[];
52
+ }[];
53
+ }, {
54
+ readonly path: readonly ["services", "rm"];
55
+ readonly args: " <service-name...>";
56
+ readonly description: "Delete one or more Cloud Run services.";
57
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/services/rm";
58
+ readonly options: {
59
+ flag: string;
60
+ description: string;
61
+ optionIds: readonly string[];
62
+ }[];
63
+ }, {
64
+ readonly path: readonly ["services", "rmall"];
65
+ readonly args: "";
66
+ readonly description: "Delete all Cloud Run services in the selected region.";
67
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/services/rmall";
68
+ readonly options: {
69
+ flag: string;
70
+ description: string;
71
+ optionIds: readonly string[];
72
+ }[];
73
+ }, {
74
+ readonly path: readonly ["sites"];
75
+ readonly args: " <command>";
76
+ readonly description: "Deploy and manage Remotion projects.";
77
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/sites";
78
+ readonly options: readonly [];
79
+ }, {
80
+ readonly path: readonly ["sites", "create"];
81
+ readonly args: " <entry-point>?";
82
+ readonly description: "Bundle and upload a Remotion project.";
83
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/sites/create";
84
+ readonly options: {
85
+ flag: string;
86
+ description: string;
87
+ optionIds: readonly string[];
88
+ }[];
89
+ }, {
90
+ readonly path: readonly ["sites", "ls"];
91
+ readonly args: "";
92
+ readonly description: "List deployed Remotion projects.";
93
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/sites/ls";
94
+ readonly options: {
95
+ flag: string;
96
+ description: string;
97
+ optionIds: readonly string[];
98
+ }[];
99
+ }, {
100
+ readonly path: readonly ["sites", "rm"];
101
+ readonly args: " <site-name...>";
102
+ readonly description: "Delete one or more deployed Remotion projects.";
103
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/sites/rm";
104
+ readonly options: {
105
+ flag: string;
106
+ description: string;
107
+ optionIds: readonly string[];
108
+ }[];
109
+ }, {
110
+ readonly path: readonly ["sites", "rmall"];
111
+ readonly args: "";
112
+ readonly description: "Delete all deployed Remotion projects.";
113
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/sites/rmall";
114
+ readonly options: {
115
+ flag: string;
116
+ description: string;
117
+ optionIds: readonly string[];
118
+ }[];
119
+ }, {
120
+ readonly path: readonly ["permissions"];
121
+ readonly args: "";
122
+ readonly description: "View and validate required GCP permissions.";
123
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/permissions";
124
+ readonly options: readonly [];
125
+ }, {
126
+ readonly path: readonly ["regions"];
127
+ readonly args: "";
128
+ readonly description: "Show the supported GCP regions.";
129
+ readonly documentation: "https://www.remotion.dev/docs/cloudrun/cli/regions";
130
+ readonly options: readonly [];
131
+ }];
1
132
  export declare const getCloudrunHelp: (selectedPath: readonly string[]) => string[];
2
133
  export declare const printHelp: (selectedPath: readonly string[], logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
package/dist/cli/help.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.printHelp = exports.getCloudrunHelp = void 0;
3
+ exports.printHelp = exports.getCloudrunHelp = exports.cloudrunCommandHelp = void 0;
4
4
  const cli_1 = require("@remotion/cli");
5
5
  const client_1 = require("@remotion/renderer/client");
6
6
  const command_names_1 = require("./commands/command-names");
@@ -84,24 +84,32 @@ const cloudrunOnlyOptions = {
84
84
  description: 'Include sites from every region.',
85
85
  },
86
86
  };
87
- const options = (flags, descriptionOverrides = {}) => {
87
+ const options = (flags, descriptionOverrides = {}, imageFormat = null) => {
88
88
  return flags.map((flag) => {
89
89
  var _a;
90
90
  const cloudrunOnlyOption = cloudrunOnlyOptions[flag];
91
91
  if (cloudrunOnlyOption) {
92
92
  return {
93
93
  ...cloudrunOnlyOption,
94
+ optionIds: [],
94
95
  description: (_a = descriptionOverrides[flag]) !== null && _a !== void 0 ? _a : cloudrunOnlyOption.description,
95
96
  };
96
97
  }
97
- const rendererOption = rendererOptions.find((candidate) => candidate.cliFlag === flag);
98
+ const rendererOption = flag === 'image-format'
99
+ ? imageFormat === 'video'
100
+ ? client_1.BrowserSafeApis.options.videoImageFormatOption
101
+ : client_1.BrowserSafeApis.options.stillImageFormatOption
102
+ : rendererOptions.find((candidate) => candidate.cliFlag === flag);
98
103
  if (!rendererOption) {
99
104
  throw new Error(`No Cloud Run CLI help metadata exists for --${flag}`);
100
105
  }
101
- return cli_1.CliInternals.makeCommandHelpOption({
102
- option: rendererOption,
103
- description: descriptionOverrides[flag],
104
- });
106
+ return {
107
+ ...cli_1.CliInternals.makeCommandHelpOption({
108
+ option: rendererOption,
109
+ description: descriptionOverrides[flag],
110
+ }),
111
+ optionIds: [rendererOption.id],
112
+ };
105
113
  });
106
114
  };
107
115
  const renderOptions = options([
@@ -132,6 +140,7 @@ const renderOptions = options([
132
140
  'prores-profile',
133
141
  'x264-preset',
134
142
  'gop',
143
+ 'disable-shared-memory-capture',
135
144
  'crf',
136
145
  'pixel-format',
137
146
  'every-nth-frame',
@@ -161,8 +170,8 @@ const renderOptions = options([
161
170
  ], {
162
171
  'image-format': 'Video Image Format',
163
172
  port: 'Set the local server port when no composition ID is passed.',
164
- });
165
- const commandHelp = [
173
+ }, 'video');
174
+ exports.cloudrunCommandHelp = [
166
175
  {
167
176
  path: [],
168
177
  args: ' <command>',
@@ -216,7 +225,7 @@ const commandHelp = [
216
225
  'offthreadvideo-cache-size-in-bytes',
217
226
  ], {
218
227
  port: 'Set the local server port when no composition ID is passed.',
219
- }),
228
+ }, 'still'),
220
229
  },
221
230
  {
222
231
  path: [command_names_1.SERVICES_COMMAND],
@@ -328,7 +337,7 @@ const commandHelp = [
328
337
  const getCloudrunHelp = (selectedPath) => {
329
338
  return cli_1.CliInternals.getCommandHelp({
330
339
  binaryName: command_names_1.CLOUDRUN_BINARY_NAME,
331
- commands: commandHelp,
340
+ commands: exports.cloudrunCommandHelp,
332
341
  selectedPath,
333
342
  rootDocumentation: 'https://www.remotion.dev/docs/cloudrun/cli',
334
343
  });
package/dist/cli/index.js CHANGED
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeCommand = void 0;
4
4
  const cli_1 = require("@remotion/cli");
5
5
  const renderer_1 = require("@remotion/renderer");
6
+ const check_credentials_1 = require("../shared/check-credentials");
7
+ const is_cli_1 = require("../shared/is-cli");
6
8
  const args_1 = require("./args");
7
9
  const permissions_1 = require("./commands/permissions");
8
10
  const regions_1 = require("./commands/regions");
@@ -18,6 +20,9 @@ const matchCommand = (args, remotionRoot, logLevel) => {
18
20
  (0, help_1.printHelp)(args[0] === 'help' ? args.slice(1) : args, logLevel);
19
21
  (0, quit_1.quit)(0);
20
22
  }
23
+ if (args[0] !== regions_1.REGIONS_COMMAND) {
24
+ (0, check_credentials_1.checkCredentials)();
25
+ }
21
26
  if (args[0] === render_1.RENDER_COMMAND) {
22
27
  return (0, render_1.renderCommand)(args.slice(1), remotionRoot, logLevel);
23
28
  }
@@ -47,6 +52,7 @@ const matchCommand = (args, remotionRoot, logLevel) => {
47
52
  const executeCommand = async (args, remotionRoot, logLevel) => {
48
53
  var _a;
49
54
  var _b;
55
+ (0, is_cli_1.setIsCli)(true);
50
56
  try {
51
57
  await matchCommand(args, remotionRoot, logLevel);
52
58
  }
@@ -21,6 +21,7 @@ export declare const getCompositionFromBody: (body: {
21
21
  proResProfile: "4444" | "4444-xq" | "hq" | "light" | "proxy" | "standard" | null;
22
22
  x264Preset: "fast" | "faster" | "medium" | "placebo" | "slow" | "slower" | "superfast" | "ultrafast" | "veryfast" | "veryslow" | null;
23
23
  gopSize: number | null;
24
+ disableSharedMemoryCapture: boolean;
24
25
  everyNthFrame: number;
25
26
  numberOfGifLoops: number | null;
26
27
  frameRange: number | [number, number | null] | null;
@@ -78,6 +78,7 @@ export declare const CloudRunPayload: z.ZodDiscriminatedUnion<[z.ZodObject<{
78
78
  veryslow: "veryslow";
79
79
  }>>;
80
80
  gopSize: z.ZodNullable<z.ZodNumber>;
81
+ disableSharedMemoryCapture: z.ZodBoolean;
81
82
  everyNthFrame: z.ZodNumber;
82
83
  numberOfGifLoops: z.ZodNullable<z.ZodNumber>;
83
84
  frameRange: z.ZodNullable<z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNullable<z.ZodNumber>], null>, z.ZodNumber]>>;
@@ -52,6 +52,7 @@ exports.CloudRunPayload = zod_1.z.discriminatedUnion('type', [
52
52
  proResProfile,
53
53
  x264Preset,
54
54
  gopSize: zod_1.z.number().nullable(),
55
+ disableSharedMemoryCapture: zod_1.z.boolean(),
55
56
  everyNthFrame: zod_1.z.number(),
56
57
  numberOfGifLoops: zod_1.z.number().nullable(),
57
58
  frameRange: zod_1.z
@@ -22,6 +22,7 @@ export declare const renderMediaSingleThread: (body: {
22
22
  proResProfile: "4444" | "4444-xq" | "hq" | "light" | "proxy" | "standard" | null;
23
23
  x264Preset: "fast" | "faster" | "medium" | "placebo" | "slow" | "slower" | "superfast" | "ultrafast" | "veryfast" | "veryslow" | null;
24
24
  gopSize: number | null;
25
+ disableSharedMemoryCapture: boolean;
25
26
  everyNthFrame: number;
26
27
  numberOfGifLoops: number | null;
27
28
  frameRange: number | [number, number | null] | null;
@@ -126,6 +126,7 @@ const renderMediaSingleThread = async (body, res) => {
126
126
  cancelSignal: undefined,
127
127
  concurrency: (_z = body.concurrency) !== null && _z !== void 0 ? _z : null,
128
128
  disallowParallelEncoding: false,
129
+ disableSharedMemoryCapture: body.disableSharedMemoryCapture,
129
130
  enforceAudioTrack: body.enforceAudioTrack,
130
131
  ffmpegOverride: undefined,
131
132
  indent: false,
@@ -22,6 +22,7 @@ export declare const renderStillSingleThread: (body: {
22
22
  proResProfile: "4444" | "4444-xq" | "hq" | "light" | "proxy" | "standard" | null;
23
23
  x264Preset: "fast" | "faster" | "medium" | "placebo" | "slow" | "slower" | "superfast" | "ultrafast" | "veryfast" | "veryslow" | null;
24
24
  gopSize: number | null;
25
+ disableSharedMemoryCapture: boolean;
25
26
  everyNthFrame: number;
26
27
  numberOfGifLoops: number | null;
27
28
  frameRange: number | [number, number | null] | null;
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ import type { GcpRegion } from './pricing/gcp-regions';
16
16
  /**
17
17
  * @deprecated Import this from `@remotion/cloudrun/client` instead
18
18
  */
19
- declare const renderMediaOnCloudrun: ({ cloudRunUrl, serviceName, region, serveUrl, composition, inputProps, codec, forceBucketName, privacy, outName, updateRenderProgress, jpegQuality, audioCodec, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, proResProfile, x264Preset, gopSize, crf, pixelFormat, imageFormat, scale, everyNthFrame, numberOfGifLoops, frameRange, envVariables, chromiumOptions, muted, forceWidth, forceHeight, forceFps, forceDurationInFrames, logLevel, delayRenderTimeoutInMilliseconds, concurrency, enforceAudioTrack, preferLossless, offthreadVideoCacheSizeInBytes, colorSpace, downloadBehavior, metadata, renderIdOverride, renderStatusWebhook, offthreadVideoThreads, mediaCacheSizeInBytes, sampleRate, }: RenderMediaOnCloudrunInput) => Promise<{
19
+ declare const renderMediaOnCloudrun: ({ cloudRunUrl, serviceName, region, serveUrl, composition, inputProps, codec, forceBucketName, privacy, outName, updateRenderProgress, jpegQuality, audioCodec, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, proResProfile, x264Preset, gopSize, disableSharedMemoryCapture, crf, pixelFormat, imageFormat, scale, everyNthFrame, numberOfGifLoops, frameRange, envVariables, chromiumOptions, muted, forceWidth, forceHeight, forceFps, forceDurationInFrames, logLevel, delayRenderTimeoutInMilliseconds, concurrency, enforceAudioTrack, preferLossless, offthreadVideoCacheSizeInBytes, colorSpace, downloadBehavior, metadata, renderIdOverride, renderStatusWebhook, offthreadVideoThreads, mediaCacheSizeInBytes, sampleRate, }: RenderMediaOnCloudrunInput) => Promise<{
20
20
  type: "crash";
21
21
  cloudRunEndpoint: string;
22
22
  message: "Service crashed without sending a response. Check the logs in GCP console.";
@@ -36,13 +36,6 @@ declare const renderMediaOnCloudrun: ({ cloudRunUrl, serviceName, region, serveU
36
36
  * @deprecated Import this from `@remotion/cloudrun/client` instead
37
37
  */
38
38
  declare const renderStillOnCloudrun: (options: import("./client").RenderStillOnCloudrunInput) => Promise<{
39
- type: "crash";
40
- cloudRunEndpoint: string;
41
- message: "Service crashed without sending a response. Check the logs in GCP console.";
42
- requestStartTime: string;
43
- requestCrashTime: string;
44
- requestElapsedTimeInSeconds: number;
45
- } | {
46
39
  type: "success";
47
40
  publicUrl?: string | null | undefined;
48
41
  cloudStorageUri: string;
@@ -55,6 +48,13 @@ declare const renderStillOnCloudrun: (options: import("./client").RenderStillOnC
55
48
  message: string;
56
49
  name: string;
57
50
  stack: string;
51
+ } | {
52
+ type: "crash";
53
+ cloudRunEndpoint: string;
54
+ message: "Service crashed without sending a response. Check the logs in GCP console.";
55
+ requestStartTime: string;
56
+ requestCrashTime: string;
57
+ requestElapsedTimeInSeconds: number;
58
58
  }>;
59
59
  /**
60
60
  * @deprecated Import this from `@remotion/lambda/client` instead
@@ -0,0 +1 @@
1
+ export declare const checkCredentials: () => void;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkCredentials = void 0;
4
+ const is_in_cloud_task_1 = require("../functions/helpers/is-in-cloud-task");
5
+ const docs_url_1 = require("./docs-url");
6
+ const is_cli_1 = require("./is-cli");
7
+ const checkCredentials = () => {
8
+ if ((0, is_in_cloud_task_1.isInCloudTask)()) {
9
+ return;
10
+ }
11
+ for (const variable of [
12
+ 'REMOTION_GCP_PROJECT_ID',
13
+ 'REMOTION_GCP_CLIENT_EMAIL',
14
+ 'REMOTION_GCP_PRIVATE_KEY',
15
+ ]) {
16
+ if (!process.env[variable]) {
17
+ throw new Error([
18
+ `You have tried to call a Remotion Cloud Run function, but have not set the environment variable ${variable}.`,
19
+ (0, is_cli_1.getIsCli)()
20
+ ? null
21
+ : `- Environment variables from a '.env' file are not automatically read if you are calling the Node.JS APIs, in that case you need to load the file yourself or set the environment variables manually.`,
22
+ `- Please refer to the Remotion Cloud Run docs (${docs_url_1.DOCS_URL}/docs/cloudrun/setup) to see how to generate the credentials for your GCP account and then set the environment variables.`,
23
+ `- To generate a new '.env' file, see: ${docs_url_1.DOCS_URL}/docs/cloudrun/generate-env`,
24
+ ]
25
+ .filter(Boolean)
26
+ .join('\n'));
27
+ }
28
+ }
29
+ };
30
+ exports.checkCredentials = checkCredentials;
@@ -0,0 +1,2 @@
1
+ export declare const getIsCli: () => boolean;
2
+ export declare const setIsCli: (cli: boolean) => void;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setIsCli = exports.getIsCli = void 0;
4
+ let isCli = false;
5
+ const getIsCli = () => isCli;
6
+ exports.getIsCli = getIsCli;
7
+ const setIsCli = (cli) => {
8
+ isCli = cli;
9
+ };
10
+ exports.setIsCli = setIsCli;
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateImageRemotionVersion = void 0;
4
4
  const artifact_registry_1 = require("@google-cloud/artifact-registry");
5
5
  const version_1 = require("remotion/version");
6
+ const check_credentials_1 = require("./check-credentials");
6
7
  const validateImageRemotionVersion = async () => {
7
8
  var _a;
9
+ (0, check_credentials_1.checkCredentials)();
8
10
  const client = new artifact_registry_1.ArtifactRegistryClient({
9
11
  projectId: process.env.REMOTION_GCP_PROJECT_ID,
10
12
  credentials: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/cloudrun"
4
4
  },
5
5
  "name": "@remotion/cloudrun",
6
- "version": "4.0.533",
6
+ "version": "4.0.535",
7
7
  "description": "Render Remotion videos on Google Cloud Run",
8
8
  "main": "dist/index.js",
9
9
  "scripts": {
@@ -20,17 +20,17 @@
20
20
  "@google-cloud/storage": "7.15.2",
21
21
  "@google-cloud/resource-manager": "5.3.1",
22
22
  "@google-cloud/logging": "11.2.0",
23
- "@remotion/bundler": "4.0.533",
24
- "@remotion/cli": "4.0.533",
25
- "@remotion/renderer": "4.0.533",
23
+ "@remotion/bundler": "4.0.535",
24
+ "@remotion/cli": "4.0.535",
25
+ "@remotion/renderer": "4.0.535",
26
26
  "google-auth-library": "8.7.0",
27
- "remotion": "4.0.533",
27
+ "remotion": "4.0.535",
28
28
  "zod": "4.5.4"
29
29
  },
30
30
  "devDependencies": {
31
- "@remotion/compositor-linux-x64-gnu": "4.0.533",
31
+ "@remotion/compositor-linux-x64-gnu": "4.0.535",
32
32
  "@types/minimist": "1.2.2",
33
- "@remotion/eslint-config-internal": "4.0.533",
33
+ "@remotion/eslint-config-internal": "4.0.535",
34
34
  "eslint": "9.19.0",
35
35
  "@types/node": "20.12.14",
36
36
  "@typescript/native-preview": "7.0.0-dev.20260217.1"