@remotion/lambda 4.0.0-webhook.27 → 4.0.1
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 +175 -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,82 @@ 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
|
+
});
|
|
146
|
+
const inputProps = await inputPropsPromise;
|
|
147
|
+
renderer_1.RenderInternals.Log.info('Validating composition, input props:', inputProps);
|
|
126
148
|
const comp = await (0, validate_composition_1.validateComposition)({
|
|
127
149
|
serveUrl: params.serveUrl,
|
|
128
150
|
composition: params.composition,
|
|
129
151
|
browserInstance,
|
|
130
|
-
inputProps
|
|
131
|
-
envVariables: params.envVariables,
|
|
132
|
-
ffmpegExecutable: null,
|
|
133
|
-
ffprobeExecutable: null,
|
|
152
|
+
inputProps,
|
|
153
|
+
envVariables: (_b = params.envVariables) !== null && _b !== void 0 ? _b : {},
|
|
134
154
|
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
135
155
|
chromiumOptions: params.chromiumOptions,
|
|
136
156
|
port: null,
|
|
137
|
-
|
|
157
|
+
forceHeight: params.forceHeight,
|
|
158
|
+
forceWidth: params.forceWidth,
|
|
159
|
+
logLevel: params.logLevel,
|
|
160
|
+
server: undefined,
|
|
161
|
+
});
|
|
162
|
+
renderer_1.RenderInternals.Log.info('Composition validated, resolved props', comp.props);
|
|
163
|
+
remotion_1.Internals.validateDurationInFrames(comp.durationInFrames, {
|
|
164
|
+
component: 'passed to a Lambda render',
|
|
165
|
+
allowFloats: false,
|
|
138
166
|
});
|
|
139
|
-
remotion_1.Internals.validateDurationInFrames(comp.durationInFrames, 'passed to a Lambda render');
|
|
140
167
|
remotion_1.Internals.validateFps(comp.fps, 'passed to a Lambda render', false);
|
|
141
168
|
remotion_1.Internals.validateDimension(comp.height, 'height', 'passed to a Lambda render');
|
|
142
169
|
remotion_1.Internals.validateDimension(comp.width, 'width', 'passed to a Lambda render');
|
|
170
|
+
renderer_1.RenderInternals.validateBitrate(params.audioBitrate, 'audioBitrate');
|
|
171
|
+
renderer_1.RenderInternals.validateBitrate(params.videoBitrate, 'videoBitrate');
|
|
143
172
|
renderer_1.RenderInternals.validateConcurrency(params.concurrencyPerLambda, 'concurrencyPerLambda');
|
|
144
173
|
const realFrameRange = renderer_1.RenderInternals.getRealFrameRange(comp.durationInFrames, params.frameRange);
|
|
145
174
|
const frameCount = renderer_1.RenderInternals.getFramesToRender(realFrameRange, params.everyNthFrame);
|
|
146
|
-
const framesPerLambda = (
|
|
175
|
+
const framesPerLambda = (_c = params.framesPerLambda) !== null && _c !== void 0 ? _c : (0, best_frames_per_lambda_param_1.bestFramesPerLambdaParam)(frameCount.length);
|
|
147
176
|
(0, validate_frames_per_lambda_1.validateFramesPerLambda)({
|
|
148
177
|
framesPerLambda,
|
|
149
178
|
durationInFrames: frameCount.length,
|
|
150
179
|
});
|
|
151
180
|
const chunkCount = Math.ceil(frameCount.length / framesPerLambda);
|
|
152
181
|
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
|
|
182
|
+
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
183
|
}
|
|
155
|
-
(0, validate_outname_1.validateOutname)(params.outName, params.codec);
|
|
156
|
-
(0, validate_privacy_1.validatePrivacy)(params.privacy);
|
|
184
|
+
(0, validate_outname_1.validateOutname)(params.outName, params.codec, params.audioCodec);
|
|
185
|
+
(0, validate_privacy_1.validatePrivacy)(params.privacy, true);
|
|
157
186
|
renderer_1.RenderInternals.validatePuppeteerTimeout(params.timeoutInMilliseconds);
|
|
158
|
-
const { chunks
|
|
187
|
+
const { chunks } = (0, plan_frame_ranges_1.planFrameRanges)({
|
|
159
188
|
framesPerLambda,
|
|
160
|
-
optimization,
|
|
161
|
-
// TODO: Re-enable chunk optimization later
|
|
162
|
-
shouldUseOptimization: false,
|
|
163
189
|
frameRange: realFrameRange,
|
|
164
190
|
everyNthFrame: params.everyNthFrame,
|
|
165
191
|
});
|
|
166
192
|
const sortedChunks = chunks.slice().sort((a, b) => a[0] - b[0]);
|
|
167
|
-
const invokers = Math.round(Math.sqrt(chunks.length));
|
|
168
193
|
const reqSend = (0, timer_1.timer)('sending off requests');
|
|
194
|
+
const serializedResolved = (0, serialize_props_1.serializeOrThrow)(comp.props, 'resolved-props');
|
|
195
|
+
const serializedDefault = (0, serialize_props_1.serializeOrThrow)(comp.defaultProps, 'default-props');
|
|
196
|
+
const needsToUpload = (0, serialize_props_1.getNeedsToUpload)('video-or-audio', serializedResolved + serializedDefault);
|
|
197
|
+
const [serializedResolvedProps, serializedDefaultProps] = await Promise.all([
|
|
198
|
+
(0, serialize_props_1.serializeInputProps)({
|
|
199
|
+
propsType: 'resolved-props',
|
|
200
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
201
|
+
stringifiedInputProps: serializedResolved,
|
|
202
|
+
userSpecifiedBucketName: params.bucketName,
|
|
203
|
+
needsToUpload,
|
|
204
|
+
}),
|
|
205
|
+
(0, serialize_props_1.serializeInputProps)({
|
|
206
|
+
propsType: 'default-props',
|
|
207
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
208
|
+
stringifiedInputProps: serializedDefault,
|
|
209
|
+
userSpecifiedBucketName: params.bucketName,
|
|
210
|
+
needsToUpload,
|
|
211
|
+
}),
|
|
212
|
+
]);
|
|
169
213
|
const lambdaPayloads = chunks.map((chunkPayload) => {
|
|
170
214
|
var _a;
|
|
171
215
|
const payload = {
|
|
@@ -183,12 +227,12 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
183
227
|
inputProps: params.inputProps,
|
|
184
228
|
renderId: params.renderId,
|
|
185
229
|
imageFormat: params.imageFormat,
|
|
186
|
-
codec: params.codec
|
|
230
|
+
codec: params.codec,
|
|
187
231
|
crf: params.crf,
|
|
188
232
|
envVariables: params.envVariables,
|
|
189
233
|
pixelFormat: params.pixelFormat,
|
|
190
234
|
proResProfile: params.proResProfile,
|
|
191
|
-
|
|
235
|
+
jpegQuality: params.jpegQuality,
|
|
192
236
|
privacy: params.privacy,
|
|
193
237
|
logLevel: (_a = params.logLevel) !== null && _a !== void 0 ? _a : 'info',
|
|
194
238
|
attempt: 1,
|
|
@@ -198,9 +242,17 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
198
242
|
everyNthFrame: params.everyNthFrame,
|
|
199
243
|
concurrencyPerLambda: params.concurrencyPerLambda,
|
|
200
244
|
muted: params.muted,
|
|
245
|
+
audioBitrate: params.audioBitrate,
|
|
246
|
+
videoBitrate: params.videoBitrate,
|
|
247
|
+
launchFunctionConfig: {
|
|
248
|
+
version: version_1.VERSION,
|
|
249
|
+
},
|
|
250
|
+
resolvedProps: serializedResolvedProps,
|
|
251
|
+
defaultProps: serializedDefaultProps,
|
|
201
252
|
};
|
|
202
253
|
return payload;
|
|
203
254
|
});
|
|
255
|
+
console.log('Render plan: ', chunks.map((c, i) => `Chunk ${i} (Frames ${c[0]} - ${c[1]})`).join(', '));
|
|
204
256
|
const renderMetadata = {
|
|
205
257
|
startedDate,
|
|
206
258
|
videoConfig: comp,
|
|
@@ -208,15 +260,13 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
208
260
|
estimatedTotalLambdaInvokations: [
|
|
209
261
|
// Direct invokations
|
|
210
262
|
chunks.length,
|
|
211
|
-
// Parent invokers
|
|
212
|
-
invokers,
|
|
213
263
|
// This function
|
|
264
|
+
1,
|
|
214
265
|
].reduce((a, b) => a + b, 0),
|
|
215
266
|
estimatedRenderLambdaInvokations: chunks.length,
|
|
216
267
|
compositionId: comp.id,
|
|
217
268
|
siteId: (0, make_s3_url_1.getServeUrlHash)(params.serveUrl),
|
|
218
269
|
codec: params.codec,
|
|
219
|
-
usesOptimizationProfile: didUseOptimization,
|
|
220
270
|
type: 'video',
|
|
221
271
|
imageFormat: params.imageFormat,
|
|
222
272
|
inputProps: params.inputProps,
|
|
@@ -225,12 +275,15 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
225
275
|
memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
|
|
226
276
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
227
277
|
renderId: params.renderId,
|
|
228
|
-
outName: (
|
|
278
|
+
outName: (_d = params.outName) !== null && _d !== void 0 ? _d : undefined,
|
|
229
279
|
privacy: params.privacy,
|
|
280
|
+
everyNthFrame: params.everyNthFrame,
|
|
281
|
+
frameRange: realFrameRange,
|
|
282
|
+
audioCodec: params.audioCodec,
|
|
230
283
|
};
|
|
231
284
|
const { key, renderBucketName, customCredentials } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, params.bucketName, typeof params.outName === 'string' || typeof params.outName === 'undefined'
|
|
232
285
|
? null
|
|
233
|
-
: (
|
|
286
|
+
: (_f = (_e = params.outName) === null || _e === void 0 ? void 0 : _e.s3OutputProvider) !== null && _f !== void 0 ? _f : null);
|
|
234
287
|
const output = await (0, find_output_file_in_bucket_1.findOutputFileInBucket)({
|
|
235
288
|
bucketName: params.bucketName,
|
|
236
289
|
customCredentials,
|
|
@@ -261,34 +314,22 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
261
314
|
downloadBehavior: null,
|
|
262
315
|
customCredentials: null,
|
|
263
316
|
});
|
|
264
|
-
await Promise.all(lambdaPayloads.map(async (payload
|
|
265
|
-
|
|
266
|
-
await callFunctionWithRetry(payload);
|
|
267
|
-
callingLambdaTimer.end();
|
|
317
|
+
await Promise.all(lambdaPayloads.map(async (payload) => {
|
|
318
|
+
await callFunctionWithRetry({ payload, retries: 0, functionName });
|
|
268
319
|
}));
|
|
269
320
|
reqSend.end();
|
|
270
321
|
let lastProgressUploaded = 0;
|
|
271
|
-
|
|
272
|
-
const onProgress = (framesEncoded, start) => {
|
|
322
|
+
const onProgress = (framesEncoded) => {
|
|
273
323
|
const relativeProgress = framesEncoded / frameCount.length;
|
|
274
324
|
const deltaSinceLastProgressUploaded = relativeProgress - lastProgressUploaded;
|
|
275
|
-
if (relativeProgress === 1) {
|
|
276
|
-
encodingStop = Date.now();
|
|
277
|
-
}
|
|
278
325
|
if (deltaSinceLastProgressUploaded < 0.1) {
|
|
279
326
|
return;
|
|
280
327
|
}
|
|
281
328
|
lastProgressUploaded = relativeProgress;
|
|
282
|
-
const encodingProgress = {
|
|
283
|
-
framesEncoded,
|
|
284
|
-
totalFrames: frameCount.length,
|
|
285
|
-
doneIn: encodingStop ? encodingStop - start : null,
|
|
286
|
-
timeToInvoke: null,
|
|
287
|
-
};
|
|
288
329
|
(0, io_1.lambdaWriteFile)({
|
|
289
330
|
bucketName: params.bucketName,
|
|
290
331
|
key: (0, constants_1.encodingProgressKey)(params.renderId),
|
|
291
|
-
body:
|
|
332
|
+
body: String(Math.round(framesEncoded / constants_1.ENCODING_PROGRESS_STEP_SIZE)),
|
|
292
333
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
293
334
|
privacy: 'private',
|
|
294
335
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
@@ -315,90 +356,82 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
315
356
|
});
|
|
316
357
|
});
|
|
317
358
|
};
|
|
359
|
+
const onErrors = async (errors) => {
|
|
360
|
+
var _a;
|
|
361
|
+
console.log('Found Errors', errors);
|
|
362
|
+
if (params.webhook) {
|
|
363
|
+
console.log('Sending webhook with errors');
|
|
364
|
+
await (0, invoke_webhook_1.invokeWebhook)({
|
|
365
|
+
url: params.webhook.url,
|
|
366
|
+
secret: (_a = params.webhook.secret) !== null && _a !== void 0 ? _a : null,
|
|
367
|
+
payload: {
|
|
368
|
+
type: 'error',
|
|
369
|
+
renderId: params.renderId,
|
|
370
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
371
|
+
bucketName: params.bucketName,
|
|
372
|
+
errors: errors.slice(0, 5).map((e) => ({
|
|
373
|
+
message: e.message,
|
|
374
|
+
name: e.name,
|
|
375
|
+
stack: e.stack,
|
|
376
|
+
})),
|
|
377
|
+
},
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
console.log('No webhook specified');
|
|
382
|
+
}
|
|
383
|
+
throw new Error('Stopping Lambda function because error occurred: ' + errors[0].stack);
|
|
384
|
+
};
|
|
318
385
|
const fps = comp.fps / params.everyNthFrame;
|
|
319
|
-
const
|
|
386
|
+
const outdir = (0, node_path_1.join)(renderer_1.RenderInternals.tmpDir(constants_1.CONCAT_FOLDER_TOKEN), 'bucket');
|
|
387
|
+
if ((0, node_fs_1.existsSync)(outdir)) {
|
|
388
|
+
(0, node_fs_1.rmSync)(outdir, {
|
|
389
|
+
recursive: true,
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
(0, node_fs_1.mkdirSync)(outdir);
|
|
393
|
+
const files = await (0, concat_videos_1.getAllFilesS3)({
|
|
320
394
|
bucket: params.bucketName,
|
|
321
395
|
expectedFiles: chunkCount,
|
|
322
|
-
|
|
323
|
-
numberOfFrames: frameCount.length,
|
|
396
|
+
outdir,
|
|
324
397
|
renderId: params.renderId,
|
|
325
398
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
326
|
-
codec: params.codec,
|
|
327
399
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
400
|
+
onErrors,
|
|
401
|
+
});
|
|
402
|
+
const encodingStart = Date.now();
|
|
403
|
+
const { outfile, cleanupChunksProm } = await (0, concat_videos_1.concatVideosS3)({
|
|
404
|
+
onProgress,
|
|
405
|
+
numberOfFrames: frameCount.length,
|
|
406
|
+
codec: params.codec,
|
|
328
407
|
fps,
|
|
329
408
|
numberOfGifLoops: params.numberOfGifLoops,
|
|
409
|
+
files,
|
|
410
|
+
outdir,
|
|
411
|
+
audioCodec: params.audioCodec,
|
|
330
412
|
});
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
}
|
|
334
|
-
const outputSize = fs_1.default.statSync(outfile);
|
|
413
|
+
const encodingStop = Date.now();
|
|
414
|
+
const outputSize = node_fs_1.default.statSync(outfile);
|
|
335
415
|
await (0, io_1.lambdaWriteFile)({
|
|
336
416
|
bucketName: renderBucketName,
|
|
337
417
|
key,
|
|
338
|
-
body:
|
|
418
|
+
body: node_fs_1.default.createReadStream(outfile),
|
|
339
419
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
340
420
|
privacy: params.privacy,
|
|
341
421
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
342
422
|
downloadBehavior: params.downloadBehavior,
|
|
343
423
|
customCredentials,
|
|
344
424
|
});
|
|
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
|
-
};
|
|
425
|
+
const contents = await (0, io_1.lambdaLs)({
|
|
426
|
+
bucketName: params.bucketName,
|
|
427
|
+
prefix: (0, constants_1.rendersPrefix)(params.renderId),
|
|
428
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
429
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
430
|
+
});
|
|
398
431
|
const finalEncodingProgressProm = (0, io_1.lambdaWriteFile)({
|
|
399
432
|
bucketName: params.bucketName,
|
|
400
433
|
key: (0, constants_1.encodingProgressKey)(params.renderId),
|
|
401
|
-
body:
|
|
434
|
+
body: String(Math.ceil(frameCount.length / constants_1.ENCODING_PROGRESS_STEP_SIZE)),
|
|
402
435
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
403
436
|
privacy: 'private',
|
|
404
437
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
@@ -416,11 +449,18 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
416
449
|
chunkCount,
|
|
417
450
|
renderId: params.renderId,
|
|
418
451
|
});
|
|
419
|
-
const deletProm =
|
|
452
|
+
const deletProm = verbose
|
|
453
|
+
? Promise.resolve(0)
|
|
454
|
+
: (0, delete_chunks_1.cleanupFiles)({
|
|
455
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
456
|
+
bucket: params.bucketName,
|
|
457
|
+
contents,
|
|
458
|
+
jobs,
|
|
459
|
+
});
|
|
460
|
+
const cleanupSerializedInputPropsProm = (0, cleanup_serialized_input_props_1.cleanupSerializedInputProps)({
|
|
461
|
+
bucketName: params.bucketName,
|
|
420
462
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
421
|
-
|
|
422
|
-
contents,
|
|
423
|
-
jobs,
|
|
463
|
+
serialized: params.inputProps,
|
|
424
464
|
});
|
|
425
465
|
const outputUrl = (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(renderMetadata, params.bucketName, customCredentials);
|
|
426
466
|
const postRenderData = (0, create_post_render_data_1.createPostRenderData)({
|
|
@@ -432,7 +472,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
432
472
|
contents,
|
|
433
473
|
errorExplanations: await errorExplanationsProm,
|
|
434
474
|
timeToEncode: encodingStop - encodingStart,
|
|
435
|
-
timeToDelete: await deletProm,
|
|
475
|
+
timeToDelete: (await Promise.all([deletProm, cleanupSerializedInputPropsProm])).reduce((a, b) => a + b, 0),
|
|
436
476
|
outputFile: {
|
|
437
477
|
lastModified: Date.now(),
|
|
438
478
|
size: outputSize.size,
|
|
@@ -453,7 +493,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
453
493
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
454
494
|
customCredentials: null,
|
|
455
495
|
});
|
|
456
|
-
await Promise.all([cleanupChunksProm,
|
|
496
|
+
await Promise.all([cleanupChunksProm, node_fs_1.default.promises.rm(outfile)]);
|
|
457
497
|
clearTimeout(webhookDueToTimeout);
|
|
458
498
|
if (params.webhook && !webhookInvoked) {
|
|
459
499
|
try {
|
|
@@ -469,6 +509,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
469
509
|
lambdaErrors: postRenderData.errors,
|
|
470
510
|
outputFile: postRenderData.outputFile,
|
|
471
511
|
timeToFinish: postRenderData.timeToFinish,
|
|
512
|
+
costs: postRenderData.cost,
|
|
472
513
|
},
|
|
473
514
|
});
|
|
474
515
|
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,
|