@remotion/lambda 3.2.12-crf.6 → 3.2.13

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.
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const client_lambda_1 = require("@aws-sdk/client-lambda");
4
4
  const aws_policies_1 = require("aws-policies");
5
5
  const version_1 = require("remotion/version");
6
- const __1 = require("..");
6
+ const get_regions_1 = require("../api/get-regions");
7
7
  const quit_1 = require("../cli/helpers/quit");
8
8
  const aws_clients_1 = require("../shared/aws-clients");
9
9
  const runtimes = ['nodejs14.x'];
@@ -37,13 +37,13 @@ const layerInfo = {
37
37
  const makeLayerPublic = async () => {
38
38
  const layers = ['fonts', 'ffmpeg', 'chromium'];
39
39
  for (const architecture of archictures) {
40
- for (const region of (0, __1.getRegions)()) {
40
+ for (const region of (0, get_regions_1.getRegions)()) {
41
41
  for (const layer of layers) {
42
42
  const layerName = `remotion-binaries-${layer}-${architecture}`;
43
43
  const { Version, LayerArn } = await (0, aws_clients_1.getLambdaClient)(region).send(new client_lambda_1.PublishLayerVersionCommand({
44
44
  Content: {
45
45
  S3Bucket: 'remotionlambda-binaries-' + region,
46
- S3Key: `remotion-layer-${layer}-v7-${architecture}.zip`,
46
+ S3Key: `remotion-layer-${layer}-v8-${architecture}.zip`,
47
47
  },
48
48
  LayerName: layerName,
49
49
  LicenseInfo: layer === 'chromium'
@@ -6,6 +6,7 @@ const is_in_lambda_1 = require("../shared/is-in-lambda");
6
6
  const validate_aws_region_1 = require("../shared/validate-aws-region");
7
7
  const args_1 = require("./args");
8
8
  const getAwsRegion = () => {
9
+ var _a;
9
10
  if ((0, is_in_lambda_1.isInsideLambda)()) {
10
11
  throw new Error('Should not call getAwsRegion() if in lambda');
11
12
  }
@@ -13,7 +14,7 @@ const getAwsRegion = () => {
13
14
  (0, validate_aws_region_1.validateAwsRegion)(args_1.parsedLambdaCli.region);
14
15
  return args_1.parsedLambdaCli.region;
15
16
  }
16
- const envVariable = process.env.AWS_REGION;
17
+ const envVariable = (_a = process.env.REMOTION_AWS_REGION) !== null && _a !== void 0 ? _a : process.env.AWS_REGION;
17
18
  if (envVariable) {
18
19
  (0, validate_aws_region_1.validateAwsRegion)(envVariable);
19
20
  return envVariable;
@@ -0,0 +1,3 @@
1
+ import type { _Object } from '@aws-sdk/client-s3';
2
+ import type { AwsRegion } from '../../client';
3
+ export declare const checkIfRenderExists: (contents: _Object[], renderId: string, bucketName: string, region: AwsRegion) => void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkIfRenderExists = void 0;
4
+ const constants_1 = require("../../shared/constants");
5
+ const checkIfRenderExists = (contents, renderId, bucketName, region) => {
6
+ const initializedExists = Boolean(contents.find((c) => {
7
+ var _a;
8
+ return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.initalizedMetadataKey)(renderId));
9
+ }));
10
+ if (!initializedExists) {
11
+ throw new TypeError(`No render with ID "${renderId}" found in bucket ${bucketName} and region ${region}`);
12
+ }
13
+ };
14
+ exports.checkIfRenderExists = checkIfRenderExists;
@@ -1,6 +1,6 @@
1
1
  import type { AwsRegion } from '../../pricing/aws-regions';
2
2
  import type { LambdaCodec } from '../../shared/validate-lambda-codec';
3
- export declare const concatVideosS3: ({ bucket, expectedFiles, onProgress, numberOfFrames, renderId, region, codec, expectedBucketOwner, fps, numberOfGifLoops, crf, }: {
3
+ export declare const concatVideosS3: ({ bucket, expectedFiles, onProgress, numberOfFrames, renderId, region, codec, expectedBucketOwner, fps, numberOfGifLoops, }: {
4
4
  bucket: string;
5
5
  expectedFiles: number;
6
6
  onProgress: (frames: number, encodingStart: number) => void;
@@ -11,7 +11,6 @@ export declare const concatVideosS3: ({ bucket, expectedFiles, onProgress, numbe
11
11
  expectedBucketOwner: string;
12
12
  fps: number;
13
13
  numberOfGifLoops: number | null;
14
- crf: number | null;
15
14
  }) => Promise<{
16
15
  outfile: string;
17
16
  cleanupChunksProm: Promise<void>;
@@ -112,7 +112,7 @@ const getAllFilesS3 = ({ bucket, expectedFiles, outdir, renderId, region, expect
112
112
  loop();
113
113
  });
114
114
  };
115
- const concatVideosS3 = async ({ bucket, expectedFiles, onProgress, numberOfFrames, renderId, region, codec, expectedBucketOwner, fps, numberOfGifLoops, crf, }) => {
115
+ const concatVideosS3 = async ({ bucket, expectedFiles, onProgress, numberOfFrames, renderId, region, codec, expectedBucketOwner, fps, numberOfGifLoops, }) => {
116
116
  var _a;
117
117
  const outdir = (0, path_1.join)(renderer_1.RenderInternals.tmpDir(constants_1.CONCAT_FOLDER_TOKEN), 'bucket');
118
118
  if ((0, fs_1.existsSync)(outdir)) {
@@ -143,7 +143,6 @@ const concatVideosS3 = async ({ bucket, expectedFiles, onProgress, numberOfFrame
143
143
  codec: codecForCombining,
144
144
  fps,
145
145
  numberOfGifLoops,
146
- crf,
147
146
  });
148
147
  combine.end();
149
148
  const cleanupChunksProm = ((_a = fs_1.default.promises.rm) !== null && _a !== void 0 ? _a : fs_1.default.promises.rmdir)(outdir, {
@@ -12,7 +12,7 @@ const getFilesToDelete = ({ chunkCount, renderId, }) => {
12
12
  .map((_x, i) => (0, constants_1.lambdaTimingsPrefixForChunk)(renderId, i));
13
13
  return [
14
14
  {
15
- name: (0, constants_1.lambdaInitializedPrefix)(renderId),
15
+ name: (0, constants_1.lambdaChunkInitializedPrefix)(renderId),
16
16
  type: 'prefix',
17
17
  },
18
18
  ...chunks.map((i) => {
@@ -7,7 +7,7 @@ const min_max_1 = require("./min-max");
7
7
  const getLambdasInvokedStats = ({ contents, renderId, estimatedRenderLambdaInvokations, startDate, checkIfAllLambdasWereInvoked, }) => {
8
8
  var _a;
9
9
  const lambdasInvoked = contents
10
- .filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaInitializedPrefix)(renderId)); })
10
+ .filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
11
11
  .filter((c) => (0, parse_lambda_initialized_key_1.parseLambdaInitializedKey)(c.Key).attempt === 1);
12
12
  const allLambdasInvoked = !checkIfAllLambdasWereInvoked ||
13
13
  lambdasInvoked.length === estimatedRenderLambdaInvokations;
@@ -6,6 +6,7 @@ const constants_1 = require("../../shared/constants");
6
6
  const docs_url_1 = require("../../shared/docs-url");
7
7
  const calculate_chunk_times_1 = require("./calculate-chunk-times");
8
8
  const calculate_price_from_bucket_1 = require("./calculate-price-from-bucket");
9
+ const check_if_render_exists_1 = require("./check-if-render-exists");
9
10
  const expected_out_name_1 = require("./expected-out-name");
10
11
  const find_output_file_in_bucket_1 = require("./find-output-file-in-bucket");
11
12
  const format_costs_info_1 = require("./format-costs-info");
@@ -77,6 +78,7 @@ const getProgress = async ({ bucketName, renderId, expectedBucketOwner, region,
77
78
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
78
79
  expectedBucketOwner,
79
80
  });
81
+ (0, check_if_render_exists_1.checkIfRenderExists)(contents, renderId, bucketName, (0, get_current_region_1.getCurrentRegionInFunction)());
80
82
  const renderMetadataExists = Boolean(contents.find((c) => c.Key === (0, constants_1.renderMetadataKey)(renderId)));
81
83
  const [encodingStatus, renderMetadata, errorExplanations] = await Promise.all([
82
84
  (0, get_encoding_metadata_1.getEncodingMetadata)({
@@ -5,7 +5,7 @@ const constants_1 = require("../../shared/constants");
5
5
  const parse_lambda_initialized_key_1 = require("../../shared/parse-lambda-initialized-key");
6
6
  const getRetryStats = ({ contents, renderId, }) => {
7
7
  const retries = contents
8
- .filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaInitializedPrefix)(renderId)); })
8
+ .filter((c) => { var _a; return (_a = c.Key) === null || _a === void 0 ? void 0 : _a.startsWith((0, constants_1.lambdaChunkInitializedPrefix)(renderId)); })
9
9
  .filter((c) => (0, parse_lambda_initialized_key_1.parseLambdaInitializedKey)(c.Key).attempt !== 1);
10
10
  return retries.map((retry) => {
11
11
  var _a;
@@ -13,6 +13,11 @@ export declare type LambdaLSInput = {
13
13
  };
14
14
  export declare type LambdaLsReturnType = Promise<_Object[]>;
15
15
  export declare const lambdaLs: ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }: LambdaLSInput) => LambdaLsReturnType;
16
+ export declare const lambdaDeleteFile: ({ bucketName, key, region, }: {
17
+ region: AwsRegion;
18
+ bucketName: string;
19
+ key: string;
20
+ }) => Promise<void>;
16
21
  export declare const lambdaWriteFile: ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, }: {
17
22
  bucketName: string;
18
23
  key: string;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.lambdaReadFile = exports.lambdaWriteFile = exports.lambdaLs = void 0;
6
+ exports.lambdaReadFile = exports.lambdaWriteFile = exports.lambdaDeleteFile = exports.lambdaLs = void 0;
7
7
  const client_s3_1 = require("@aws-sdk/client-s3");
8
8
  const mime_types_1 = __importDefault(require("mime-types"));
9
9
  const aws_clients_1 = require("../../shared/aws-clients");
@@ -47,6 +47,13 @@ const lambdaLs = async ({ bucketName, prefix, region, expectedBucketOwner, conti
47
47
  }
48
48
  };
49
49
  exports.lambdaLs = lambdaLs;
50
+ const lambdaDeleteFile = async ({ bucketName, key, region, }) => {
51
+ await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.DeleteObjectCommand({
52
+ Bucket: bucketName,
53
+ Key: key,
54
+ }));
55
+ };
56
+ exports.lambdaDeleteFile = lambdaDeleteFile;
50
57
  const lambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, }) => {
51
58
  await (0, aws_clients_1.getS3Client)(region).send(new client_s3_1.PutObjectCommand({
52
59
  Bucket: bucketName,
@@ -36,7 +36,7 @@ const handler = async (params, context) => {
36
36
  inputProps: JSON.stringify(params.inputProps),
37
37
  isWarm,
38
38
  });
39
- return (0, start_1.startHandler)(params);
39
+ return (0, start_1.startHandler)(params, { expectedBucketOwner: currentUserId });
40
40
  }
41
41
  if (params.type === constants_1.LambdaRoutines.launch) {
42
42
  (0, print_cloudwatch_helper_1.printCloudwatchHelper)(constants_1.LambdaRoutines.launch, {
@@ -62,7 +62,7 @@ const callFunctionWithRetry = async (payload, retries = 0) => {
62
62
  }
63
63
  };
64
64
  const innerLaunchHandler = async (params, options) => {
65
- var _a, _b, _c;
65
+ var _a, _b;
66
66
  if (params.type !== constants_1.LambdaRoutines.launch) {
67
67
  throw new Error('Expected launch type');
68
68
  }
@@ -253,7 +253,6 @@ const innerLaunchHandler = async (params, options) => {
253
253
  expectedBucketOwner: options.expectedBucketOwner,
254
254
  fps,
255
255
  numberOfGifLoops: params.numberOfGifLoops,
256
- crf: (_c = params.crf) !== null && _c !== void 0 ? _c : null,
257
256
  });
258
257
  if (!encodingStop) {
259
258
  encodingStop = Date.now();
@@ -372,6 +371,11 @@ const innerLaunchHandler = async (params, options) => {
372
371
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
373
372
  renderId: params.renderId,
374
373
  });
374
+ await (0, io_1.lambdaDeleteFile)({
375
+ bucketName: params.bucketName,
376
+ key: (0, constants_1.initalizedMetadataKey)(params.renderId),
377
+ region: (0, get_current_region_1.getCurrentRegionInFunction)(),
378
+ });
375
379
  await Promise.all([cleanupChunksProm, fs_1.default.promises.rm(outfile)]);
376
380
  };
377
381
  const launchHandler = async (params, options) => {
@@ -41,6 +41,7 @@ const renderHandler = async (params, options, logs) => {
41
41
  const outputLocation = path_1.default.join(outdir, `localchunk-${String(params.chunk).padStart(8, '0')}.${renderer_1.RenderInternals.getFileExtensionFromCodec(params.codec, 'chunk')}`);
42
42
  const chunkCodec = params.codec === 'gif' ? 'h264-mkv' : params.codec;
43
43
  const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
44
+ const downloads = {};
44
45
  await new Promise((resolve, reject) => {
45
46
  var _a;
46
47
  (0, renderer_1.renderMedia)({
@@ -78,7 +79,7 @@ const renderHandler = async (params, options, logs) => {
78
79
  tmpSize: (0, get_folder_size_1.getFolderSizeRecursively)('/tmp'),
79
80
  tmpDirFiles: (0, get_files_in_folder_1.getFolderFiles)('/tmp'),
80
81
  }),
81
- key: (0, constants_1.lambdaInitializedKey)({
82
+ key: (0, constants_1.lambdaChunkInitializedKey)({
82
83
  renderId: params.renderId,
83
84
  chunk: params.chunk,
84
85
  attempt: params.attempt,
@@ -105,7 +106,24 @@ const renderHandler = async (params, options, logs) => {
105
106
  proResProfile: params.proResProfile,
106
107
  onDownload: (src) => {
107
108
  console.log('Downloading', src);
108
- return () => undefined;
109
+ downloads[src] = 0;
110
+ return ({ percent, downloaded }) => {
111
+ if (percent === null) {
112
+ console.log(`Download progress (${src}): ${downloaded} bytes. Don't know final size of download, no Content-Length header.`);
113
+ return;
114
+ }
115
+ if (
116
+ // Only report every 10% change
117
+ downloads[src] > percent - 0.1 &&
118
+ percent !== 1) {
119
+ return;
120
+ }
121
+ downloads[src] = percent;
122
+ console.log(`Download progress (${src}): ${downloaded} bytes, ${(percent * 100).toFixed(1)}%`);
123
+ if (percent === 1) {
124
+ console.log(`Download complete: ${src}`);
125
+ }
126
+ };
109
127
  },
110
128
  overwrite: false,
111
129
  chromiumOptions: params.chromiumOptions,
@@ -1,5 +1,9 @@
1
1
  import type { LambdaPayload } from '../shared/constants';
2
- export declare const startHandler: (params: LambdaPayload) => Promise<{
2
+ declare type Options = {
3
+ expectedBucketOwner: string;
4
+ };
5
+ export declare const startHandler: (params: LambdaPayload, options: Options) => Promise<{
3
6
  bucketName: string;
4
7
  renderId: string;
5
8
  }>;
9
+ export {};
@@ -8,7 +8,8 @@ const aws_clients_1 = require("../shared/aws-clients");
8
8
  const constants_1 = require("../shared/constants");
9
9
  const random_hash_1 = require("../shared/random-hash");
10
10
  const get_current_region_1 = require("./helpers/get-current-region");
11
- const startHandler = async (params) => {
11
+ const io_1 = require("./helpers/io");
12
+ const startHandler = async (params, options) => {
12
13
  var _a;
13
14
  if (params.type !== constants_1.LambdaRoutines.start) {
14
15
  throw new TypeError('Expected type start');
@@ -23,6 +24,15 @@ const startHandler = async (params) => {
23
24
  region: (0, get_current_region_1.getCurrentRegionInFunction)(),
24
25
  });
25
26
  const renderId = (0, random_hash_1.randomHash)({ randomInTests: true });
27
+ const initialFile = (0, io_1.lambdaWriteFile)({
28
+ bucketName,
29
+ downloadBehavior: null,
30
+ region: (0, get_current_region_1.getCurrentRegionInFunction)(),
31
+ body: 'Render was initialized',
32
+ expectedBucketOwner: options.expectedBucketOwner,
33
+ key: (0, constants_1.initalizedMetadataKey)(renderId),
34
+ privacy: 'private',
35
+ });
26
36
  const payload = {
27
37
  type: constants_1.LambdaRoutines.launch,
28
38
  framesPerLambda: params.framesPerLambda,
@@ -58,6 +68,7 @@ const startHandler = async (params) => {
58
68
  Payload: JSON.stringify(payload),
59
69
  InvocationType: 'Event',
60
70
  }));
71
+ await initialFile;
61
72
  return {
62
73
  bucketName,
63
74
  renderId,
@@ -32,8 +32,9 @@ export declare const LOG_GROUP_PREFIX = "/aws/lambda/";
32
32
  export declare const rendersPrefix: (renderId: string) => string;
33
33
  export declare const encodingProgressKey: (renderId: string) => string;
34
34
  export declare const renderMetadataKey: (renderId: string) => string;
35
- export declare const lambdaInitializedPrefix: (renderId: string) => string;
36
- export declare const lambdaInitializedKey: ({ renderId, chunk, attempt, }: {
35
+ export declare const initalizedMetadataKey: (renderId: string) => string;
36
+ export declare const lambdaChunkInitializedPrefix: (renderId: string) => string;
37
+ export declare const lambdaChunkInitializedKey: ({ renderId, chunk, attempt, }: {
37
38
  attempt: number;
38
39
  renderId: string;
39
40
  chunk: number;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LAMBDA_BURST_LIMIT_QUOTA = exports.LAMBDA_CONCURRENCY_LIMIT_QUOTA = exports.LambdaRoutines = exports.REMOTION_FILELIST_TOKEN = exports.REMOTION_CONCATED_TOKEN = exports.CONCAT_FOLDER_TOKEN = exports.RENDERER_PATH_TOKEN = exports.postRenderDataKey = exports.customOutName = exports.outStillName = exports.outName = exports.getSitesKey = exports.optimizationProfile = exports.getErrorFileName = exports.getErrorKeyPrefix = exports.chunkKeyForIndex = exports.chunkKey = exports.lambdaTimingsKey = exports.lambdaLogsPrefix = exports.lambdaTimingsPrefixForChunk = exports.lambdaTimingsPrefix = exports.lambdaInitializedKey = exports.lambdaInitializedPrefix = exports.renderMetadataKey = exports.encodingProgressKey = exports.rendersPrefix = exports.LOG_GROUP_PREFIX = exports.RENDER_FN_PREFIX = exports.REMOTION_BUCKET_PREFIX = exports.DEFAULT_CLOUDWATCH_RETENTION_PERIOD = exports.DEFAULT_OUTPUT_PRIVACY = exports.MAX_EPHEMERAL_STORAGE_IN_MB = exports.MIN_EPHEMERAL_STORAGE_IN_MB = exports.DEFAULT_EPHEMERAL_STORAGE_IN_MB = exports.MAX_FUNCTIONS_PER_RENDER = exports.DEFAULT_MAX_RETRIES = exports.DEFAULT_REGION = exports.COMMAND_NOT_FOUND = exports.BINARY_NAME = exports.DEFAULT_FRAMES_PER_LAMBDA = exports.MINIMUM_FRAMES_PER_LAMBDA = exports.MAX_TIMEOUT = exports.MIN_TIMEOUT = exports.DEFAULT_TIMEOUT = exports.DEFAULT_ARCHITECTURE = exports.DEFAULT_MEMORY_SIZE = exports.MAX_MEMORY = exports.MIN_MEMORY = void 0;
3
+ exports.LAMBDA_BURST_LIMIT_QUOTA = exports.LAMBDA_CONCURRENCY_LIMIT_QUOTA = exports.LambdaRoutines = exports.REMOTION_FILELIST_TOKEN = exports.REMOTION_CONCATED_TOKEN = exports.CONCAT_FOLDER_TOKEN = exports.RENDERER_PATH_TOKEN = exports.postRenderDataKey = exports.customOutName = exports.outStillName = exports.outName = exports.getSitesKey = exports.optimizationProfile = exports.getErrorFileName = exports.getErrorKeyPrefix = exports.chunkKeyForIndex = exports.chunkKey = exports.lambdaTimingsKey = exports.lambdaLogsPrefix = exports.lambdaTimingsPrefixForChunk = exports.lambdaTimingsPrefix = exports.lambdaChunkInitializedKey = exports.lambdaChunkInitializedPrefix = exports.initalizedMetadataKey = exports.renderMetadataKey = exports.encodingProgressKey = exports.rendersPrefix = exports.LOG_GROUP_PREFIX = exports.RENDER_FN_PREFIX = exports.REMOTION_BUCKET_PREFIX = exports.DEFAULT_CLOUDWATCH_RETENTION_PERIOD = exports.DEFAULT_OUTPUT_PRIVACY = exports.MAX_EPHEMERAL_STORAGE_IN_MB = exports.MIN_EPHEMERAL_STORAGE_IN_MB = exports.DEFAULT_EPHEMERAL_STORAGE_IN_MB = exports.MAX_FUNCTIONS_PER_RENDER = exports.DEFAULT_MAX_RETRIES = exports.DEFAULT_REGION = exports.COMMAND_NOT_FOUND = exports.BINARY_NAME = exports.DEFAULT_FRAMES_PER_LAMBDA = exports.MINIMUM_FRAMES_PER_LAMBDA = exports.MAX_TIMEOUT = exports.MIN_TIMEOUT = exports.DEFAULT_TIMEOUT = exports.DEFAULT_ARCHITECTURE = exports.DEFAULT_MEMORY_SIZE = exports.MAX_MEMORY = exports.MIN_MEMORY = void 0;
4
4
  exports.MIN_MEMORY = 512;
5
5
  exports.MAX_MEMORY = 10240;
6
6
  exports.DEFAULT_MEMORY_SIZE = 2048;
@@ -29,10 +29,12 @@ const encodingProgressKey = (renderId) => `${(0, exports.rendersPrefix)(renderId
29
29
  exports.encodingProgressKey = encodingProgressKey;
30
30
  const renderMetadataKey = (renderId) => `${(0, exports.rendersPrefix)(renderId)}/pre-render-metadata.json`;
31
31
  exports.renderMetadataKey = renderMetadataKey;
32
- const lambdaInitializedPrefix = (renderId) => `${(0, exports.rendersPrefix)(renderId)}/lambda-initialized`;
33
- exports.lambdaInitializedPrefix = lambdaInitializedPrefix;
34
- const lambdaInitializedKey = ({ renderId, chunk, attempt, }) => `${(0, exports.lambdaInitializedPrefix)(renderId)}-chunk:${chunk}-attempt:${attempt}.txt`;
35
- exports.lambdaInitializedKey = lambdaInitializedKey;
32
+ const initalizedMetadataKey = (renderId) => `${(0, exports.rendersPrefix)(renderId)}/initialized.txt`;
33
+ exports.initalizedMetadataKey = initalizedMetadataKey;
34
+ const lambdaChunkInitializedPrefix = (renderId) => `${(0, exports.rendersPrefix)(renderId)}/lambda-initialized`;
35
+ exports.lambdaChunkInitializedPrefix = lambdaChunkInitializedPrefix;
36
+ const lambdaChunkInitializedKey = ({ renderId, chunk, attempt, }) => `${(0, exports.lambdaChunkInitializedPrefix)(renderId)}-chunk:${chunk}-attempt:${attempt}.txt`;
37
+ exports.lambdaChunkInitializedKey = lambdaChunkInitializedKey;
36
38
  const lambdaTimingsPrefix = (renderId) => `${(0, exports.rendersPrefix)(renderId)}/lambda-timings/chunk:`;
37
39
  exports.lambdaTimingsPrefix = lambdaTimingsPrefix;
38
40
  const lambdaTimingsPrefixForChunk = (renderId, chunk) => (0, exports.lambdaTimingsPrefix)(renderId) + String(chunk).padStart(8, '0');
@@ -7,141 +7,141 @@ exports.hostedLayers = {
7
7
  'ap-northeast-1': [
8
8
  {
9
9
  layerArn: 'arn:aws:lambda:ap-northeast-1:678892195805:layer:remotion-binaries-fonts-arm64',
10
- version: 2,
10
+ version: 3,
11
11
  },
12
12
  {
13
13
  layerArn: 'arn:aws:lambda:ap-northeast-1:678892195805:layer:remotion-binaries-ffmpeg-arm64',
14
- version: 6,
14
+ version: 7,
15
15
  },
16
16
  {
17
17
  layerArn: 'arn:aws:lambda:ap-northeast-1:678892195805:layer:remotion-binaries-chromium-arm64',
18
- version: 6,
18
+ version: 7,
19
19
  },
20
20
  ],
21
21
  'ap-south-1': [
22
22
  {
23
23
  layerArn: 'arn:aws:lambda:ap-south-1:678892195805:layer:remotion-binaries-fonts-arm64',
24
- version: 2,
24
+ version: 3,
25
25
  },
26
26
  {
27
27
  layerArn: 'arn:aws:lambda:ap-south-1:678892195805:layer:remotion-binaries-ffmpeg-arm64',
28
- version: 6,
28
+ version: 7,
29
29
  },
30
30
  {
31
31
  layerArn: 'arn:aws:lambda:ap-south-1:678892195805:layer:remotion-binaries-chromium-arm64',
32
- version: 6,
32
+ version: 7,
33
33
  },
34
34
  ],
35
35
  'ap-southeast-1': [
36
36
  {
37
37
  layerArn: 'arn:aws:lambda:ap-southeast-1:678892195805:layer:remotion-binaries-fonts-arm64',
38
- version: 2,
38
+ version: 3,
39
39
  },
40
40
  {
41
41
  layerArn: 'arn:aws:lambda:ap-southeast-1:678892195805:layer:remotion-binaries-ffmpeg-arm64',
42
- version: 6,
42
+ version: 7,
43
43
  },
44
44
  {
45
45
  layerArn: 'arn:aws:lambda:ap-southeast-1:678892195805:layer:remotion-binaries-chromium-arm64',
46
- version: 6,
46
+ version: 7,
47
47
  },
48
48
  ],
49
49
  'ap-southeast-2': [
50
50
  {
51
51
  layerArn: 'arn:aws:lambda:ap-southeast-2:678892195805:layer:remotion-binaries-fonts-arm64',
52
- version: 2,
52
+ version: 3,
53
53
  },
54
54
  {
55
55
  layerArn: 'arn:aws:lambda:ap-southeast-2:678892195805:layer:remotion-binaries-ffmpeg-arm64',
56
- version: 6,
56
+ version: 7,
57
57
  },
58
58
  {
59
59
  layerArn: 'arn:aws:lambda:ap-southeast-2:678892195805:layer:remotion-binaries-chromium-arm64',
60
- version: 6,
60
+ version: 7,
61
61
  },
62
62
  ],
63
63
  'eu-central-1': [
64
64
  {
65
65
  layerArn: 'arn:aws:lambda:eu-central-1:678892195805:layer:remotion-binaries-fonts-arm64',
66
- version: 2,
66
+ version: 3,
67
67
  },
68
68
  {
69
69
  layerArn: 'arn:aws:lambda:eu-central-1:678892195805:layer:remotion-binaries-ffmpeg-arm64',
70
- version: 6,
70
+ version: 7,
71
71
  },
72
72
  {
73
73
  layerArn: 'arn:aws:lambda:eu-central-1:678892195805:layer:remotion-binaries-chromium-arm64',
74
- version: 6,
74
+ version: 7,
75
75
  },
76
76
  ],
77
77
  'eu-west-1': [
78
78
  {
79
79
  layerArn: 'arn:aws:lambda:eu-west-1:678892195805:layer:remotion-binaries-fonts-arm64',
80
- version: 2,
80
+ version: 3,
81
81
  },
82
82
  {
83
83
  layerArn: 'arn:aws:lambda:eu-west-1:678892195805:layer:remotion-binaries-ffmpeg-arm64',
84
- version: 6,
84
+ version: 7,
85
85
  },
86
86
  {
87
87
  layerArn: 'arn:aws:lambda:eu-west-1:678892195805:layer:remotion-binaries-chromium-arm64',
88
- version: 6,
88
+ version: 7,
89
89
  },
90
90
  ],
91
91
  'eu-west-2': [
92
92
  {
93
93
  layerArn: 'arn:aws:lambda:eu-west-2:678892195805:layer:remotion-binaries-fonts-arm64',
94
- version: 2,
94
+ version: 3,
95
95
  },
96
96
  {
97
97
  layerArn: 'arn:aws:lambda:eu-west-2:678892195805:layer:remotion-binaries-ffmpeg-arm64',
98
- version: 6,
98
+ version: 7,
99
99
  },
100
100
  {
101
101
  layerArn: 'arn:aws:lambda:eu-west-2:678892195805:layer:remotion-binaries-chromium-arm64',
102
- version: 6,
102
+ version: 7,
103
103
  },
104
104
  ],
105
105
  'us-east-1': [
106
106
  {
107
107
  layerArn: 'arn:aws:lambda:us-east-1:678892195805:layer:remotion-binaries-fonts-arm64',
108
- version: 2,
108
+ version: 7,
109
109
  },
110
110
  {
111
111
  layerArn: 'arn:aws:lambda:us-east-1:678892195805:layer:remotion-binaries-ffmpeg-arm64',
112
- version: 10,
112
+ version: 15,
113
113
  },
114
114
  {
115
115
  layerArn: 'arn:aws:lambda:us-east-1:678892195805:layer:remotion-binaries-chromium-arm64',
116
- version: 10,
116
+ version: 15,
117
117
  },
118
118
  ],
119
119
  'us-east-2': [
120
120
  {
121
121
  layerArn: 'arn:aws:lambda:us-east-2:678892195805:layer:remotion-binaries-fonts-arm64',
122
- version: 2,
122
+ version: 3,
123
123
  },
124
124
  {
125
125
  layerArn: 'arn:aws:lambda:us-east-2:678892195805:layer:remotion-binaries-ffmpeg-arm64',
126
- version: 6,
126
+ version: 7,
127
127
  },
128
128
  {
129
129
  layerArn: 'arn:aws:lambda:us-east-2:678892195805:layer:remotion-binaries-chromium-arm64',
130
- version: 6,
130
+ version: 7,
131
131
  },
132
132
  ],
133
133
  'us-west-2': [
134
134
  {
135
135
  layerArn: 'arn:aws:lambda:us-west-2:678892195805:layer:remotion-binaries-fonts-arm64',
136
- version: 2,
136
+ version: 3,
137
137
  },
138
138
  {
139
139
  layerArn: 'arn:aws:lambda:us-west-2:678892195805:layer:remotion-binaries-ffmpeg-arm64',
140
- version: 6,
140
+ version: 7,
141
141
  },
142
142
  {
143
143
  layerArn: 'arn:aws:lambda:us-west-2:678892195805:layer:remotion-binaries-chromium-arm64',
144
- version: 6,
144
+ version: 7,
145
145
  },
146
146
  ],
147
147
  },
@@ -149,141 +149,141 @@ exports.hostedLayers = {
149
149
  'ap-northeast-1': [
150
150
  {
151
151
  layerArn: 'arn:aws:lambda:ap-northeast-1:678892195805:layer:remotion-binaries-fonts-x86_64',
152
- version: 2,
152
+ version: 3,
153
153
  },
154
154
  {
155
155
  layerArn: 'arn:aws:lambda:ap-northeast-1:678892195805:layer:remotion-binaries-ffmpeg-x86_64',
156
- version: 6,
156
+ version: 7,
157
157
  },
158
158
  {
159
159
  layerArn: 'arn:aws:lambda:ap-northeast-1:678892195805:layer:remotion-binaries-chromium-x86_64',
160
- version: 6,
160
+ version: 7,
161
161
  },
162
162
  ],
163
163
  'ap-south-1': [
164
164
  {
165
165
  layerArn: 'arn:aws:lambda:ap-south-1:678892195805:layer:remotion-binaries-fonts-x86_64',
166
- version: 2,
166
+ version: 3,
167
167
  },
168
168
  {
169
169
  layerArn: 'arn:aws:lambda:ap-south-1:678892195805:layer:remotion-binaries-ffmpeg-x86_64',
170
- version: 6,
170
+ version: 7,
171
171
  },
172
172
  {
173
173
  layerArn: 'arn:aws:lambda:ap-south-1:678892195805:layer:remotion-binaries-chromium-x86_64',
174
- version: 6,
174
+ version: 7,
175
175
  },
176
176
  ],
177
177
  'ap-southeast-1': [
178
178
  {
179
179
  layerArn: 'arn:aws:lambda:ap-southeast-1:678892195805:layer:remotion-binaries-fonts-x86_64',
180
- version: 2,
180
+ version: 3,
181
181
  },
182
182
  {
183
183
  layerArn: 'arn:aws:lambda:ap-southeast-1:678892195805:layer:remotion-binaries-ffmpeg-x86_64',
184
- version: 6,
184
+ version: 7,
185
185
  },
186
186
  {
187
187
  layerArn: 'arn:aws:lambda:ap-southeast-1:678892195805:layer:remotion-binaries-chromium-x86_64',
188
- version: 6,
188
+ version: 7,
189
189
  },
190
190
  ],
191
191
  'ap-southeast-2': [
192
192
  {
193
193
  layerArn: 'arn:aws:lambda:ap-southeast-2:678892195805:layer:remotion-binaries-fonts-x86_64',
194
- version: 2,
194
+ version: 3,
195
195
  },
196
196
  {
197
197
  layerArn: 'arn:aws:lambda:ap-southeast-2:678892195805:layer:remotion-binaries-ffmpeg-x86_64',
198
- version: 6,
198
+ version: 7,
199
199
  },
200
200
  {
201
201
  layerArn: 'arn:aws:lambda:ap-southeast-2:678892195805:layer:remotion-binaries-chromium-x86_64',
202
- version: 6,
202
+ version: 7,
203
203
  },
204
204
  ],
205
205
  'eu-central-1': [
206
206
  {
207
207
  layerArn: 'arn:aws:lambda:eu-central-1:678892195805:layer:remotion-binaries-fonts-x86_64',
208
- version: 2,
208
+ version: 3,
209
209
  },
210
210
  {
211
211
  layerArn: 'arn:aws:lambda:eu-central-1:678892195805:layer:remotion-binaries-ffmpeg-x86_64',
212
- version: 6,
212
+ version: 7,
213
213
  },
214
214
  {
215
215
  layerArn: 'arn:aws:lambda:eu-central-1:678892195805:layer:remotion-binaries-chromium-x86_64',
216
- version: 6,
216
+ version: 7,
217
217
  },
218
218
  ],
219
219
  'eu-west-1': [
220
220
  {
221
221
  layerArn: 'arn:aws:lambda:eu-west-1:678892195805:layer:remotion-binaries-fonts-x86_64',
222
- version: 2,
222
+ version: 3,
223
223
  },
224
224
  {
225
225
  layerArn: 'arn:aws:lambda:eu-west-1:678892195805:layer:remotion-binaries-ffmpeg-x86_64',
226
- version: 6,
226
+ version: 7,
227
227
  },
228
228
  {
229
229
  layerArn: 'arn:aws:lambda:eu-west-1:678892195805:layer:remotion-binaries-chromium-x86_64',
230
- version: 6,
230
+ version: 7,
231
231
  },
232
232
  ],
233
233
  'eu-west-2': [
234
234
  {
235
235
  layerArn: 'arn:aws:lambda:eu-west-2:678892195805:layer:remotion-binaries-fonts-x86_64',
236
- version: 2,
236
+ version: 3,
237
237
  },
238
238
  {
239
239
  layerArn: 'arn:aws:lambda:eu-west-2:678892195805:layer:remotion-binaries-ffmpeg-x86_64',
240
- version: 6,
240
+ version: 7,
241
241
  },
242
242
  {
243
243
  layerArn: 'arn:aws:lambda:eu-west-2:678892195805:layer:remotion-binaries-chromium-x86_64',
244
- version: 6,
244
+ version: 7,
245
245
  },
246
246
  ],
247
247
  'us-east-1': [
248
248
  {
249
249
  layerArn: 'arn:aws:lambda:us-east-1:678892195805:layer:remotion-binaries-fonts-x86_64',
250
- version: 2,
250
+ version: 7,
251
251
  },
252
252
  {
253
253
  layerArn: 'arn:aws:lambda:us-east-1:678892195805:layer:remotion-binaries-ffmpeg-x86_64',
254
- version: 10,
254
+ version: 15,
255
255
  },
256
256
  {
257
257
  layerArn: 'arn:aws:lambda:us-east-1:678892195805:layer:remotion-binaries-chromium-x86_64',
258
- version: 10,
258
+ version: 15,
259
259
  },
260
260
  ],
261
261
  'us-east-2': [
262
262
  {
263
263
  layerArn: 'arn:aws:lambda:us-east-2:678892195805:layer:remotion-binaries-fonts-x86_64',
264
- version: 2,
264
+ version: 3,
265
265
  },
266
266
  {
267
267
  layerArn: 'arn:aws:lambda:us-east-2:678892195805:layer:remotion-binaries-ffmpeg-x86_64',
268
- version: 6,
268
+ version: 7,
269
269
  },
270
270
  {
271
271
  layerArn: 'arn:aws:lambda:us-east-2:678892195805:layer:remotion-binaries-chromium-x86_64',
272
- version: 6,
272
+ version: 7,
273
273
  },
274
274
  ],
275
275
  'us-west-2': [
276
276
  {
277
277
  layerArn: 'arn:aws:lambda:us-west-2:678892195805:layer:remotion-binaries-fonts-x86_64',
278
- version: 2,
278
+ version: 3,
279
279
  },
280
280
  {
281
281
  layerArn: 'arn:aws:lambda:us-west-2:678892195805:layer:remotion-binaries-ffmpeg-x86_64',
282
- version: 6,
282
+ version: 7,
283
283
  },
284
284
  {
285
285
  layerArn: 'arn:aws:lambda:us-west-2:678892195805:layer:remotion-binaries-chromium-x86_64',
286
- version: 6,
286
+ version: 7,
287
287
  },
288
288
  ],
289
289
  },
@@ -2,4 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LAMBDA_VERSION_STRING = void 0;
4
4
  const version_1 = require("remotion/version");
5
- exports.LAMBDA_VERSION_STRING = version_1.VERSION.replace(/\./g, '-').replace(/\+/g, '-');
5
+ exports.LAMBDA_VERSION_STRING = version_1.VERSION.replace(/\./g, '-')
6
+ .replace(/\+/g, '-')
7
+ .substring(0, 10);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/lambda",
3
- "version": "3.2.12-crf.6+134d2182f",
3
+ "version": "3.2.13",
4
4
  "description": "Distributed renderer for Remotion based on AWS Lambda",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -32,12 +32,12 @@
32
32
  "@aws-sdk/client-service-quotas": "3.58.0",
33
33
  "@aws-sdk/lib-storage": "3.58.0",
34
34
  "@aws-sdk/s3-request-presigner": "3.58.0",
35
- "@remotion/bundler": "3.2.12-crf.6+134d2182f",
36
- "@remotion/cli": "3.2.12-crf.6+134d2182f",
37
- "@remotion/renderer": "3.2.12-crf.6+134d2182f",
35
+ "@remotion/bundler": "3.2.13",
36
+ "@remotion/cli": "3.2.13",
37
+ "@remotion/renderer": "3.2.13",
38
38
  "aws-policies": "^1.0.1",
39
39
  "mime-types": "2.1.34",
40
- "remotion": "3.2.12-crf.6+134d2182f"
40
+ "remotion": "3.2.13"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "react": ">=16.8.0",
@@ -62,5 +62,5 @@
62
62
  "publishConfig": {
63
63
  "access": "public"
64
64
  },
65
- "gitHead": "134d2182f5a94143835795bfcb2fb42476358c42"
65
+ "gitHead": "989d20fc0ace36685c71396847e1b7b7a06d00d7"
66
66
  }
Binary file
@@ -1 +0,0 @@
1
- export declare const chunk: <T>(input: T[], size: number) => T[][];
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.chunk = void 0;
4
- const chunk = (input, size) => {
5
- return input.reduce((arr, item, idx) => {
6
- return idx % size === 0
7
- ? [...arr, [item]]
8
- : [...arr.slice(0, -1), [...arr.slice(-1)[0], item]];
9
- }, []);
10
- };
11
- exports.chunk = chunk;