@remotion/lambda 4.0.0-webhook.27 → 4.0.0
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 +24 -13
- 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 +59 -65
- package/dist/api/bucket-exists.d.ts +0 -0
- package/dist/api/bucket-exists.js +0 -0
- package/dist/api/clean-items.d.ts +0 -0
- package/dist/api/clean-items.js +1 -1
- package/dist/api/create-bucket.d.ts +0 -0
- package/dist/api/create-bucket.js +34 -1
- package/dist/api/create-function.d.ts +1 -3
- package/dist/api/create-function.js +27 -6
- package/dist/api/delete-function.d.ts +4 -4
- package/dist/api/delete-function.js +3 -3
- package/dist/api/delete-render.d.ts +2 -2
- package/dist/api/delete-render.js +1 -1
- package/dist/api/delete-site.d.ts +7 -7
- package/dist/api/delete-site.js +9 -7
- package/dist/api/deploy-function.d.ts +11 -13
- package/dist/api/deploy-function.js +28 -31
- package/dist/api/deploy-site.d.ts +13 -5
- package/dist/api/deploy-site.js +61 -25
- package/dist/api/download-media.d.ts +4 -8
- package/dist/api/download-media.js +5 -9
- package/dist/api/estimate-price.d.ts +3 -5
- package/dist/api/estimate-price.js +4 -10
- package/dist/api/get-aws-client.d.ts +6 -4
- package/dist/api/get-aws-client.js +3 -1
- package/dist/api/get-buckets.d.ts +2 -2
- package/dist/api/get-buckets.js +35 -12
- package/dist/api/get-compositions-on-lambda.d.ts +33 -0
- package/dist/api/get-compositions-on-lambda.js +56 -0
- package/dist/api/get-function-info.d.ts +3 -3
- package/dist/api/get-function-info.js +1 -1
- package/dist/api/get-functions.d.ts +5 -7
- package/dist/api/get-functions.js +8 -10
- package/dist/api/get-or-create-bucket.d.ts +6 -6
- package/dist/api/get-or-create-bucket.js +10 -18
- 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 +3 -3
- package/dist/api/get-render-progress.js +6 -11
- package/dist/api/get-sites.d.ts +6 -6
- package/dist/api/get-sites.js +5 -4
- 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 +2 -2
- package/dist/api/iam-validation/simulate-rule.js +0 -22
- package/dist/api/iam-validation/simulate.d.ts +3 -3
- 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 +3 -8
- package/dist/api/make-lambda-payload.d.ts +5 -0
- package/dist/api/make-lambda-payload.js +78 -0
- package/dist/api/mock-functions.d.ts +0 -0
- package/dist/api/mock-functions.js +0 -0
- package/dist/api/presign-url.d.ts +4 -5
- package/dist/api/presign-url.js +3 -3
- package/dist/api/render-media-on-lambda.d.ts +27 -11
- package/dist/api/render-media-on-lambda.js +15 -49
- package/dist/api/render-still-on-lambda.d.ts +17 -6
- package/dist/api/render-still-on-lambda.js +24 -10
- 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 +6 -5
- package/dist/api/upload-dir.js +54 -51
- package/dist/api/validate-webhook-signature.d.ts +2 -2
- package/dist/api/validate-webhook-signature.js +1 -1
- package/dist/cli/args.d.ts +7 -5
- 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 +15 -15
- 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 +17 -10
- package/dist/cli/commands/functions/rm.d.ts +0 -0
- package/dist/cli/commands/functions/rm.js +20 -7
- package/dist/cli/commands/functions/rmall.d.ts +0 -0
- package/dist/cli/commands/functions/rmall.js +20 -8
- 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 +30 -10
- 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 +11 -7
- package/dist/cli/commands/render/progress.js +55 -45
- package/dist/cli/commands/render/render.d.ts +1 -1
- package/dist/cli/commands/render/render.js +99 -27
- package/dist/cli/commands/sites/create.d.ts +1 -1
- package/dist/cli/commands/sites/create.js +37 -33
- package/dist/cli/commands/sites/index.d.ts +1 -1
- package/dist/cli/commands/sites/index.js +18 -16
- package/dist/cli/commands/sites/ls.d.ts +0 -0
- package/dist/cli/commands/sites/ls.js +9 -10
- package/dist/cli/commands/sites/rm.d.ts +0 -0
- package/dist/cli/commands/sites/rm.js +7 -16
- package/dist/cli/commands/sites/rmall.d.ts +0 -0
- package/dist/cli/commands/sites/rmall.js +5 -16
- package/dist/cli/commands/still.d.ts +1 -1
- package/dist/cli/commands/still.js +49 -20
- package/dist/cli/get-aws-region.d.ts +0 -0
- package/dist/cli/get-aws-region.js +0 -0
- package/dist/cli/help.d.ts +0 -0
- package/dist/cli/help.js +4 -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 +35 -6
- package/dist/cli/helpers/progress-bar.d.ts +12 -7
- package/dist/cli/helpers/progress-bar.js +20 -11
- 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 +23 -12
- package/dist/cli/is-cli.d.ts +0 -0
- package/dist/cli/is-cli.js +0 -0
- package/dist/cli/log.d.ts +14 -0
- package/dist/cli/log.js +0 -0
- package/dist/client.d.ts +8 -2
- package/dist/client.js +9 -1
- package/dist/defaults.d.ts +0 -0
- package/dist/defaults.js +0 -0
- package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -5
- package/dist/functions/chunk-optimization/plan-frame-ranges.js +2 -15
- package/dist/functions/chunk-optimization/types.d.ts +2 -13
- package/dist/functions/chunk-optimization/types.js +0 -0
- package/dist/functions/compositions.d.ts +8 -0
- package/dist/functions/compositions.js +60 -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 +0 -0
- package/dist/functions/helpers/check-if-render-exists.js +0 -0
- package/dist/functions/helpers/clean-tmpdir.d.ts +0 -0
- package/dist/functions/helpers/clean-tmpdir.js +8 -8
- package/dist/functions/helpers/concat-videos.d.ts +13 -5
- package/dist/functions/helpers/concat-videos.js +38 -39
- package/dist/functions/helpers/create-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/create-post-render-data.js +1 -15
- 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 +0 -0
- package/dist/functions/helpers/expected-out-name.js +2 -2
- package/dist/functions/helpers/find-output-file-in-bucket.d.ts +1 -1
- package/dist/functions/helpers/find-output-file-in-bucket.js +0 -0
- 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 +2 -3
- package/dist/functions/helpers/get-browser-instance.js +9 -5
- package/dist/functions/helpers/get-chromium-executable-path.d.ts +1 -1
- package/dist/functions/helpers/get-chromium-executable-path.js +8 -6
- 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 +0 -0
- package/dist/functions/helpers/get-custom-out-name.js +1 -1
- 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 +1 -1
- package/dist/functions/helpers/get-files-in-folder.js +5 -5
- package/dist/functions/helpers/get-files-to-delete.d.ts +1 -1
- package/dist/functions/helpers/get-files-to-delete.js +0 -0
- 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 +2 -6
- package/dist/functions/helpers/get-lambdas-invoked-stats.js +1 -9
- package/dist/functions/helpers/get-output-url-from-metadata.d.ts +0 -0
- package/dist/functions/helpers/get-output-url-from-metadata.js +0 -0
- 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 +0 -0
- package/dist/functions/helpers/get-progress.js +43 -42
- 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 +1 -1
- package/dist/functions/helpers/get-retry-stats.js +0 -0
- 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 +10 -4
- package/dist/functions/helpers/io.js +25 -3
- 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 +35 -0
- package/dist/functions/helpers/make-timeout-message.d.ts +6 -0
- package/dist/functions/helpers/make-timeout-message.js +33 -0
- package/dist/functions/helpers/min-max.d.ts +0 -0
- package/dist/functions/helpers/min-max.js +0 -0
- package/dist/functions/helpers/print-cloudwatch-helper.d.ts +0 -0
- package/dist/functions/helpers/print-cloudwatch-helper.js +2 -1
- 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 +1 -1
- package/dist/functions/helpers/read-with-progress.js +1 -1
- package/dist/functions/helpers/streamify-response.d.ts +16 -0
- package/dist/functions/helpers/streamify-response.js +67 -0
- 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 +10 -9
- package/dist/functions/helpers/validate-composition.js +18 -13
- package/dist/functions/helpers/write-lambda-error.d.ts +2 -2
- package/dist/functions/helpers/write-lambda-error.js +0 -0
- package/dist/functions/helpers/write-post-render-data.d.ts +0 -0
- package/dist/functions/helpers/write-post-render-data.js +0 -0
- package/dist/functions/index.d.ts +1 -7
- package/dist/functions/index.js +44 -11
- package/dist/functions/info.d.ts +0 -0
- package/dist/functions/info.js +0 -0
- package/dist/functions/launch.d.ts +2 -1
- package/dist/functions/launch.js +172 -134
- package/dist/functions/progress.d.ts +1 -1
- package/dist/functions/progress.js +2 -2
- package/dist/functions/renderer.d.ts +1 -1
- package/dist/functions/renderer.js +92 -44
- package/dist/functions/start.d.ts +1 -1
- package/dist/functions/start.js +21 -8
- package/dist/functions/still.d.ts +1 -1
- package/dist/functions/still.js +79 -37
- package/dist/index.d.ts +24 -8
- package/dist/index.js +23 -6
- package/dist/internals.d.ts +3 -1
- package/dist/internals.js +3 -0
- package/dist/pricing/aws-regions.d.ts +3 -2
- 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 +1 -1
- package/dist/shared/await.js +0 -0
- package/dist/shared/aws-clients.d.ts +6 -3
- package/dist/shared/aws-clients.js +75 -13
- package/dist/shared/bundle-site.d.ts +0 -0
- package/dist/shared/bundle-site.js +0 -0
- package/dist/shared/call-lambda.d.ts +0 -0
- package/dist/shared/call-lambda.js +27 -2
- package/dist/shared/check-credentials.d.ts +0 -0
- package/dist/shared/check-credentials.js +3 -0
- 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 +137 -87
- package/dist/shared/constants.js +16 -4
- package/dist/shared/content-disposition-header.d.ts +1 -1
- package/dist/shared/content-disposition-header.js +0 -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/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 +3 -3
- package/dist/shared/get-account-id.d.ts +0 -0
- package/dist/shared/get-account-id.js +4 -6
- package/dist/shared/{get-cloudwatch-stream-url.d.ts → get-aws-urls.d.ts} +7 -1
- 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 +0 -0
- package/dist/shared/get-function-version.js +0 -0
- package/dist/shared/get-most-expensive-chunks.d.ts +2 -2
- 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 +5 -8
- package/dist/shared/hosted-layers.js +210 -284
- package/dist/shared/invoke-webhook.d.ts +5 -18
- package/dist/shared/invoke-webhook.js +4 -19
- package/dist/shared/is-in-lambda.d.ts +0 -0
- package/dist/shared/is-in-lambda.js +0 -0
- package/dist/shared/lambda-version-string.d.ts +0 -0
- package/dist/shared/lambda-version-string.js +0 -0
- package/dist/shared/make-s3-key.d.ts +0 -0
- package/dist/shared/make-s3-key.js +2 -2
- package/dist/shared/make-s3-url.d.ts +0 -0
- package/dist/shared/make-s3-url.js +2 -2
- 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 +1 -1
- 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 +7 -0
- package/dist/shared/return-values.js +0 -0
- package/dist/shared/serialize-props.d.ts +20 -0
- package/dist/shared/serialize-props.js +83 -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 +1 -1
- package/dist/shared/truthy.js +0 -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 +0 -0
- package/dist/shared/validate-download-behavior.js +0 -0
- package/dist/shared/validate-frames-per-lambda.d.ts +0 -0
- package/dist/shared/validate-frames-per-lambda.js +0 -0
- package/dist/shared/validate-lambda-codec.d.ts +2 -2
- package/dist/shared/validate-lambda-codec.js +1 -1
- 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 +2 -2
- package/dist/shared/validate-outname.js +16 -10
- package/dist/shared/validate-presign-expiration.d.ts +0 -0
- package/dist/shared/validate-presign-expiration.js +0 -0
- package/dist/shared/validate-privacy.d.ts +1 -1
- package/dist/shared/validate-privacy.js +5 -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 +89 -65
- package/remotionlambda-arm64.zip +0 -0
- package/remotionlambda-x64.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/determine-image-format.d.ts +0 -10
- package/dist/cli/helpers/determine-image-format.js +0 -47
- 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/cli/helpers/webhook-types.d.ts +0 -6
- package/dist/cli/helpers/webhook-types.js +0 -2
- 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 -47
- 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/get-cloudwatch-stream-url.js +0 -7
- package/dist/shared/validate-architecture.d.ts +0 -4
- package/dist/shared/validate-architecture.js +0 -14
- package/remotionlambda.zip +0 -0
- package/tsconfig.json +0 -16
package/dist/functions/launch.js
CHANGED
|
@@ -1,15 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
4
24
|
};
|
|
5
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
26
|
exports.launchHandler = void 0;
|
|
7
27
|
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
8
28
|
const renderer_1 = require("@remotion/renderer");
|
|
9
|
-
const
|
|
29
|
+
const node_fs_1 = __importStar(require("node:fs"));
|
|
30
|
+
const node_path_1 = require("node:path");
|
|
10
31
|
const remotion_1 = require("remotion");
|
|
11
32
|
const version_1 = require("remotion/version");
|
|
12
33
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
34
|
+
const cleanup_serialized_input_props_1 = require("../shared/cleanup-serialized-input-props");
|
|
13
35
|
const constants_1 = require("../shared/constants");
|
|
14
36
|
const docs_url_1 = require("../shared/docs-url");
|
|
15
37
|
const invoke_webhook_1 = require("../shared/invoke-webhook");
|
|
@@ -17,14 +39,7 @@ const make_s3_url_1 = require("../shared/make-s3-url");
|
|
|
17
39
|
const validate_frames_per_lambda_1 = require("../shared/validate-frames-per-lambda");
|
|
18
40
|
const validate_outname_1 = require("../shared/validate-outname");
|
|
19
41
|
const validate_privacy_1 = require("../shared/validate-privacy");
|
|
20
|
-
const collect_data_1 = require("./chunk-optimization/collect-data");
|
|
21
|
-
const get_frame_ranges_from_profile_1 = require("./chunk-optimization/get-frame-ranges-from-profile");
|
|
22
|
-
const get_profile_duration_1 = require("./chunk-optimization/get-profile-duration");
|
|
23
|
-
const is_valid_profile_1 = require("./chunk-optimization/is-valid-profile");
|
|
24
|
-
const optimize_invocation_order_1 = require("./chunk-optimization/optimize-invocation-order");
|
|
25
|
-
const optimize_profile_1 = require("./chunk-optimization/optimize-profile");
|
|
26
42
|
const plan_frame_ranges_1 = require("./chunk-optimization/plan-frame-ranges");
|
|
27
|
-
const s3_optimization_file_1 = require("./chunk-optimization/s3-optimization-file");
|
|
28
43
|
const best_frames_per_lambda_param_1 = require("./helpers/best-frames-per-lambda-param");
|
|
29
44
|
const concat_videos_1 = require("./helpers/concat-videos");
|
|
30
45
|
const create_post_render_data_1 = require("./helpers/create-post-render-data");
|
|
@@ -34,7 +49,6 @@ const find_output_file_in_bucket_1 = require("./helpers/find-output-file-in-buck
|
|
|
34
49
|
const get_browser_instance_1 = require("./helpers/get-browser-instance");
|
|
35
50
|
const get_current_region_1 = require("./helpers/get-current-region");
|
|
36
51
|
const get_files_to_delete_1 = require("./helpers/get-files-to-delete");
|
|
37
|
-
const get_lambdas_invoked_stats_1 = require("./helpers/get-lambdas-invoked-stats");
|
|
38
52
|
const get_output_url_from_metadata_1 = require("./helpers/get-output-url-from-metadata");
|
|
39
53
|
const inspect_errors_1 = require("./helpers/inspect-errors");
|
|
40
54
|
const io_1 = require("./helpers/io");
|
|
@@ -42,10 +56,11 @@ const timer_1 = require("./helpers/timer");
|
|
|
42
56
|
const validate_composition_1 = require("./helpers/validate-composition");
|
|
43
57
|
const write_lambda_error_1 = require("./helpers/write-lambda-error");
|
|
44
58
|
const write_post_render_data_1 = require("./helpers/write-post-render-data");
|
|
45
|
-
const
|
|
59
|
+
const serialize_props_1 = require("../shared/serialize-props");
|
|
60
|
+
const callFunctionWithRetry = async ({ payload, retries, functionName, }) => {
|
|
46
61
|
try {
|
|
47
62
|
await (0, aws_clients_1.getLambdaClient)((0, get_current_region_1.getCurrentRegionInFunction)()).send(new client_lambda_1.InvokeCommand({
|
|
48
|
-
FunctionName:
|
|
63
|
+
FunctionName: functionName,
|
|
49
64
|
// @ts-expect-error
|
|
50
65
|
Payload: JSON.stringify(payload),
|
|
51
66
|
InvocationType: 'Event',
|
|
@@ -59,17 +74,25 @@ const callFunctionWithRetry = async (payload, retries = 0) => {
|
|
|
59
74
|
await new Promise((resolve) => {
|
|
60
75
|
setTimeout(resolve, 1000);
|
|
61
76
|
});
|
|
62
|
-
return callFunctionWithRetry(
|
|
77
|
+
return callFunctionWithRetry({
|
|
78
|
+
payload,
|
|
79
|
+
retries: retries + 1,
|
|
80
|
+
functionName,
|
|
81
|
+
});
|
|
63
82
|
}
|
|
83
|
+
throw err;
|
|
64
84
|
}
|
|
65
85
|
};
|
|
66
86
|
const innerLaunchHandler = async (params, options) => {
|
|
67
|
-
var _a, _b, _c, _d;
|
|
87
|
+
var _a, _b, _c, _d, _e, _f;
|
|
68
88
|
if (params.type !== constants_1.LambdaRoutines.launch) {
|
|
69
89
|
throw new Error('Expected launch type');
|
|
70
90
|
}
|
|
91
|
+
const functionName = (_a = params.rendererFunctionName) !== null && _a !== void 0 ? _a : process.env.AWS_LAMBDA_FUNCTION_NAME;
|
|
71
92
|
const startedDate = Date.now();
|
|
72
93
|
let webhookInvoked = false;
|
|
94
|
+
console.log(`Function has ${Math.max(options.getRemainingTimeInMillis() - 1000, 1000)} before it times out`);
|
|
95
|
+
const verbose = renderer_1.RenderInternals.isEqualOrBelowLogLevel(params.logLevel, 'verbose');
|
|
73
96
|
const webhookDueToTimeout = setTimeout(async () => {
|
|
74
97
|
if (params.webhook && !webhookInvoked) {
|
|
75
98
|
try {
|
|
@@ -111,61 +134,79 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
111
134
|
console.log(err);
|
|
112
135
|
}
|
|
113
136
|
}
|
|
114
|
-
}, Math.max(
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}),
|
|
124
|
-
]);
|
|
125
|
-
const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
|
|
137
|
+
}, Math.max(options.getRemainingTimeInMillis() - 1000, 1000));
|
|
138
|
+
const browserInstance = await (0, get_browser_instance_1.getBrowserInstance)(params.logLevel, false, params.chromiumOptions);
|
|
139
|
+
const inputPropsPromise = (0, serialize_props_1.deserializeInputProps)({
|
|
140
|
+
bucketName: params.bucketName,
|
|
141
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
142
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
143
|
+
serialized: params.inputProps,
|
|
144
|
+
propsType: 'input-props',
|
|
145
|
+
});
|
|
126
146
|
const comp = await (0, validate_composition_1.validateComposition)({
|
|
127
147
|
serveUrl: params.serveUrl,
|
|
128
148
|
composition: params.composition,
|
|
129
149
|
browserInstance,
|
|
130
|
-
inputProps:
|
|
131
|
-
envVariables: params.envVariables,
|
|
132
|
-
ffmpegExecutable: null,
|
|
133
|
-
ffprobeExecutable: null,
|
|
150
|
+
inputProps: await inputPropsPromise,
|
|
151
|
+
envVariables: (_b = params.envVariables) !== null && _b !== void 0 ? _b : {},
|
|
134
152
|
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
135
153
|
chromiumOptions: params.chromiumOptions,
|
|
136
154
|
port: null,
|
|
137
|
-
|
|
155
|
+
forceHeight: params.forceHeight,
|
|
156
|
+
forceWidth: params.forceWidth,
|
|
157
|
+
logLevel: params.logLevel,
|
|
158
|
+
server: undefined,
|
|
159
|
+
});
|
|
160
|
+
remotion_1.Internals.validateDurationInFrames(comp.durationInFrames, {
|
|
161
|
+
component: 'passed to a Lambda render',
|
|
162
|
+
allowFloats: false,
|
|
138
163
|
});
|
|
139
|
-
remotion_1.Internals.validateDurationInFrames(comp.durationInFrames, 'passed to a Lambda render');
|
|
140
164
|
remotion_1.Internals.validateFps(comp.fps, 'passed to a Lambda render', false);
|
|
141
165
|
remotion_1.Internals.validateDimension(comp.height, 'height', 'passed to a Lambda render');
|
|
142
166
|
remotion_1.Internals.validateDimension(comp.width, 'width', 'passed to a Lambda render');
|
|
167
|
+
renderer_1.RenderInternals.validateBitrate(params.audioBitrate, 'audioBitrate');
|
|
168
|
+
renderer_1.RenderInternals.validateBitrate(params.videoBitrate, 'videoBitrate');
|
|
143
169
|
renderer_1.RenderInternals.validateConcurrency(params.concurrencyPerLambda, 'concurrencyPerLambda');
|
|
144
170
|
const realFrameRange = renderer_1.RenderInternals.getRealFrameRange(comp.durationInFrames, params.frameRange);
|
|
145
171
|
const frameCount = renderer_1.RenderInternals.getFramesToRender(realFrameRange, params.everyNthFrame);
|
|
146
|
-
const framesPerLambda = (
|
|
172
|
+
const framesPerLambda = (_c = params.framesPerLambda) !== null && _c !== void 0 ? _c : (0, best_frames_per_lambda_param_1.bestFramesPerLambdaParam)(frameCount.length);
|
|
147
173
|
(0, validate_frames_per_lambda_1.validateFramesPerLambda)({
|
|
148
174
|
framesPerLambda,
|
|
149
175
|
durationInFrames: frameCount.length,
|
|
150
176
|
});
|
|
151
177
|
const chunkCount = Math.ceil(frameCount.length / framesPerLambda);
|
|
152
178
|
if (chunkCount > constants_1.MAX_FUNCTIONS_PER_RENDER) {
|
|
153
|
-
throw new Error(`Too many functions: This render would cause ${chunkCount} functions to spawn. We limit this amount to ${constants_1.MAX_FUNCTIONS_PER_RENDER} functions as more would result in diminishing returns. Values set: frameCount = ${frameCount}, framesPerLambda=${framesPerLambda}. See ${docs_url_1.DOCS_URL}/docs/lambda/concurrency for
|
|
179
|
+
throw new Error(`Too many functions: This render would cause ${chunkCount} functions to spawn. We limit this amount to ${constants_1.MAX_FUNCTIONS_PER_RENDER} functions as more would result in diminishing returns. Values set: frameCount = ${frameCount}, framesPerLambda=${framesPerLambda}. See ${docs_url_1.DOCS_URL}/docs/lambda/concurrency#too-many-functions for help.`);
|
|
154
180
|
}
|
|
155
|
-
(0, validate_outname_1.validateOutname)(params.outName, params.codec);
|
|
156
|
-
(0, validate_privacy_1.validatePrivacy)(params.privacy);
|
|
181
|
+
(0, validate_outname_1.validateOutname)(params.outName, params.codec, params.audioCodec);
|
|
182
|
+
(0, validate_privacy_1.validatePrivacy)(params.privacy, true);
|
|
157
183
|
renderer_1.RenderInternals.validatePuppeteerTimeout(params.timeoutInMilliseconds);
|
|
158
|
-
const { chunks
|
|
184
|
+
const { chunks } = (0, plan_frame_ranges_1.planFrameRanges)({
|
|
159
185
|
framesPerLambda,
|
|
160
|
-
optimization,
|
|
161
|
-
// TODO: Re-enable chunk optimization later
|
|
162
|
-
shouldUseOptimization: false,
|
|
163
186
|
frameRange: realFrameRange,
|
|
164
187
|
everyNthFrame: params.everyNthFrame,
|
|
165
188
|
});
|
|
166
189
|
const sortedChunks = chunks.slice().sort((a, b) => a[0] - b[0]);
|
|
167
|
-
const invokers = Math.round(Math.sqrt(chunks.length));
|
|
168
190
|
const reqSend = (0, timer_1.timer)('sending off requests');
|
|
191
|
+
const serializedResolved = (0, serialize_props_1.serializeOrThrow)(comp.props, 'resolved-props');
|
|
192
|
+
const serializedDefault = (0, serialize_props_1.serializeOrThrow)(comp.defaultProps, 'default-props');
|
|
193
|
+
const needsToUpload = (0, serialize_props_1.getNeedsToUpload)('video-or-audio', serializedResolved + serializedDefault);
|
|
194
|
+
const [serializedResolvedProps, serializedDefaultProps] = await Promise.all([
|
|
195
|
+
(0, serialize_props_1.serializeInputProps)({
|
|
196
|
+
propsType: 'resolved-props',
|
|
197
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
198
|
+
stringifiedInputProps: serializedResolved,
|
|
199
|
+
userSpecifiedBucketName: params.bucketName,
|
|
200
|
+
needsToUpload,
|
|
201
|
+
}),
|
|
202
|
+
(0, serialize_props_1.serializeInputProps)({
|
|
203
|
+
propsType: 'default-props',
|
|
204
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
205
|
+
stringifiedInputProps: serializedDefault,
|
|
206
|
+
userSpecifiedBucketName: params.bucketName,
|
|
207
|
+
needsToUpload,
|
|
208
|
+
}),
|
|
209
|
+
]);
|
|
169
210
|
const lambdaPayloads = chunks.map((chunkPayload) => {
|
|
170
211
|
var _a;
|
|
171
212
|
const payload = {
|
|
@@ -183,12 +224,12 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
183
224
|
inputProps: params.inputProps,
|
|
184
225
|
renderId: params.renderId,
|
|
185
226
|
imageFormat: params.imageFormat,
|
|
186
|
-
codec: params.codec
|
|
227
|
+
codec: params.codec,
|
|
187
228
|
crf: params.crf,
|
|
188
229
|
envVariables: params.envVariables,
|
|
189
230
|
pixelFormat: params.pixelFormat,
|
|
190
231
|
proResProfile: params.proResProfile,
|
|
191
|
-
|
|
232
|
+
jpegQuality: params.jpegQuality,
|
|
192
233
|
privacy: params.privacy,
|
|
193
234
|
logLevel: (_a = params.logLevel) !== null && _a !== void 0 ? _a : 'info',
|
|
194
235
|
attempt: 1,
|
|
@@ -198,9 +239,17 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
198
239
|
everyNthFrame: params.everyNthFrame,
|
|
199
240
|
concurrencyPerLambda: params.concurrencyPerLambda,
|
|
200
241
|
muted: params.muted,
|
|
242
|
+
audioBitrate: params.audioBitrate,
|
|
243
|
+
videoBitrate: params.videoBitrate,
|
|
244
|
+
launchFunctionConfig: {
|
|
245
|
+
version: version_1.VERSION,
|
|
246
|
+
},
|
|
247
|
+
resolvedProps: serializedResolvedProps,
|
|
248
|
+
defaultProps: serializedDefaultProps,
|
|
201
249
|
};
|
|
202
250
|
return payload;
|
|
203
251
|
});
|
|
252
|
+
console.log('Render plan: ', chunks.map((c, i) => `Chunk ${i} (Frames ${c[0]} - ${c[1]})`).join(', '));
|
|
204
253
|
const renderMetadata = {
|
|
205
254
|
startedDate,
|
|
206
255
|
videoConfig: comp,
|
|
@@ -208,15 +257,13 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
208
257
|
estimatedTotalLambdaInvokations: [
|
|
209
258
|
// Direct invokations
|
|
210
259
|
chunks.length,
|
|
211
|
-
// Parent invokers
|
|
212
|
-
invokers,
|
|
213
260
|
// This function
|
|
261
|
+
1,
|
|
214
262
|
].reduce((a, b) => a + b, 0),
|
|
215
263
|
estimatedRenderLambdaInvokations: chunks.length,
|
|
216
264
|
compositionId: comp.id,
|
|
217
265
|
siteId: (0, make_s3_url_1.getServeUrlHash)(params.serveUrl),
|
|
218
266
|
codec: params.codec,
|
|
219
|
-
usesOptimizationProfile: didUseOptimization,
|
|
220
267
|
type: 'video',
|
|
221
268
|
imageFormat: params.imageFormat,
|
|
222
269
|
inputProps: params.inputProps,
|
|
@@ -225,12 +272,15 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
225
272
|
memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
|
|
226
273
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
227
274
|
renderId: params.renderId,
|
|
228
|
-
outName: (
|
|
275
|
+
outName: (_d = params.outName) !== null && _d !== void 0 ? _d : undefined,
|
|
229
276
|
privacy: params.privacy,
|
|
277
|
+
everyNthFrame: params.everyNthFrame,
|
|
278
|
+
frameRange: realFrameRange,
|
|
279
|
+
audioCodec: params.audioCodec,
|
|
230
280
|
};
|
|
231
281
|
const { key, renderBucketName, customCredentials } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, params.bucketName, typeof params.outName === 'string' || typeof params.outName === 'undefined'
|
|
232
282
|
? null
|
|
233
|
-
: (
|
|
283
|
+
: (_f = (_e = params.outName) === null || _e === void 0 ? void 0 : _e.s3OutputProvider) !== null && _f !== void 0 ? _f : null);
|
|
234
284
|
const output = await (0, find_output_file_in_bucket_1.findOutputFileInBucket)({
|
|
235
285
|
bucketName: params.bucketName,
|
|
236
286
|
customCredentials,
|
|
@@ -261,34 +311,22 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
261
311
|
downloadBehavior: null,
|
|
262
312
|
customCredentials: null,
|
|
263
313
|
});
|
|
264
|
-
await Promise.all(lambdaPayloads.map(async (payload
|
|
265
|
-
|
|
266
|
-
await callFunctionWithRetry(payload);
|
|
267
|
-
callingLambdaTimer.end();
|
|
314
|
+
await Promise.all(lambdaPayloads.map(async (payload) => {
|
|
315
|
+
await callFunctionWithRetry({ payload, retries: 0, functionName });
|
|
268
316
|
}));
|
|
269
317
|
reqSend.end();
|
|
270
318
|
let lastProgressUploaded = 0;
|
|
271
|
-
|
|
272
|
-
const onProgress = (framesEncoded, start) => {
|
|
319
|
+
const onProgress = (framesEncoded) => {
|
|
273
320
|
const relativeProgress = framesEncoded / frameCount.length;
|
|
274
321
|
const deltaSinceLastProgressUploaded = relativeProgress - lastProgressUploaded;
|
|
275
|
-
if (relativeProgress === 1) {
|
|
276
|
-
encodingStop = Date.now();
|
|
277
|
-
}
|
|
278
322
|
if (deltaSinceLastProgressUploaded < 0.1) {
|
|
279
323
|
return;
|
|
280
324
|
}
|
|
281
325
|
lastProgressUploaded = relativeProgress;
|
|
282
|
-
const encodingProgress = {
|
|
283
|
-
framesEncoded,
|
|
284
|
-
totalFrames: frameCount.length,
|
|
285
|
-
doneIn: encodingStop ? encodingStop - start : null,
|
|
286
|
-
timeToInvoke: null,
|
|
287
|
-
};
|
|
288
326
|
(0, io_1.lambdaWriteFile)({
|
|
289
327
|
bucketName: params.bucketName,
|
|
290
328
|
key: (0, constants_1.encodingProgressKey)(params.renderId),
|
|
291
|
-
body:
|
|
329
|
+
body: String(Math.round(framesEncoded / constants_1.ENCODING_PROGRESS_STEP_SIZE)),
|
|
292
330
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
293
331
|
privacy: 'private',
|
|
294
332
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
@@ -315,90 +353,82 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
315
353
|
});
|
|
316
354
|
});
|
|
317
355
|
};
|
|
356
|
+
const onErrors = async (errors) => {
|
|
357
|
+
var _a;
|
|
358
|
+
console.log('Found Errors', errors);
|
|
359
|
+
if (params.webhook) {
|
|
360
|
+
console.log('Sending webhook with errors');
|
|
361
|
+
await (0, invoke_webhook_1.invokeWebhook)({
|
|
362
|
+
url: params.webhook.url,
|
|
363
|
+
secret: (_a = params.webhook.secret) !== null && _a !== void 0 ? _a : null,
|
|
364
|
+
payload: {
|
|
365
|
+
type: 'error',
|
|
366
|
+
renderId: params.renderId,
|
|
367
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
368
|
+
bucketName: params.bucketName,
|
|
369
|
+
errors: errors.slice(0, 5).map((e) => ({
|
|
370
|
+
message: e.message,
|
|
371
|
+
name: e.name,
|
|
372
|
+
stack: e.stack,
|
|
373
|
+
})),
|
|
374
|
+
},
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
console.log('No webhook specified');
|
|
379
|
+
}
|
|
380
|
+
throw new Error('Stopping Lambda function because error occurred: ' + errors[0].stack);
|
|
381
|
+
};
|
|
318
382
|
const fps = comp.fps / params.everyNthFrame;
|
|
319
|
-
const
|
|
383
|
+
const outdir = (0, node_path_1.join)(renderer_1.RenderInternals.tmpDir(constants_1.CONCAT_FOLDER_TOKEN), 'bucket');
|
|
384
|
+
if ((0, node_fs_1.existsSync)(outdir)) {
|
|
385
|
+
(0, node_fs_1.rmSync)(outdir, {
|
|
386
|
+
recursive: true,
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
(0, node_fs_1.mkdirSync)(outdir);
|
|
390
|
+
const files = await (0, concat_videos_1.getAllFilesS3)({
|
|
320
391
|
bucket: params.bucketName,
|
|
321
392
|
expectedFiles: chunkCount,
|
|
322
|
-
|
|
323
|
-
numberOfFrames: frameCount.length,
|
|
393
|
+
outdir,
|
|
324
394
|
renderId: params.renderId,
|
|
325
395
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
326
|
-
codec: params.codec,
|
|
327
396
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
397
|
+
onErrors,
|
|
398
|
+
});
|
|
399
|
+
const encodingStart = Date.now();
|
|
400
|
+
const { outfile, cleanupChunksProm } = await (0, concat_videos_1.concatVideosS3)({
|
|
401
|
+
onProgress,
|
|
402
|
+
numberOfFrames: frameCount.length,
|
|
403
|
+
codec: params.codec,
|
|
328
404
|
fps,
|
|
329
405
|
numberOfGifLoops: params.numberOfGifLoops,
|
|
406
|
+
files,
|
|
407
|
+
outdir,
|
|
408
|
+
audioCodec: params.audioCodec,
|
|
330
409
|
});
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
}
|
|
334
|
-
const outputSize = fs_1.default.statSync(outfile);
|
|
410
|
+
const encodingStop = Date.now();
|
|
411
|
+
const outputSize = node_fs_1.default.statSync(outfile);
|
|
335
412
|
await (0, io_1.lambdaWriteFile)({
|
|
336
413
|
bucketName: renderBucketName,
|
|
337
414
|
key,
|
|
338
|
-
body:
|
|
415
|
+
body: node_fs_1.default.createReadStream(outfile),
|
|
339
416
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
340
417
|
privacy: params.privacy,
|
|
341
418
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
342
419
|
downloadBehavior: params.downloadBehavior,
|
|
343
420
|
customCredentials,
|
|
344
421
|
});
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
renderId: params.renderId,
|
|
352
|
-
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
353
|
-
expectedBucketOwner: options.expectedBucketOwner,
|
|
354
|
-
});
|
|
355
|
-
const optimizedProfile = (0, optimize_invocation_order_1.optimizeInvocationOrder)((0, optimize_profile_1.optimizeProfileRecursively)(chunkData, 400));
|
|
356
|
-
const optimizedFrameRange = (0, get_frame_ranges_from_profile_1.getFrameRangesFromProfile)(optimizedProfile);
|
|
357
|
-
chunkProm = (0, is_valid_profile_1.isValidOptimizationProfile)(optimizedProfile)
|
|
358
|
-
? (0, s3_optimization_file_1.writeOptimization)({
|
|
359
|
-
bucketName: params.bucketName,
|
|
360
|
-
optimization: {
|
|
361
|
-
ranges: optimizedFrameRange,
|
|
362
|
-
oldTiming: (0, get_profile_duration_1.getProfileDuration)(chunkData),
|
|
363
|
-
newTiming: (0, get_profile_duration_1.getProfileDuration)(optimizedProfile),
|
|
364
|
-
createdFromRenderId: params.renderId,
|
|
365
|
-
framesPerLambda,
|
|
366
|
-
lambdaVersion: version_1.VERSION,
|
|
367
|
-
frameRange: realFrameRange,
|
|
368
|
-
everyNthFrame: params.everyNthFrame,
|
|
369
|
-
},
|
|
370
|
-
expectedBucketOwner: options.expectedBucketOwner,
|
|
371
|
-
compositionId: params.composition,
|
|
372
|
-
siteId: (0, make_s3_url_1.getServeUrlHash)(params.serveUrl),
|
|
373
|
-
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
374
|
-
})
|
|
375
|
-
: Promise.resolve();
|
|
376
|
-
}
|
|
377
|
-
const [, contents] = await Promise.all([
|
|
378
|
-
chunkProm,
|
|
379
|
-
(0, io_1.lambdaLs)({
|
|
380
|
-
bucketName: params.bucketName,
|
|
381
|
-
prefix: (0, constants_1.rendersPrefix)(params.renderId),
|
|
382
|
-
expectedBucketOwner: options.expectedBucketOwner,
|
|
383
|
-
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
384
|
-
}),
|
|
385
|
-
]);
|
|
386
|
-
const finalEncodingProgress = {
|
|
387
|
-
framesEncoded: frameCount.length,
|
|
388
|
-
totalFrames: frameCount.length,
|
|
389
|
-
doneIn: encodingStop ? encodingStop - encodingStart : null,
|
|
390
|
-
timeToInvoke: (0, get_lambdas_invoked_stats_1.getLambdasInvokedStats)({
|
|
391
|
-
contents,
|
|
392
|
-
renderId: params.renderId,
|
|
393
|
-
estimatedRenderLambdaInvokations: renderMetadata.estimatedRenderLambdaInvokations,
|
|
394
|
-
checkIfAllLambdasWereInvoked: false,
|
|
395
|
-
startDate: renderMetadata.startedDate,
|
|
396
|
-
}).timeToInvokeLambdas,
|
|
397
|
-
};
|
|
422
|
+
const contents = await (0, io_1.lambdaLs)({
|
|
423
|
+
bucketName: params.bucketName,
|
|
424
|
+
prefix: (0, constants_1.rendersPrefix)(params.renderId),
|
|
425
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
426
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
427
|
+
});
|
|
398
428
|
const finalEncodingProgressProm = (0, io_1.lambdaWriteFile)({
|
|
399
429
|
bucketName: params.bucketName,
|
|
400
430
|
key: (0, constants_1.encodingProgressKey)(params.renderId),
|
|
401
|
-
body:
|
|
431
|
+
body: String(Math.ceil(frameCount.length / constants_1.ENCODING_PROGRESS_STEP_SIZE)),
|
|
402
432
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
403
433
|
privacy: 'private',
|
|
404
434
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
@@ -416,11 +446,18 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
416
446
|
chunkCount,
|
|
417
447
|
renderId: params.renderId,
|
|
418
448
|
});
|
|
419
|
-
const deletProm =
|
|
449
|
+
const deletProm = verbose
|
|
450
|
+
? Promise.resolve(0)
|
|
451
|
+
: (0, delete_chunks_1.cleanupFiles)({
|
|
452
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
453
|
+
bucket: params.bucketName,
|
|
454
|
+
contents,
|
|
455
|
+
jobs,
|
|
456
|
+
});
|
|
457
|
+
const cleanupSerializedInputPropsProm = (0, cleanup_serialized_input_props_1.cleanupSerializedInputProps)({
|
|
458
|
+
bucketName: params.bucketName,
|
|
420
459
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
421
|
-
|
|
422
|
-
contents,
|
|
423
|
-
jobs,
|
|
460
|
+
serialized: params.inputProps,
|
|
424
461
|
});
|
|
425
462
|
const outputUrl = (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(renderMetadata, params.bucketName, customCredentials);
|
|
426
463
|
const postRenderData = (0, create_post_render_data_1.createPostRenderData)({
|
|
@@ -432,7 +469,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
432
469
|
contents,
|
|
433
470
|
errorExplanations: await errorExplanationsProm,
|
|
434
471
|
timeToEncode: encodingStop - encodingStart,
|
|
435
|
-
timeToDelete: await deletProm,
|
|
472
|
+
timeToDelete: (await Promise.all([deletProm, cleanupSerializedInputPropsProm])).reduce((a, b) => a + b, 0),
|
|
436
473
|
outputFile: {
|
|
437
474
|
lastModified: Date.now(),
|
|
438
475
|
size: outputSize.size,
|
|
@@ -453,7 +490,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
453
490
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
454
491
|
customCredentials: null,
|
|
455
492
|
});
|
|
456
|
-
await Promise.all([cleanupChunksProm,
|
|
493
|
+
await Promise.all([cleanupChunksProm, node_fs_1.default.promises.rm(outfile)]);
|
|
457
494
|
clearTimeout(webhookDueToTimeout);
|
|
458
495
|
if (params.webhook && !webhookInvoked) {
|
|
459
496
|
try {
|
|
@@ -469,6 +506,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
469
506
|
lambdaErrors: postRenderData.errors,
|
|
470
507
|
outputFile: postRenderData.outputFile,
|
|
471
508
|
timeToFinish: postRenderData.timeToFinish,
|
|
509
|
+
costs: postRenderData.cost,
|
|
472
510
|
},
|
|
473
511
|
});
|
|
474
512
|
webhookInvoked = true;
|
|
@@ -12,9 +12,9 @@ const progressHandler = (lambdaParams, options) => {
|
|
|
12
12
|
}
|
|
13
13
|
if (lambdaParams.version !== version_1.VERSION) {
|
|
14
14
|
if (!lambdaParams.version) {
|
|
15
|
-
throw new Error(`Version mismatch: When calling getRenderProgress(),
|
|
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
16
|
}
|
|
17
|
-
throw new Error(`Version mismatch: When calling getRenderProgress(),
|
|
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
18
|
}
|
|
19
19
|
return (0, get_progress_1.getProgress)({
|
|
20
20
|
bucketName: lambdaParams.bucketName,
|