@remotion/lambda 4.0.0-2x.1 → 4.0.0-alpha.111
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/LICENSE.md +8 -8
- package/dist/admin/bundle-lambda.d.ts +0 -0
- package/dist/admin/bundle-lambda.js +16 -3
- package/dist/admin/generate-etag-list.d.ts +1 -0
- package/dist/admin/generate-etag-list.js +14 -0
- package/dist/admin/make-layer-public.d.ts +0 -0
- package/dist/admin/make-layer-public.js +62 -67
- package/dist/api/bucket-exists.d.ts +0 -0
- package/dist/api/bucket-exists.js +1 -1
- package/dist/api/clean-items.d.ts +0 -0
- package/dist/api/clean-items.js +2 -2
- package/dist/api/create-bucket.d.ts +0 -0
- package/dist/api/create-bucket.js +1 -1
- package/dist/api/create-function.d.ts +1 -3
- package/dist/api/create-function.js +25 -4
- package/dist/api/delete-function.d.ts +1 -1
- package/dist/api/delete-function.js +1 -1
- package/dist/api/delete-render.d.ts +19 -0
- package/dist/api/delete-render.js +66 -0
- package/dist/api/delete-site.d.ts +1 -1
- package/dist/api/delete-site.js +1 -6
- package/dist/api/deploy-function.d.ts +1 -4
- package/dist/api/deploy-function.js +6 -8
- package/dist/api/deploy-site.d.ts +11 -2
- package/dist/api/deploy-site.js +60 -22
- package/dist/api/download-media.d.ts +12 -3
- package/dist/api/download-media.js +16 -8
- package/dist/api/estimate-price.d.ts +2 -4
- package/dist/api/estimate-price.js +4 -10
- package/dist/api/get-aws-client.d.ts +7 -3
- package/dist/api/get-aws-client.js +10 -3
- package/dist/api/get-buckets.d.ts +0 -0
- package/dist/api/get-buckets.js +27 -10
- package/dist/api/get-compositions-on-lambda.d.ts +29 -0
- package/dist/api/get-compositions-on-lambda.js +54 -0
- package/dist/api/get-function-info.d.ts +2 -3
- package/dist/api/get-function-info.js +1 -1
- package/dist/api/get-functions.d.ts +1 -3
- package/dist/api/get-functions.js +3 -4
- package/dist/api/get-or-create-bucket.d.ts +2 -1
- package/dist/api/get-or-create-bucket.js +6 -11
- package/dist/api/get-regions.d.ts +6 -2
- package/dist/api/get-regions.js +6 -3
- package/dist/api/get-render-progress.d.ts +5 -2
- package/dist/api/get-render-progress.js +6 -2
- package/dist/api/get-sites.d.ts +2 -2
- package/dist/api/get-sites.js +1 -2
- package/dist/api/iam-validation/role-permissions.d.ts +0 -0
- package/dist/api/iam-validation/role-permissions.js +0 -0
- package/dist/api/iam-validation/simulate-rule.d.ts +0 -0
- package/dist/api/iam-validation/simulate-rule.js +0 -22
- package/dist/api/iam-validation/simulate.d.ts +1 -1
- package/dist/api/iam-validation/simulate.js +27 -6
- package/dist/api/iam-validation/suggested-policy.d.ts +0 -0
- package/dist/api/iam-validation/suggested-policy.js +0 -0
- package/dist/api/iam-validation/user-permissions.d.ts +1 -1
- package/dist/api/iam-validation/user-permissions.js +1 -8
- package/dist/api/mock-functions.d.ts +4 -5
- package/dist/api/mock-functions.js +0 -0
- package/dist/api/presign-url.d.ts +4 -4
- package/dist/api/presign-url.js +9 -4
- package/dist/api/render-media-on-lambda.d.ts +37 -16
- package/dist/api/render-media-on-lambda.js +88 -38
- package/dist/api/render-still-on-lambda.d.ts +11 -6
- package/dist/api/render-still-on-lambda.js +58 -31
- package/dist/api/speculate-function-name.d.ts +14 -0
- package/dist/api/speculate-function-name.js +22 -0
- package/dist/api/upload-dir.d.ts +4 -3
- package/dist/api/upload-dir.js +57 -50
- package/dist/api/validate-webhook-signature.d.ts +13 -0
- package/dist/api/validate-webhook-signature.js +32 -0
- package/dist/cli/args.d.ts +9 -4
- package/dist/cli/args.js +1 -5
- package/dist/cli/commands/compositions/index.d.ts +2 -0
- package/dist/cli/commands/compositions/index.js +44 -0
- package/dist/cli/commands/functions/deploy.d.ts +0 -0
- package/dist/cli/commands/functions/deploy.js +11 -13
- package/dist/cli/commands/functions/index.d.ts +0 -0
- package/dist/cli/commands/functions/index.js +16 -17
- package/dist/cli/commands/functions/ls.d.ts +0 -0
- package/dist/cli/commands/functions/ls.js +9 -7
- package/dist/cli/commands/functions/rm.d.ts +0 -0
- package/dist/cli/commands/functions/rm.js +8 -2
- package/dist/cli/commands/functions/rmall.d.ts +0 -0
- package/dist/cli/commands/functions/rmall.js +8 -2
- package/dist/cli/commands/policies/policies.d.ts +0 -0
- package/dist/cli/commands/policies/policies.js +0 -0
- package/dist/cli/commands/policies/role.d.ts +0 -0
- package/dist/cli/commands/policies/role.js +0 -0
- package/dist/cli/commands/policies/user.d.ts +0 -0
- package/dist/cli/commands/policies/user.js +0 -0
- package/dist/cli/commands/policies/validate.d.ts +0 -0
- package/dist/cli/commands/policies/validate.js +0 -0
- package/dist/cli/commands/quotas/increase.d.ts +0 -0
- package/dist/cli/commands/quotas/increase.js +28 -8
- package/dist/cli/commands/quotas/index.d.ts +0 -0
- package/dist/cli/commands/quotas/index.js +8 -9
- package/dist/cli/commands/quotas/list.d.ts +0 -0
- package/dist/cli/commands/quotas/list.js +0 -0
- package/dist/cli/commands/regions.d.ts +0 -0
- package/dist/cli/commands/regions.js +6 -2
- package/dist/cli/commands/render/progress.d.ts +9 -5
- package/dist/cli/commands/render/progress.js +66 -48
- package/dist/cli/commands/render/render.d.ts +1 -1
- package/dist/cli/commands/render/render.js +86 -29
- package/dist/cli/commands/sites/create.d.ts +1 -1
- package/dist/cli/commands/sites/create.js +30 -27
- package/dist/cli/commands/sites/index.d.ts +1 -1
- package/dist/cli/commands/sites/index.js +15 -16
- package/dist/cli/commands/sites/ls.d.ts +0 -0
- package/dist/cli/commands/sites/ls.js +10 -12
- package/dist/cli/commands/sites/rm.d.ts +0 -0
- package/dist/cli/commands/sites/rm.js +8 -19
- package/dist/cli/commands/sites/rmall.d.ts +0 -0
- package/dist/cli/commands/sites/rmall.js +7 -19
- package/dist/cli/commands/still.d.ts +1 -1
- package/dist/cli/commands/still.js +36 -27
- package/dist/cli/get-aws-region.d.ts +0 -0
- package/dist/cli/get-aws-region.js +2 -1
- package/dist/cli/help.d.ts +0 -0
- package/dist/cli/help.js +0 -0
- package/dist/cli/helpers/confirm.d.ts +0 -0
- package/dist/cli/helpers/confirm.js +0 -0
- package/dist/cli/helpers/date-string.d.ts +0 -0
- package/dist/cli/helpers/date-string.js +0 -0
- package/dist/cli/helpers/find-function-name.d.ts +0 -0
- package/dist/cli/helpers/find-function-name.js +37 -7
- package/dist/cli/helpers/progress-bar.d.ts +9 -3
- package/dist/cli/helpers/progress-bar.js +20 -8
- package/dist/cli/helpers/quit.d.ts +0 -0
- package/dist/cli/helpers/quit.js +0 -0
- package/dist/cli/helpers/yes-or-no.d.ts +0 -0
- package/dist/cli/helpers/yes-or-no.js +0 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +20 -9
- package/dist/cli/is-cli.d.ts +0 -0
- package/dist/cli/is-cli.js +0 -0
- package/dist/cli/log.d.ts +12 -0
- package/dist/cli/log.js +0 -0
- package/dist/client.d.ts +10 -2
- package/dist/client.js +11 -1
- package/dist/defaults.d.ts +0 -0
- package/dist/defaults.js +0 -0
- package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +2 -6
- package/dist/functions/chunk-optimization/plan-frame-ranges.js +7 -19
- package/dist/functions/chunk-optimization/types.d.ts +0 -11
- package/dist/functions/chunk-optimization/types.js +0 -0
- package/dist/functions/compositions.d.ts +8 -0
- package/dist/functions/compositions.js +56 -0
- package/dist/functions/helpers/best-frames-per-lambda-param.d.ts +0 -0
- package/dist/functions/helpers/best-frames-per-lambda-param.js +0 -0
- package/dist/functions/helpers/calculate-chunk-times.d.ts +0 -0
- package/dist/functions/helpers/calculate-chunk-times.js +0 -0
- package/dist/functions/helpers/calculate-price-from-bucket.d.ts +1 -3
- package/dist/functions/helpers/calculate-price-from-bucket.js +1 -2
- package/dist/functions/helpers/check-if-render-exists.d.ts +3 -0
- package/dist/functions/helpers/check-if-render-exists.js +14 -0
- package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
- package/dist/functions/helpers/clean-tmpdir.js +1 -1
- package/dist/functions/helpers/concat-videos.d.ts +15 -6
- package/dist/functions/helpers/concat-videos.js +33 -32
- package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/create-post-render-data.js +1 -10
- package/dist/functions/helpers/delete-chunks.d.ts +0 -0
- package/dist/functions/helpers/delete-chunks.js +0 -0
- package/dist/functions/helpers/expected-out-name.d.ts +4 -2
- package/dist/functions/helpers/expected-out-name.js +27 -6
- package/dist/functions/helpers/find-output-file-in-bucket.d.ts +3 -1
- package/dist/functions/helpers/find-output-file-in-bucket.js +17 -9
- package/dist/functions/helpers/format-costs-info.d.ts +0 -0
- package/dist/functions/helpers/format-costs-info.js +0 -0
- package/dist/functions/helpers/get-browser-instance.d.ts +0 -0
- package/dist/functions/helpers/get-browser-instance.js +2 -2
- package/dist/functions/helpers/get-chromium-executable-path.d.ts +1 -1
- package/dist/functions/helpers/get-chromium-executable-path.js +3 -2
- package/dist/functions/helpers/get-cleanup-progress.d.ts +0 -0
- package/dist/functions/helpers/get-cleanup-progress.js +0 -0
- package/dist/functions/helpers/get-current-region.d.ts +1 -1
- package/dist/functions/helpers/get-current-region.js +0 -0
- package/dist/functions/helpers/get-custom-out-name.d.ts +6 -0
- package/dist/functions/helpers/get-custom-out-name.js +31 -0
- package/dist/functions/helpers/get-encoding-metadata.d.ts +5 -8
- package/dist/functions/helpers/get-encoding-metadata.js +7 -17
- package/dist/functions/helpers/get-files-in-folder.d.ts +0 -0
- package/dist/functions/helpers/get-files-in-folder.js +0 -0
- package/dist/functions/helpers/get-files-to-delete.d.ts +0 -0
- package/dist/functions/helpers/get-files-to-delete.js +1 -1
- package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -4
- package/dist/functions/helpers/get-final-encoding-status.js +1 -4
- package/dist/functions/helpers/get-folder-size.d.ts +0 -0
- package/dist/functions/helpers/get-folder-size.js +0 -0
- package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +4 -3
- package/dist/functions/helpers/get-lambdas-invoked-stats.js +2 -10
- package/dist/functions/helpers/get-output-url-from-metadata.d.ts +2 -1
- package/dist/functions/helpers/get-output-url-from-metadata.js +2 -2
- package/dist/functions/helpers/get-overall-progress.d.ts +2 -1
- package/dist/functions/helpers/get-overall-progress.js +7 -5
- package/dist/functions/helpers/get-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/get-post-render-data.js +0 -0
- package/dist/functions/helpers/get-progress.d.ts +4 -2
- package/dist/functions/helpers/get-progress.js +58 -44
- package/dist/functions/helpers/get-render-metadata.d.ts +0 -0
- package/dist/functions/helpers/get-render-metadata.js +0 -0
- package/dist/functions/helpers/get-rendered-frames-progress.d.ts +8 -0
- package/dist/functions/helpers/get-rendered-frames-progress.js +37 -0
- package/dist/functions/helpers/get-retry-stats.d.ts +0 -0
- package/dist/functions/helpers/get-retry-stats.js +1 -1
- package/dist/functions/helpers/get-time-to-finish.d.ts +0 -0
- package/dist/functions/helpers/get-time-to-finish.js +0 -0
- package/dist/functions/helpers/inspect-errors.d.ts +0 -0
- package/dist/functions/helpers/inspect-errors.js +0 -0
- package/dist/functions/helpers/io.d.ts +19 -1
- package/dist/functions/helpers/io.js +31 -8
- package/dist/functions/helpers/is-enosp-err.d.ts +0 -0
- package/dist/functions/helpers/is-enosp-err.js +1 -1
- package/dist/functions/helpers/is-warm.d.ts +0 -0
- package/dist/functions/helpers/is-warm.js +0 -0
- package/dist/functions/helpers/make-timeout-error.d.ts +8 -0
- package/dist/functions/helpers/make-timeout-error.js +48 -0
- package/dist/functions/helpers/min-max.d.ts +1 -1
- package/dist/functions/helpers/min-max.js +1 -1
- package/dist/functions/helpers/print-cloudwatch-helper.d.ts +1 -1
- package/dist/functions/helpers/print-cloudwatch-helper.js +0 -0
- package/dist/functions/helpers/print-concurrency-curve.d.ts +0 -0
- package/dist/functions/helpers/print-concurrency-curve.js +0 -0
- package/dist/functions/helpers/read-with-progress.d.ts +5 -2
- package/dist/functions/helpers/read-with-progress.js +16 -4
- package/dist/functions/helpers/timer.d.ts +0 -0
- package/dist/functions/helpers/timer.js +0 -0
- package/dist/functions/helpers/validate-composition.d.ts +6 -5
- package/dist/functions/helpers/validate-composition.js +9 -4
- package/dist/functions/helpers/write-lambda-error.d.ts +1 -1
- package/dist/functions/helpers/write-lambda-error.js +2 -0
- package/dist/functions/helpers/write-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/write-post-render-data.js +2 -0
- package/dist/functions/index.d.ts +15 -4
- package/dist/functions/index.js +30 -11
- package/dist/functions/info.d.ts +2 -2
- package/dist/functions/info.js +2 -1
- package/dist/functions/launch.d.ts +1 -0
- package/dist/functions/launch.js +359 -129
- package/dist/functions/progress.d.ts +1 -1
- package/dist/functions/progress.js +10 -1
- package/dist/functions/renderer.d.ts +0 -0
- package/dist/functions/renderer.js +144 -77
- package/dist/functions/start.d.ts +5 -1
- package/dist/functions/start.js +44 -6
- package/dist/functions/still.d.ts +0 -0
- package/dist/functions/still.js +72 -25
- package/dist/index.d.ts +28 -8
- package/dist/index.js +27 -6
- package/dist/internals.d.ts +1 -1
- package/dist/internals.js +0 -0
- package/dist/pricing/aws-regions.d.ts +2 -1
- package/dist/pricing/aws-regions.js +31 -1
- package/dist/pricing/price-per-1-s.d.ts +0 -0
- package/dist/pricing/price-per-1-s.js +413 -39
- package/dist/regions.d.ts +0 -0
- package/dist/regions.js +0 -0
- package/dist/shared/await.d.ts +0 -0
- package/dist/shared/await.js +0 -0
- package/dist/shared/aws-clients.d.ts +16 -2
- package/dist/shared/aws-clients.js +118 -26
- package/dist/shared/bundle-site.d.ts +2 -6
- package/dist/shared/bundle-site.js +0 -0
- package/dist/shared/call-lambda.d.ts +0 -0
- package/dist/shared/call-lambda.js +0 -0
- package/dist/shared/check-credentials.d.ts +0 -0
- package/dist/shared/check-credentials.js +5 -2
- package/dist/shared/chunk-progress.d.ts +9 -0
- package/dist/shared/chunk-progress.js +2034 -0
- package/dist/shared/cleanup-serialized-input-props.d.ts +7 -0
- package/dist/shared/cleanup-serialized-input-props.js +19 -0
- package/dist/shared/constants.d.ts +126 -44
- package/dist/shared/constants.js +21 -11
- package/dist/shared/content-disposition-header.d.ts +7 -0
- package/dist/shared/content-disposition-header.js +19 -0
- package/dist/shared/convert-to-serve-url.d.ts +5 -1
- package/dist/shared/convert-to-serve-url.js +1 -5
- package/dist/shared/deserialize-input-props.d.ts +8 -0
- package/dist/shared/deserialize-input-props.js +26 -0
- package/dist/shared/docs-url.d.ts +0 -0
- package/dist/shared/docs-url.js +0 -0
- package/dist/shared/function-zip-path.d.ts +1 -1
- package/dist/shared/function-zip-path.js +2 -2
- package/dist/shared/get-account-id.d.ts +0 -0
- package/dist/shared/get-account-id.js +4 -6
- package/dist/shared/get-aws-urls.d.ts +14 -0
- package/dist/shared/get-aws-urls.js +12 -0
- package/dist/shared/get-etag.d.ts +1 -0
- package/dist/shared/get-etag.js +24 -0
- package/dist/shared/get-function-version.d.ts +1 -2
- package/dist/shared/get-function-version.js +0 -0
- package/dist/shared/get-most-expensive-chunks.d.ts +1 -1
- package/dist/shared/get-most-expensive-chunks.js +3 -2
- package/dist/shared/get-s3-operations.d.ts +10 -0
- package/dist/shared/get-s3-operations.js +36 -0
- package/dist/shared/hosted-layers.d.ts +4 -7
- package/dist/shared/hosted-layers.js +294 -284
- package/dist/shared/invoke-webhook.d.ts +46 -0
- package/dist/shared/invoke-webhook.js +89 -0
- package/dist/shared/is-in-lambda.d.ts +0 -0
- package/dist/shared/is-in-lambda.js +5 -1
- package/dist/shared/lambda-version-string.d.ts +1 -0
- package/dist/shared/lambda-version-string.js +7 -0
- package/dist/shared/make-s3-key.d.ts +0 -0
- package/dist/shared/make-s3-key.js +0 -0
- package/dist/shared/make-s3-url.d.ts +0 -0
- package/dist/shared/make-s3-url.js +0 -0
- package/dist/shared/p-limit.d.ts +0 -0
- package/dist/shared/p-limit.js +0 -0
- package/dist/shared/parse-chunk-key.d.ts +4 -0
- package/dist/shared/parse-chunk-key.js +14 -0
- package/dist/shared/parse-lambda-initialized-key.d.ts +0 -0
- package/dist/shared/parse-lambda-initialized-key.js +0 -0
- package/dist/shared/parse-lambda-timings-key.d.ts +0 -0
- package/dist/shared/parse-lambda-timings-key.js +0 -0
- package/dist/shared/random-hash.d.ts +0 -0
- package/dist/shared/random-hash.js +0 -0
- package/dist/shared/read-dir.d.ts +9 -0
- package/dist/shared/read-dir.js +57 -0
- package/dist/shared/return-values.d.ts +2 -0
- package/dist/shared/return-values.js +0 -0
- package/dist/shared/serialize-input-props.d.ts +8 -0
- package/dist/shared/serialize-input-props.js +42 -0
- package/dist/shared/sleep.d.ts +0 -0
- package/dist/shared/sleep.js +0 -0
- package/dist/shared/stream-to-string.d.ts +0 -0
- package/dist/shared/stream-to-string.js +0 -0
- package/dist/shared/truthy.d.ts +3 -0
- package/dist/shared/truthy.js +7 -0
- package/dist/shared/validate-aws-region.d.ts +0 -0
- package/dist/shared/validate-aws-region.js +0 -0
- package/dist/shared/validate-bucketname.d.ts +5 -0
- package/dist/shared/validate-bucketname.js +19 -1
- package/dist/shared/validate-custom-role-arn.d.ts +0 -0
- package/dist/shared/validate-custom-role-arn.js +0 -0
- package/dist/shared/validate-disk-size-in-mb.d.ts +0 -0
- package/dist/shared/validate-disk-size-in-mb.js +0 -0
- package/dist/shared/validate-download-behavior.d.ts +1 -0
- package/dist/shared/validate-download-behavior.js +21 -0
- package/dist/shared/validate-frames-per-lambda.d.ts +4 -1
- package/dist/shared/validate-frames-per-lambda.js +4 -3
- package/dist/shared/validate-lambda-codec.d.ts +4 -0
- package/dist/shared/validate-lambda-codec.js +30 -0
- package/dist/shared/validate-memory-size.d.ts +0 -0
- package/dist/shared/validate-memory-size.js +0 -0
- package/dist/shared/validate-outname.d.ts +3 -2
- package/dist/shared/validate-outname.js +13 -3
- package/dist/shared/validate-presign-expiration.d.ts +0 -2
- package/dist/shared/validate-presign-expiration.js +7 -7
- package/dist/shared/validate-privacy.d.ts +0 -0
- package/dist/shared/validate-privacy.js +2 -2
- package/dist/shared/validate-retention-period.d.ts +0 -0
- package/dist/shared/validate-retention-period.js +0 -0
- package/dist/shared/validate-retries.d.ts +0 -0
- package/dist/shared/validate-retries.js +0 -0
- package/dist/shared/validate-serveurl.d.ts +0 -0
- package/dist/shared/validate-serveurl.js +0 -0
- package/dist/shared/validate-site-name.d.ts +0 -0
- package/dist/shared/validate-site-name.js +0 -0
- package/dist/shared/validate-timeout.d.ts +0 -0
- package/dist/shared/validate-timeout.js +0 -0
- package/package.json +53 -27
- package/remotionlambda-arm64.zip +0 -0
- package/remotionlambda-x64.zip +0 -0
- package/remotionlambda.zip +0 -0
- package/.prettierrc.js +0 -14
- package/client.d.ts +0 -1
- package/client.js +0 -1
- package/dist/api/enable-s3-website.d.ts +0 -5
- package/dist/api/enable-s3-website.js +0 -16
- package/dist/cli/helpers/format-bytes.d.ts +0 -6
- package/dist/cli/helpers/format-bytes.js +0 -103
- package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +0 -8
- package/dist/cli/helpers/get-cloudwatch-stream-url.js +0 -7
- package/dist/functions/chunk-optimization/can-use-optimization.d.ts +0 -6
- package/dist/functions/chunk-optimization/can-use-optimization.js +0 -23
- package/dist/functions/chunk-optimization/collect-data.d.ts +0 -9
- package/dist/functions/chunk-optimization/collect-data.js +0 -27
- package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +0 -3
- package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.js +0 -11
- package/dist/functions/chunk-optimization/get-profile-duration.d.ts +0 -3
- package/dist/functions/chunk-optimization/get-profile-duration.js +0 -18
- package/dist/functions/chunk-optimization/is-valid-profile.d.ts +0 -2
- package/dist/functions/chunk-optimization/is-valid-profile.js +0 -12
- package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +0 -2
- package/dist/functions/chunk-optimization/optimize-invocation-order.js +0 -19
- package/dist/functions/chunk-optimization/optimize-profile.d.ts +0 -9
- package/dist/functions/chunk-optimization/optimize-profile.js +0 -74
- package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +0 -17
- package/dist/functions/chunk-optimization/s3-optimization-file.js +0 -45
- package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +0 -7
- package/dist/functions/chunk-optimization/simulate-frame-ranges.js +0 -47
- package/dist/functions/chunk-optimization/sort-by-duration.d.ts +0 -2
- package/dist/functions/chunk-optimization/sort-by-duration.js +0 -25
- package/dist/functions/helpers/get-current-architecture.d.ts +0 -2
- package/dist/functions/helpers/get-current-architecture.js +0 -11
- package/dist/shared/chunk.d.ts +0 -1
- package/dist/shared/chunk.js +0 -11
- package/dist/shared/validate-architecture.d.ts +0 -4
- package/dist/shared/validate-architecture.js +0 -14
- package/tsconfig.json +0 -16
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.progressHandler = void 0;
|
|
4
|
+
const version_1 = require("remotion/version");
|
|
4
5
|
const constants_1 = require("../shared/constants");
|
|
5
6
|
const get_current_region_1 = require("./helpers/get-current-region");
|
|
6
7
|
const get_progress_1 = require("./helpers/get-progress");
|
|
7
8
|
const progressHandler = (lambdaParams, options) => {
|
|
9
|
+
var _a;
|
|
8
10
|
if (lambdaParams.type !== constants_1.LambdaRoutines.status) {
|
|
9
11
|
throw new TypeError('Expected status type');
|
|
10
12
|
}
|
|
13
|
+
if (lambdaParams.version !== version_1.VERSION) {
|
|
14
|
+
if (!lambdaParams.version) {
|
|
15
|
+
throw new Error(`Version mismatch: When calling getRenderProgress(), you called the function ${process.env.AWS_LAMBDA_FUNCTION_NAME} which has the version ${version_1.VERSION} but the @remotion/lambda package is an older version. Deploy a new function and use it to call getRenderProgress(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
16
|
+
}
|
|
17
|
+
throw new Error(`Version mismatch: When calling getRenderProgress(), you passed ${process.env.AWS_LAMBDA_FUNCTION_NAME} as the function, which has the version ${version_1.VERSION}, but the @remotion/lambda package you used to invoke the function has version ${lambdaParams.version}. Deploy a new function and use it to call getRenderProgress(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
18
|
+
}
|
|
11
19
|
return (0, get_progress_1.getProgress)({
|
|
12
20
|
bucketName: lambdaParams.bucketName,
|
|
13
21
|
renderId: lambdaParams.renderId,
|
|
14
22
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
15
23
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
16
24
|
memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
|
|
17
|
-
|
|
25
|
+
timeoutInMilliseconds: options.timeoutInMilliseconds,
|
|
26
|
+
customCredentials: (_a = lambdaParams.s3OutputProvider) !== null && _a !== void 0 ? _a : null,
|
|
18
27
|
});
|
|
19
28
|
};
|
|
20
29
|
exports.progressHandler = progressHandler;
|
|
File without changes
|
|
@@ -8,23 +8,31 @@ const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
|
8
8
|
const renderer_1 = require("@remotion/renderer");
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const
|
|
11
|
+
const version_1 = require("remotion/version");
|
|
12
12
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
13
|
+
const chunk_progress_1 = require("../shared/chunk-progress");
|
|
13
14
|
const constants_1 = require("../shared/constants");
|
|
14
|
-
const
|
|
15
|
+
const deserialize_input_props_1 = require("../shared/deserialize-input-props");
|
|
15
16
|
const get_browser_instance_1 = require("./helpers/get-browser-instance");
|
|
17
|
+
const get_chromium_executable_path_1 = require("./helpers/get-chromium-executable-path");
|
|
16
18
|
const get_current_region_1 = require("./helpers/get-current-region");
|
|
17
|
-
const get_files_in_folder_1 = require("./helpers/get-files-in-folder");
|
|
18
|
-
const get_folder_size_1 = require("./helpers/get-folder-size");
|
|
19
19
|
const io_1 = require("./helpers/io");
|
|
20
20
|
const write_lambda_error_1 = require("./helpers/write-lambda-error");
|
|
21
21
|
const renderHandler = async (params, options, logs) => {
|
|
22
|
-
var _a
|
|
22
|
+
var _a;
|
|
23
23
|
if (params.type !== constants_1.LambdaRoutines.renderer) {
|
|
24
24
|
throw new Error('Params must be renderer');
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
if (params.launchFunctionConfig.version !== version_1.VERSION) {
|
|
27
|
+
throw new Error(`The version of the function that was specified as "rendererFunctionName" is ${version_1.VERSION} but the version of the function that invoked the render is ${params.launchFunctionConfig.version}. Please make sure that the version of the function that is specified as "rendererFunctionName" is the same as the version of the function that is invoked.`);
|
|
28
|
+
}
|
|
29
|
+
const inputPropsPromise = (0, deserialize_input_props_1.deserializeInputProps)({
|
|
30
|
+
bucketName: params.bucketName,
|
|
31
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
32
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
33
|
+
serialized: params.inputProps,
|
|
34
|
+
});
|
|
35
|
+
const browserInstance = await (0, get_browser_instance_1.getBrowserInstance)(renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'), (_a = params.chromiumOptions) !== null && _a !== void 0 ? _a : {});
|
|
28
36
|
const outputPath = renderer_1.RenderInternals.tmpDir('remotion-render-');
|
|
29
37
|
if (typeof params.chunk !== 'number') {
|
|
30
38
|
throw new Error('must pass chunk');
|
|
@@ -40,77 +48,126 @@ const renderHandler = async (params, options, logs) => {
|
|
|
40
48
|
startDate: start,
|
|
41
49
|
};
|
|
42
50
|
const outdir = renderer_1.RenderInternals.tmpDir(constants_1.RENDERER_PATH_TOKEN);
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
51
|
+
const chunkCodec = params.codec === 'gif' || params.codec === 'h264'
|
|
52
|
+
? 'h264-mkv'
|
|
53
|
+
: params.codec;
|
|
54
|
+
const outputLocation = path_1.default.join(outdir, `localchunk-${String(params.chunk).padStart(8, '0')}.${renderer_1.RenderInternals.getFileExtensionFromCodec(chunkCodec, renderer_1.RenderInternals.getDefaultAudioCodec({
|
|
55
|
+
codec: params.codec,
|
|
56
|
+
preferLossless: true,
|
|
57
|
+
}))}`);
|
|
58
|
+
const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
|
|
59
|
+
const downloads = {};
|
|
60
|
+
const inputProps = await inputPropsPromise;
|
|
61
|
+
await new Promise((resolve, reject) => {
|
|
62
|
+
var _a;
|
|
63
|
+
(0, renderer_1.renderMedia)({
|
|
64
|
+
composition: {
|
|
65
|
+
id: params.composition,
|
|
66
|
+
durationInFrames: params.durationInFrames,
|
|
67
|
+
fps: params.fps,
|
|
68
|
+
height: params.height,
|
|
69
|
+
width: params.width,
|
|
70
|
+
},
|
|
71
|
+
imageFormat: params.imageFormat,
|
|
72
|
+
inputProps,
|
|
73
|
+
frameRange: params.frameRange,
|
|
74
|
+
onProgress: ({ renderedFrames, encodedFrames, stitchStage }) => {
|
|
75
|
+
if (renderedFrames % 5 === 0 &&
|
|
76
|
+
renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose')) {
|
|
77
|
+
console.log(`Rendered ${renderedFrames} frames, encoded ${encodedFrames} frames, stage = ${stitchStage}`);
|
|
78
|
+
(0, chunk_progress_1.writeLambdaInitializedFile)({
|
|
79
|
+
attempt: params.attempt,
|
|
80
|
+
bucketName: params.bucketName,
|
|
81
|
+
chunk: params.chunk,
|
|
82
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
83
|
+
framesRendered: renderedFrames,
|
|
84
|
+
renderId: params.renderId,
|
|
85
|
+
}).catch((err) => reject(err));
|
|
86
|
+
}
|
|
87
|
+
const allFrames = renderer_1.RenderInternals.getFramesToRender(params.frameRange, params.everyNthFrame);
|
|
88
|
+
if (renderedFrames === allFrames.length) {
|
|
89
|
+
console.log('Rendered all frames!');
|
|
90
|
+
}
|
|
91
|
+
chunkTimingData.timings[renderedFrames] = Date.now() - start;
|
|
92
|
+
},
|
|
93
|
+
concurrency: params.concurrencyPerLambda,
|
|
94
|
+
onStart: () => {
|
|
95
|
+
(0, chunk_progress_1.writeLambdaInitializedFile)({
|
|
82
96
|
attempt: params.attempt,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
97
|
+
bucketName: params.bucketName,
|
|
98
|
+
chunk: params.chunk,
|
|
99
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
100
|
+
framesRendered: 0,
|
|
101
|
+
renderId: params.renderId,
|
|
102
|
+
}).catch((err) => reject(err));
|
|
103
|
+
},
|
|
104
|
+
puppeteerInstance: browserInstance,
|
|
105
|
+
serveUrl: params.serveUrl,
|
|
106
|
+
quality: params.quality,
|
|
107
|
+
envVariables: params.envVariables,
|
|
108
|
+
dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'),
|
|
109
|
+
verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose'),
|
|
110
|
+
onBrowserLog: (log) => {
|
|
111
|
+
logs.push(log);
|
|
112
|
+
},
|
|
113
|
+
outputLocation,
|
|
114
|
+
codec: chunkCodec,
|
|
115
|
+
crf: (_a = params.crf) !== null && _a !== void 0 ? _a : undefined,
|
|
116
|
+
pixelFormat: params.pixelFormat,
|
|
117
|
+
proResProfile: params.proResProfile,
|
|
118
|
+
onDownload: (src) => {
|
|
119
|
+
console.log('Downloading', src);
|
|
120
|
+
downloads[src] = 0;
|
|
121
|
+
return ({ percent, downloaded }) => {
|
|
122
|
+
if (percent === null) {
|
|
123
|
+
console.log(`Download progress (${src}): ${downloaded} bytes. Don't know final size of download, no Content-Length header.`);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (
|
|
127
|
+
// Only report every 10% change
|
|
128
|
+
downloads[src] > percent - 0.1 &&
|
|
129
|
+
percent !== 1) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
downloads[src] = percent;
|
|
133
|
+
console.log(`Download progress (${src}): ${downloaded} bytes, ${(percent * 100).toFixed(1)}%`);
|
|
134
|
+
if (percent === 1) {
|
|
135
|
+
console.log(`Download complete: ${src}`);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
},
|
|
139
|
+
overwrite: false,
|
|
140
|
+
chromiumOptions: params.chromiumOptions,
|
|
141
|
+
scale: params.scale,
|
|
142
|
+
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
143
|
+
port: null,
|
|
144
|
+
everyNthFrame: params.everyNthFrame,
|
|
145
|
+
numberOfGifLoops: null,
|
|
146
|
+
internal: {
|
|
147
|
+
downloadMap,
|
|
148
|
+
},
|
|
149
|
+
muted: params.muted,
|
|
150
|
+
enforceAudioTrack: true,
|
|
151
|
+
audioBitrate: params.audioBitrate,
|
|
152
|
+
videoBitrate: params.videoBitrate,
|
|
153
|
+
// Lossless flag takes priority over audio codec
|
|
154
|
+
// https://github.com/remotion-dev/remotion/issues/1647
|
|
155
|
+
// Special flag only in Lambda renderer which improves the audio quality
|
|
156
|
+
audioCodec: null,
|
|
157
|
+
preferLossless: true,
|
|
158
|
+
browserExecutable: (0, get_chromium_executable_path_1.executablePath)(),
|
|
159
|
+
})
|
|
160
|
+
.then(({ slowestFrames }) => {
|
|
161
|
+
console.log();
|
|
162
|
+
console.log(`Slowest frames:`);
|
|
163
|
+
slowestFrames.forEach(({ frame, time }) => {
|
|
164
|
+
console.log(`Frame ${frame} (${time.toFixed(3)}ms)`);
|
|
86
165
|
});
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
quality: params.quality,
|
|
91
|
-
envVariables: params.envVariables,
|
|
92
|
-
dumpBrowserLogs: remotion_1.Internals.Logging.isEqualOrBelowLogLevel(params.logLevel, 'verbose'),
|
|
93
|
-
onBrowserLog: (log) => {
|
|
94
|
-
logs.push(log);
|
|
95
|
-
},
|
|
96
|
-
outputLocation,
|
|
97
|
-
codec: params.codec,
|
|
98
|
-
crf: (_b = params.crf) !== null && _b !== void 0 ? _b : undefined,
|
|
99
|
-
ffmpegExecutable: process.env.NODE_ENV === 'test' ? null : '/opt/bin/ffmpeg',
|
|
100
|
-
pixelFormat: params.pixelFormat,
|
|
101
|
-
proResProfile: params.proResProfile,
|
|
102
|
-
onDownload: (src) => {
|
|
103
|
-
console.log('Downloading', src);
|
|
104
|
-
return () => undefined;
|
|
105
|
-
},
|
|
106
|
-
overwrite: false,
|
|
107
|
-
chromiumOptions: params.chromiumOptions,
|
|
108
|
-
scale: params.scale,
|
|
109
|
-
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
110
|
-
port: null,
|
|
166
|
+
resolve();
|
|
167
|
+
})
|
|
168
|
+
.catch((err) => reject(err));
|
|
111
169
|
});
|
|
112
170
|
const endRendered = Date.now();
|
|
113
|
-
console.log('Adding silent audio, chunk', params.chunk);
|
|
114
171
|
const condensedTimingData = {
|
|
115
172
|
...chunkTimingData,
|
|
116
173
|
timings: Object.values(chunkTimingData.timings),
|
|
@@ -125,6 +182,8 @@ const renderHandler = async (params, options, logs) => {
|
|
|
125
182
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
126
183
|
privacy: params.privacy,
|
|
127
184
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
185
|
+
downloadBehavior: null,
|
|
186
|
+
customCredentials: null,
|
|
128
187
|
});
|
|
129
188
|
await Promise.all([
|
|
130
189
|
fs_1.default.promises.rm(outputLocation, { recursive: true }),
|
|
@@ -132,16 +191,19 @@ const renderHandler = async (params, options, logs) => {
|
|
|
132
191
|
(0, io_1.lambdaWriteFile)({
|
|
133
192
|
bucketName: params.bucketName,
|
|
134
193
|
body: JSON.stringify(condensedTimingData, null, 2),
|
|
135
|
-
key:
|
|
194
|
+
key: (0, constants_1.lambdaTimingsKey)({
|
|
136
195
|
renderId: params.renderId,
|
|
137
196
|
chunk: params.chunk,
|
|
138
197
|
rendered: endRendered,
|
|
139
198
|
start,
|
|
140
|
-
})
|
|
199
|
+
}),
|
|
141
200
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
142
201
|
privacy: 'private',
|
|
143
202
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
203
|
+
downloadBehavior: null,
|
|
204
|
+
customCredentials: null,
|
|
144
205
|
}),
|
|
206
|
+
renderer_1.RenderInternals.cleanDownloadMap(downloadMap),
|
|
145
207
|
]);
|
|
146
208
|
};
|
|
147
209
|
const rendererHandler = async (params, options) => {
|
|
@@ -153,11 +215,16 @@ const rendererHandler = async (params, options) => {
|
|
|
153
215
|
await renderHandler(params, options, logs);
|
|
154
216
|
}
|
|
155
217
|
catch (err) {
|
|
218
|
+
if (process.env.NODE_ENV === 'test') {
|
|
219
|
+
console.log({ err });
|
|
220
|
+
throw err;
|
|
221
|
+
}
|
|
156
222
|
// If this error is encountered, we can just retry as it
|
|
157
223
|
// is a very rare error to occur
|
|
158
224
|
const isBrowserError = err.message.includes('FATAL:zygote_communication_linux.cc') ||
|
|
159
225
|
err.message.includes('error while loading shared libraries: libnss3.so');
|
|
160
|
-
const
|
|
226
|
+
const shouldNotRetry = err.name === 'CancelledError';
|
|
227
|
+
const willRetry = (isBrowserError || params.retriesLeft > 0) && !shouldNotRetry;
|
|
161
228
|
console.log('Error occurred');
|
|
162
229
|
console.log(err);
|
|
163
230
|
await (0, write_lambda_error_1.writeLambdaError)({
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { LambdaPayload } from '../shared/constants';
|
|
2
|
-
|
|
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 {};
|
package/dist/functions/start.js
CHANGED
|
@@ -2,26 +2,50 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.startHandler = void 0;
|
|
4
4
|
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
5
|
-
const
|
|
5
|
+
const version_1 = require("remotion/version");
|
|
6
6
|
const get_or_create_bucket_1 = require("../api/get-or-create-bucket");
|
|
7
7
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
8
8
|
const constants_1 = require("../shared/constants");
|
|
9
|
+
const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
|
|
9
10
|
const random_hash_1 = require("../shared/random-hash");
|
|
10
11
|
const get_current_region_1 = require("./helpers/get-current-region");
|
|
11
|
-
const
|
|
12
|
-
|
|
12
|
+
const io_1 = require("./helpers/io");
|
|
13
|
+
const startHandler = async (params, options) => {
|
|
14
|
+
var _a, _b;
|
|
13
15
|
if (params.type !== constants_1.LambdaRoutines.start) {
|
|
14
16
|
throw new TypeError('Expected type start');
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
if (params.version !== version_1.VERSION) {
|
|
19
|
+
if (!params.version) {
|
|
20
|
+
throw new Error(`Version mismatch: When calling renderMediaOnLambda(), you called the function ${process.env.AWS_LAMBDA_FUNCTION_NAME} which has the version ${version_1.VERSION} but the @remotion/lambda package is an older version. Deploy a new function and use it to call renderMediaOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
21
|
+
}
|
|
22
|
+
throw new Error(`Version mismatch: When calling renderMediaOnLambda(), you passed ${process.env.AWS_LAMBDA_FUNCTION_NAME} as the function, which has the version ${version_1.VERSION}, but the @remotion/lambda package you used to invoke the function has version ${params.version}. Deploy a new function and use it to call renderMediaOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
23
|
+
}
|
|
24
|
+
const region = (0, get_current_region_1.getCurrentRegionInFunction)();
|
|
25
|
+
const bucketName = (_a = params.bucketName) !== null && _a !== void 0 ? _a : (await (0, get_or_create_bucket_1.getOrCreateBucket)({
|
|
17
26
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
27
|
+
})).bucketName;
|
|
28
|
+
const realServeUrl = (0, convert_to_serve_url_1.convertToServeUrl)({
|
|
29
|
+
urlOrId: params.serveUrl,
|
|
30
|
+
region,
|
|
31
|
+
bucketName,
|
|
18
32
|
});
|
|
19
33
|
const renderId = (0, random_hash_1.randomHash)({ randomInTests: true });
|
|
34
|
+
const initialFile = (0, io_1.lambdaWriteFile)({
|
|
35
|
+
bucketName,
|
|
36
|
+
downloadBehavior: null,
|
|
37
|
+
region,
|
|
38
|
+
body: 'Render was initialized',
|
|
39
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
40
|
+
key: (0, constants_1.initalizedMetadataKey)(renderId),
|
|
41
|
+
privacy: 'private',
|
|
42
|
+
customCredentials: null,
|
|
43
|
+
});
|
|
20
44
|
const payload = {
|
|
21
45
|
type: constants_1.LambdaRoutines.launch,
|
|
22
46
|
framesPerLambda: params.framesPerLambda,
|
|
23
47
|
composition: params.composition,
|
|
24
|
-
serveUrl:
|
|
48
|
+
serveUrl: realServeUrl,
|
|
25
49
|
inputProps: params.inputProps,
|
|
26
50
|
bucketName,
|
|
27
51
|
renderId,
|
|
@@ -34,12 +58,25 @@ const startHandler = async (params) => {
|
|
|
34
58
|
quality: params.quality,
|
|
35
59
|
maxRetries: params.maxRetries,
|
|
36
60
|
privacy: params.privacy,
|
|
37
|
-
logLevel: (
|
|
61
|
+
logLevel: (_b = params.logLevel) !== null && _b !== void 0 ? _b : 'info',
|
|
38
62
|
frameRange: params.frameRange,
|
|
39
63
|
outName: params.outName,
|
|
40
64
|
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
41
65
|
chromiumOptions: params.chromiumOptions,
|
|
42
66
|
scale: params.scale,
|
|
67
|
+
numberOfGifLoops: params.numberOfGifLoops,
|
|
68
|
+
everyNthFrame: params.everyNthFrame,
|
|
69
|
+
concurrencyPerLambda: params.concurrencyPerLambda,
|
|
70
|
+
downloadBehavior: params.downloadBehavior,
|
|
71
|
+
muted: params.muted,
|
|
72
|
+
overwrite: params.overwrite,
|
|
73
|
+
webhook: params.webhook,
|
|
74
|
+
audioBitrate: params.audioBitrate,
|
|
75
|
+
videoBitrate: params.videoBitrate,
|
|
76
|
+
forceHeight: params.forceHeight,
|
|
77
|
+
forceWidth: params.forceWidth,
|
|
78
|
+
rendererFunctionName: params.rendererFunctionName,
|
|
79
|
+
audioCodec: params.audioCodec,
|
|
43
80
|
};
|
|
44
81
|
await (0, aws_clients_1.getLambdaClient)((0, get_current_region_1.getCurrentRegionInFunction)()).send(new client_lambda_1.InvokeCommand({
|
|
45
82
|
FunctionName: process.env.AWS_LAMBDA_FUNCTION_NAME,
|
|
@@ -47,6 +84,7 @@ const startHandler = async (params) => {
|
|
|
47
84
|
Payload: JSON.stringify(payload),
|
|
48
85
|
InvocationType: 'Event',
|
|
49
86
|
}));
|
|
87
|
+
await initialFile;
|
|
50
88
|
return {
|
|
51
89
|
bucketName,
|
|
52
90
|
renderId,
|
|
File without changes
|
package/dist/functions/still.js
CHANGED
|
@@ -8,19 +8,23 @@ const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
|
8
8
|
const renderer_1 = require("@remotion/renderer");
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const
|
|
11
|
+
const version_1 = require("remotion/version");
|
|
12
12
|
const estimate_price_1 = require("../api/estimate-price");
|
|
13
13
|
const get_or_create_bucket_1 = require("../api/get-or-create-bucket");
|
|
14
14
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
15
|
+
const cleanup_serialized_input_props_1 = require("../shared/cleanup-serialized-input-props");
|
|
15
16
|
const constants_1 = require("../shared/constants");
|
|
17
|
+
const convert_to_serve_url_1 = require("../shared/convert-to-serve-url");
|
|
18
|
+
const deserialize_input_props_1 = require("../shared/deserialize-input-props");
|
|
16
19
|
const make_s3_url_1 = require("../shared/make-s3-url");
|
|
17
20
|
const random_hash_1 = require("../shared/random-hash");
|
|
21
|
+
const validate_download_behavior_1 = require("../shared/validate-download-behavior");
|
|
18
22
|
const validate_outname_1 = require("../shared/validate-outname");
|
|
19
23
|
const validate_privacy_1 = require("../shared/validate-privacy");
|
|
20
24
|
const expected_out_name_1 = require("./helpers/expected-out-name");
|
|
21
25
|
const format_costs_info_1 = require("./helpers/format-costs-info");
|
|
22
26
|
const get_browser_instance_1 = require("./helpers/get-browser-instance");
|
|
23
|
-
const
|
|
27
|
+
const get_chromium_executable_path_1 = require("./helpers/get-chromium-executable-path");
|
|
24
28
|
const get_current_region_1 = require("./helpers/get-current-region");
|
|
25
29
|
const get_output_url_from_metadata_1 = require("./helpers/get-output-url-from-metadata");
|
|
26
30
|
const io_1 = require("./helpers/io");
|
|
@@ -31,28 +35,49 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
31
35
|
if (lambdaParams.type !== constants_1.LambdaRoutines.still) {
|
|
32
36
|
throw new TypeError('Expected still type');
|
|
33
37
|
}
|
|
38
|
+
if (lambdaParams.version !== version_1.VERSION) {
|
|
39
|
+
if (!lambdaParams.version) {
|
|
40
|
+
throw new Error(`Version mismatch: When calling renderStillOnLambda(), you called the function ${process.env.AWS_LAMBDA_FUNCTION_NAME} which has the version ${version_1.VERSION} but the @remotion/lambda package is an older version. Deploy a new function and use it to call renderStillOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
41
|
+
}
|
|
42
|
+
throw new Error(`Version mismatch: When calling renderStillOnLambda(), you passed ${process.env.AWS_LAMBDA_FUNCTION_NAME} as the function, which has the version ${version_1.VERSION}, but the @remotion/lambda package you used to invoke the function has version ${lambdaParams.version}. Deploy a new function and use it to call renderStillOnLambda(). See: https://www.remotion.dev/docs/lambda/upgrading`);
|
|
43
|
+
}
|
|
44
|
+
(0, validate_download_behavior_1.validateDownloadBehavior)(lambdaParams.downloadBehavior);
|
|
34
45
|
(0, validate_privacy_1.validatePrivacy)(lambdaParams.privacy);
|
|
35
|
-
(0, validate_outname_1.validateOutname)(lambdaParams.outName);
|
|
46
|
+
(0, validate_outname_1.validateOutname)(lambdaParams.outName, null, null);
|
|
36
47
|
const start = Date.now();
|
|
37
|
-
const [
|
|
38
|
-
(0, get_or_create_bucket_1.getOrCreateBucket)({
|
|
48
|
+
const [bucketName, browserInstance] = await Promise.all([
|
|
49
|
+
(_a = lambdaParams.bucketName) !== null && _a !== void 0 ? _a : (0, get_or_create_bucket_1.getOrCreateBucket)({
|
|
39
50
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
40
|
-
}),
|
|
41
|
-
(0, get_browser_instance_1.getBrowserInstance)(
|
|
51
|
+
}).then((b) => b.bucketName),
|
|
52
|
+
(0, get_browser_instance_1.getBrowserInstance)(renderer_1.RenderInternals.isEqualOrBelowLogLevel(lambdaParams.logLevel, 'verbose'), (_b = lambdaParams.chromiumOptions) !== null && _b !== void 0 ? _b : {}),
|
|
42
53
|
]);
|
|
43
54
|
const outputDir = renderer_1.RenderInternals.tmpDir('remotion-render-');
|
|
44
55
|
const outputPath = path_1.default.join(outputDir, 'output');
|
|
56
|
+
const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
|
|
57
|
+
const region = (0, get_current_region_1.getCurrentRegionInFunction)();
|
|
58
|
+
const inputProps = await (0, deserialize_input_props_1.deserializeInputProps)({
|
|
59
|
+
bucketName,
|
|
60
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
61
|
+
region,
|
|
62
|
+
serialized: lambdaParams.inputProps,
|
|
63
|
+
});
|
|
64
|
+
const serveUrl = (0, convert_to_serve_url_1.convertToServeUrl)({
|
|
65
|
+
urlOrId: lambdaParams.serveUrl,
|
|
66
|
+
region,
|
|
67
|
+
bucketName,
|
|
68
|
+
});
|
|
45
69
|
const composition = await (0, validate_composition_1.validateComposition)({
|
|
46
|
-
serveUrl
|
|
70
|
+
serveUrl,
|
|
47
71
|
browserInstance,
|
|
48
72
|
composition: lambdaParams.composition,
|
|
49
|
-
inputProps
|
|
73
|
+
inputProps,
|
|
50
74
|
envVariables: lambdaParams.envVariables,
|
|
51
|
-
ffmpegExecutable: null,
|
|
52
|
-
ffprobeExecutable: null,
|
|
53
75
|
chromiumOptions: lambdaParams.chromiumOptions,
|
|
54
76
|
timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
|
|
55
77
|
port: null,
|
|
78
|
+
downloadMap,
|
|
79
|
+
forceHeight: lambdaParams.forceHeight,
|
|
80
|
+
forceWidth: lambdaParams.forceWidth,
|
|
56
81
|
});
|
|
57
82
|
const renderMetadata = {
|
|
58
83
|
startedDate: Date.now(),
|
|
@@ -61,18 +86,21 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
61
86
|
compositionId: lambdaParams.composition,
|
|
62
87
|
estimatedTotalLambdaInvokations: 1,
|
|
63
88
|
estimatedRenderLambdaInvokations: 1,
|
|
64
|
-
siteId: (0, make_s3_url_1.getServeUrlHash)(
|
|
89
|
+
siteId: (0, make_s3_url_1.getServeUrlHash)(serveUrl),
|
|
65
90
|
totalChunks: 1,
|
|
66
91
|
type: 'still',
|
|
67
|
-
usesOptimizationProfile: false,
|
|
68
92
|
imageFormat: lambdaParams.imageFormat,
|
|
69
93
|
inputProps: lambdaParams.inputProps,
|
|
70
|
-
lambdaVersion:
|
|
94
|
+
lambdaVersion: version_1.VERSION,
|
|
71
95
|
framesPerLambda: 1,
|
|
72
96
|
memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
|
|
73
97
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
74
98
|
renderId,
|
|
75
99
|
outName: (_c = lambdaParams.outName) !== null && _c !== void 0 ? _c : undefined,
|
|
100
|
+
privacy: lambdaParams.privacy,
|
|
101
|
+
everyNthFrame: 1,
|
|
102
|
+
frameRange: [lambdaParams.frame, lambdaParams.frame],
|
|
103
|
+
audioCodec: null,
|
|
76
104
|
};
|
|
77
105
|
await (0, io_1.lambdaWriteFile)({
|
|
78
106
|
bucketName,
|
|
@@ -81,46 +109,62 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
81
109
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
82
110
|
privacy: 'private',
|
|
83
111
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
112
|
+
downloadBehavior: null,
|
|
113
|
+
customCredentials: null,
|
|
84
114
|
});
|
|
85
115
|
await (0, renderer_1.renderStill)({
|
|
86
116
|
composition,
|
|
87
117
|
output: outputPath,
|
|
88
|
-
serveUrl
|
|
118
|
+
serveUrl,
|
|
89
119
|
dumpBrowserLogs: false,
|
|
90
120
|
envVariables: lambdaParams.envVariables,
|
|
91
|
-
frame:
|
|
121
|
+
frame: renderer_1.RenderInternals.convertToPositiveFrameIndex({
|
|
122
|
+
frame: lambdaParams.frame,
|
|
123
|
+
durationInFrames: composition.durationInFrames,
|
|
124
|
+
}),
|
|
92
125
|
imageFormat: lambdaParams.imageFormat,
|
|
93
|
-
inputProps
|
|
126
|
+
inputProps,
|
|
94
127
|
overwrite: false,
|
|
95
128
|
puppeteerInstance: browserInstance,
|
|
96
129
|
quality: lambdaParams.quality,
|
|
97
130
|
chromiumOptions: lambdaParams.chromiumOptions,
|
|
98
131
|
scale: lambdaParams.scale,
|
|
99
132
|
timeoutInMilliseconds: lambdaParams.timeoutInMilliseconds,
|
|
133
|
+
downloadMap,
|
|
134
|
+
browserExecutable: (0, get_chromium_executable_path_1.executablePath)(),
|
|
100
135
|
});
|
|
101
|
-
const { key
|
|
136
|
+
const { key, renderBucketName, customCredentials } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, bucketName, (0, expected_out_name_1.getCredentialsFromOutName)(lambdaParams.outName));
|
|
102
137
|
const { size } = await fs_1.default.promises.stat(outputPath);
|
|
103
138
|
await (0, io_1.lambdaWriteFile)({
|
|
104
139
|
bucketName: renderBucketName,
|
|
105
|
-
key
|
|
140
|
+
key,
|
|
106
141
|
privacy: lambdaParams.privacy,
|
|
107
142
|
body: fs_1.default.createReadStream(outputPath),
|
|
108
143
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
109
144
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
145
|
+
downloadBehavior: lambdaParams.downloadBehavior,
|
|
146
|
+
customCredentials,
|
|
110
147
|
});
|
|
111
|
-
await
|
|
148
|
+
await Promise.all([
|
|
149
|
+
fs_1.default.promises.rm(outputPath, { recursive: true }),
|
|
150
|
+
(0, cleanup_serialized_input_props_1.cleanupSerializedInputProps)({
|
|
151
|
+
bucketName,
|
|
152
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
153
|
+
serialized: lambdaParams.inputProps,
|
|
154
|
+
}),
|
|
155
|
+
]);
|
|
112
156
|
const estimatedPrice = (0, estimate_price_1.estimatePrice)({
|
|
113
157
|
durationInMiliseconds: Date.now() - start + 100,
|
|
114
158
|
memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
|
|
115
159
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
116
160
|
lambdasInvoked: 1,
|
|
117
|
-
architecture: (0, get_current_architecture_1.getCurrentArchitecture)(),
|
|
118
161
|
// We cannot determine the ephemeral storage size, so we
|
|
119
162
|
// overestimate the price, but will only have a miniscule effect (~0.2%)
|
|
120
163
|
diskSizeInMb: constants_1.MAX_EPHEMERAL_STORAGE_IN_MB,
|
|
121
164
|
});
|
|
165
|
+
renderer_1.RenderInternals.cleanDownloadMap(downloadMap);
|
|
122
166
|
return {
|
|
123
|
-
output: (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(renderMetadata, bucketName),
|
|
167
|
+
output: (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(renderMetadata, bucketName, customCredentials),
|
|
124
168
|
size,
|
|
125
169
|
bucketName,
|
|
126
170
|
estimatedPrice: (0, format_costs_info_1.formatCostsInfo)(estimatedPrice),
|
|
@@ -128,6 +172,7 @@ const innerStillHandler = async (lambdaParams, renderId, options) => {
|
|
|
128
172
|
};
|
|
129
173
|
};
|
|
130
174
|
const stillHandler = async (params, options) => {
|
|
175
|
+
var _a;
|
|
131
176
|
if (params.type !== constants_1.LambdaRoutines.still) {
|
|
132
177
|
throw new Error('Params must be renderer');
|
|
133
178
|
}
|
|
@@ -152,10 +197,12 @@ const stillHandler = async (params, options) => {
|
|
|
152
197
|
// @ts-expect-error
|
|
153
198
|
Payload: JSON.stringify(retryPayload),
|
|
154
199
|
}));
|
|
155
|
-
const
|
|
200
|
+
const bucketName = (_a = params.bucketName) !== null && _a !== void 0 ? _a : (await (0, get_or_create_bucket_1.getOrCreateBucket)({
|
|
156
201
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
157
|
-
});
|
|
158
|
-
|
|
202
|
+
})).bucketName;
|
|
203
|
+
// `await` elided on purpose here; using `void` to mark it as intentional
|
|
204
|
+
// eslint-disable-next-line no-void
|
|
205
|
+
void (0, write_lambda_error_1.writeLambdaError)({
|
|
159
206
|
bucketName,
|
|
160
207
|
errorInfo: {
|
|
161
208
|
chunk: null,
|