@remotion/lambda 4.0.0-webhook.27 → 4.1.0-alpha2
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 +1 -1
- package/dist/api/get-buckets.js +26 -9
- package/dist/api/get-compositions-on-lambda.d.ts +31 -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 +4 -5
- package/dist/api/get-sites.js +1 -2
- package/dist/api/iam-validation/role-permissions.d.ts +0 -0
- package/dist/api/iam-validation/role-permissions.js +0 -0
- package/dist/api/iam-validation/simulate-rule.d.ts +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 +77 -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 +25 -11
- package/dist/api/render-media-on-lambda.js +16 -49
- package/dist/api/render-still-on-lambda.d.ts +15 -6
- package/dist/api/render-still-on-lambda.js +23 -9
- 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 +36 -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 +6 -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 +15 -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 +1 -2
- package/dist/functions/helpers/get-browser-instance.js +7 -3
- 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 +31 -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 +0 -0
- package/dist/functions/helpers/print-concurrency-curve.d.ts +0 -0
- package/dist/functions/helpers/print-concurrency-curve.js +0 -0
- package/dist/functions/helpers/read-with-progress.d.ts +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 +16 -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 +43 -10
- 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 +152 -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 +73 -42
- package/dist/functions/start.d.ts +1 -1
- package/dist/functions/start.js +22 -8
- package/dist/functions/still.d.ts +1 -1
- package/dist/functions/still.js +80 -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 +140 -89
- package/dist/shared/constants.js +7 -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/deserialize-input-props.d.ts +8 -0
- package/dist/shared/deserialize-input-props.js +26 -0
- package/dist/shared/docs-url.d.ts +0 -0
- package/dist/shared/docs-url.js +0 -0
- package/dist/shared/function-zip-path.d.ts +1 -1
- package/dist/shared/function-zip-path.js +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-input-props.d.ts +8 -0
- package/dist/shared/serialize-input-props.js +42 -0
- package/dist/shared/sleep.d.ts +0 -0
- package/dist/shared/sleep.js +0 -0
- package/dist/shared/stream-to-string.d.ts +0 -0
- package/dist/shared/stream-to-string.js +0 -0
- package/dist/shared/truthy.d.ts +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/.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,30 +1,46 @@
|
|
|
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");
|
|
36
|
+
const deserialize_input_props_1 = require("../shared/deserialize-input-props");
|
|
14
37
|
const docs_url_1 = require("../shared/docs-url");
|
|
15
38
|
const invoke_webhook_1 = require("../shared/invoke-webhook");
|
|
16
39
|
const make_s3_url_1 = require("../shared/make-s3-url");
|
|
17
40
|
const validate_frames_per_lambda_1 = require("../shared/validate-frames-per-lambda");
|
|
18
41
|
const validate_outname_1 = require("../shared/validate-outname");
|
|
19
42
|
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
43
|
const plan_frame_ranges_1 = require("./chunk-optimization/plan-frame-ranges");
|
|
27
|
-
const s3_optimization_file_1 = require("./chunk-optimization/s3-optimization-file");
|
|
28
44
|
const best_frames_per_lambda_param_1 = require("./helpers/best-frames-per-lambda-param");
|
|
29
45
|
const concat_videos_1 = require("./helpers/concat-videos");
|
|
30
46
|
const create_post_render_data_1 = require("./helpers/create-post-render-data");
|
|
@@ -34,7 +50,6 @@ const find_output_file_in_bucket_1 = require("./helpers/find-output-file-in-buck
|
|
|
34
50
|
const get_browser_instance_1 = require("./helpers/get-browser-instance");
|
|
35
51
|
const get_current_region_1 = require("./helpers/get-current-region");
|
|
36
52
|
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
53
|
const get_output_url_from_metadata_1 = require("./helpers/get-output-url-from-metadata");
|
|
39
54
|
const inspect_errors_1 = require("./helpers/inspect-errors");
|
|
40
55
|
const io_1 = require("./helpers/io");
|
|
@@ -42,10 +57,10 @@ const timer_1 = require("./helpers/timer");
|
|
|
42
57
|
const validate_composition_1 = require("./helpers/validate-composition");
|
|
43
58
|
const write_lambda_error_1 = require("./helpers/write-lambda-error");
|
|
44
59
|
const write_post_render_data_1 = require("./helpers/write-post-render-data");
|
|
45
|
-
const callFunctionWithRetry = async (payload, retries
|
|
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,60 +134,59 @@ 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
|
-
expectedBucketOwner: options.expectedBucketOwner,
|
|
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)(verbose, params.chromiumOptions);
|
|
139
|
+
const inputPropsPromise = (0, deserialize_input_props_1.deserializeInputProps)({
|
|
140
|
+
bucketName: params.bucketName,
|
|
141
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
142
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
143
|
+
serialized: params.inputProps,
|
|
144
|
+
});
|
|
126
145
|
const comp = await (0, validate_composition_1.validateComposition)({
|
|
127
146
|
serveUrl: params.serveUrl,
|
|
128
147
|
composition: params.composition,
|
|
129
148
|
browserInstance,
|
|
130
|
-
inputProps:
|
|
131
|
-
envVariables: params.envVariables,
|
|
132
|
-
ffmpegExecutable: null,
|
|
133
|
-
ffprobeExecutable: null,
|
|
149
|
+
inputProps: await inputPropsPromise,
|
|
150
|
+
envVariables: (_b = params.envVariables) !== null && _b !== void 0 ? _b : {},
|
|
134
151
|
timeoutInMilliseconds: params.timeoutInMilliseconds,
|
|
135
152
|
chromiumOptions: params.chromiumOptions,
|
|
136
153
|
port: null,
|
|
137
|
-
|
|
154
|
+
forceHeight: params.forceHeight,
|
|
155
|
+
forceWidth: params.forceWidth,
|
|
156
|
+
logLevel: params.logLevel,
|
|
157
|
+
server: undefined,
|
|
158
|
+
});
|
|
159
|
+
remotion_1.Internals.validateDurationInFrames({
|
|
160
|
+
durationInFrames: 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');
|
|
169
191
|
const lambdaPayloads = chunks.map((chunkPayload) => {
|
|
170
192
|
var _a;
|
|
@@ -183,12 +205,12 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
183
205
|
inputProps: params.inputProps,
|
|
184
206
|
renderId: params.renderId,
|
|
185
207
|
imageFormat: params.imageFormat,
|
|
186
|
-
codec: params.codec
|
|
208
|
+
codec: params.codec,
|
|
187
209
|
crf: params.crf,
|
|
188
210
|
envVariables: params.envVariables,
|
|
189
211
|
pixelFormat: params.pixelFormat,
|
|
190
212
|
proResProfile: params.proResProfile,
|
|
191
|
-
|
|
213
|
+
jpegQuality: params.jpegQuality,
|
|
192
214
|
privacy: params.privacy,
|
|
193
215
|
logLevel: (_a = params.logLevel) !== null && _a !== void 0 ? _a : 'info',
|
|
194
216
|
attempt: 1,
|
|
@@ -198,9 +220,16 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
198
220
|
everyNthFrame: params.everyNthFrame,
|
|
199
221
|
concurrencyPerLambda: params.concurrencyPerLambda,
|
|
200
222
|
muted: params.muted,
|
|
223
|
+
audioBitrate: params.audioBitrate,
|
|
224
|
+
videoBitrate: params.videoBitrate,
|
|
225
|
+
launchFunctionConfig: {
|
|
226
|
+
version: version_1.VERSION,
|
|
227
|
+
},
|
|
228
|
+
dumpBrowserLogs: params.dumpBrowserLogs,
|
|
201
229
|
};
|
|
202
230
|
return payload;
|
|
203
231
|
});
|
|
232
|
+
console.log('Render plan: ', chunks.map((c, i) => `Chunk ${i} (Frames ${c[0]} - ${c[1]})`).join(', '));
|
|
204
233
|
const renderMetadata = {
|
|
205
234
|
startedDate,
|
|
206
235
|
videoConfig: comp,
|
|
@@ -208,15 +237,13 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
208
237
|
estimatedTotalLambdaInvokations: [
|
|
209
238
|
// Direct invokations
|
|
210
239
|
chunks.length,
|
|
211
|
-
// Parent invokers
|
|
212
|
-
invokers,
|
|
213
240
|
// This function
|
|
241
|
+
1,
|
|
214
242
|
].reduce((a, b) => a + b, 0),
|
|
215
243
|
estimatedRenderLambdaInvokations: chunks.length,
|
|
216
244
|
compositionId: comp.id,
|
|
217
245
|
siteId: (0, make_s3_url_1.getServeUrlHash)(params.serveUrl),
|
|
218
246
|
codec: params.codec,
|
|
219
|
-
usesOptimizationProfile: didUseOptimization,
|
|
220
247
|
type: 'video',
|
|
221
248
|
imageFormat: params.imageFormat,
|
|
222
249
|
inputProps: params.inputProps,
|
|
@@ -225,12 +252,15 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
225
252
|
memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
|
|
226
253
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
227
254
|
renderId: params.renderId,
|
|
228
|
-
outName: (
|
|
255
|
+
outName: (_d = params.outName) !== null && _d !== void 0 ? _d : undefined,
|
|
229
256
|
privacy: params.privacy,
|
|
257
|
+
everyNthFrame: params.everyNthFrame,
|
|
258
|
+
frameRange: realFrameRange,
|
|
259
|
+
audioCodec: params.audioCodec,
|
|
230
260
|
};
|
|
231
261
|
const { key, renderBucketName, customCredentials } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, params.bucketName, typeof params.outName === 'string' || typeof params.outName === 'undefined'
|
|
232
262
|
? null
|
|
233
|
-
: (
|
|
263
|
+
: (_f = (_e = params.outName) === null || _e === void 0 ? void 0 : _e.s3OutputProvider) !== null && _f !== void 0 ? _f : null);
|
|
234
264
|
const output = await (0, find_output_file_in_bucket_1.findOutputFileInBucket)({
|
|
235
265
|
bucketName: params.bucketName,
|
|
236
266
|
customCredentials,
|
|
@@ -261,34 +291,22 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
261
291
|
downloadBehavior: null,
|
|
262
292
|
customCredentials: null,
|
|
263
293
|
});
|
|
264
|
-
await Promise.all(lambdaPayloads.map(async (payload
|
|
265
|
-
|
|
266
|
-
await callFunctionWithRetry(payload);
|
|
267
|
-
callingLambdaTimer.end();
|
|
294
|
+
await Promise.all(lambdaPayloads.map(async (payload) => {
|
|
295
|
+
await callFunctionWithRetry({ payload, retries: 0, functionName });
|
|
268
296
|
}));
|
|
269
297
|
reqSend.end();
|
|
270
298
|
let lastProgressUploaded = 0;
|
|
271
|
-
|
|
272
|
-
const onProgress = (framesEncoded, start) => {
|
|
299
|
+
const onProgress = (framesEncoded) => {
|
|
273
300
|
const relativeProgress = framesEncoded / frameCount.length;
|
|
274
301
|
const deltaSinceLastProgressUploaded = relativeProgress - lastProgressUploaded;
|
|
275
|
-
if (relativeProgress === 1) {
|
|
276
|
-
encodingStop = Date.now();
|
|
277
|
-
}
|
|
278
302
|
if (deltaSinceLastProgressUploaded < 0.1) {
|
|
279
303
|
return;
|
|
280
304
|
}
|
|
281
305
|
lastProgressUploaded = relativeProgress;
|
|
282
|
-
const encodingProgress = {
|
|
283
|
-
framesEncoded,
|
|
284
|
-
totalFrames: frameCount.length,
|
|
285
|
-
doneIn: encodingStop ? encodingStop - start : null,
|
|
286
|
-
timeToInvoke: null,
|
|
287
|
-
};
|
|
288
306
|
(0, io_1.lambdaWriteFile)({
|
|
289
307
|
bucketName: params.bucketName,
|
|
290
308
|
key: (0, constants_1.encodingProgressKey)(params.renderId),
|
|
291
|
-
body:
|
|
309
|
+
body: String(Math.round(framesEncoded / constants_1.ENCODING_PROGRESS_STEP_SIZE)),
|
|
292
310
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
293
311
|
privacy: 'private',
|
|
294
312
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
@@ -315,90 +333,82 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
315
333
|
});
|
|
316
334
|
});
|
|
317
335
|
};
|
|
336
|
+
const onErrors = async (errors) => {
|
|
337
|
+
var _a;
|
|
338
|
+
console.log('Found Errors', errors);
|
|
339
|
+
if (params.webhook) {
|
|
340
|
+
console.log('Sending webhook with errors');
|
|
341
|
+
await (0, invoke_webhook_1.invokeWebhook)({
|
|
342
|
+
url: params.webhook.url,
|
|
343
|
+
secret: (_a = params.webhook.secret) !== null && _a !== void 0 ? _a : null,
|
|
344
|
+
payload: {
|
|
345
|
+
type: 'error',
|
|
346
|
+
renderId: params.renderId,
|
|
347
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
348
|
+
bucketName: params.bucketName,
|
|
349
|
+
errors: errors.slice(0, 5).map((e) => ({
|
|
350
|
+
message: e.message,
|
|
351
|
+
name: e.name,
|
|
352
|
+
stack: e.stack,
|
|
353
|
+
})),
|
|
354
|
+
},
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
console.log('No webhook specified');
|
|
359
|
+
}
|
|
360
|
+
throw new Error('Stopping Lambda function because error occurred: ' + errors[0].stack);
|
|
361
|
+
};
|
|
318
362
|
const fps = comp.fps / params.everyNthFrame;
|
|
319
|
-
const
|
|
363
|
+
const outdir = (0, node_path_1.join)(renderer_1.RenderInternals.tmpDir(constants_1.CONCAT_FOLDER_TOKEN), 'bucket');
|
|
364
|
+
if ((0, node_fs_1.existsSync)(outdir)) {
|
|
365
|
+
(0, node_fs_1.rmSync)(outdir, {
|
|
366
|
+
recursive: true,
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
(0, node_fs_1.mkdirSync)(outdir);
|
|
370
|
+
const files = await (0, concat_videos_1.getAllFilesS3)({
|
|
320
371
|
bucket: params.bucketName,
|
|
321
372
|
expectedFiles: chunkCount,
|
|
322
|
-
|
|
323
|
-
numberOfFrames: frameCount.length,
|
|
373
|
+
outdir,
|
|
324
374
|
renderId: params.renderId,
|
|
325
375
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
326
|
-
codec: params.codec,
|
|
327
376
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
377
|
+
onErrors,
|
|
378
|
+
});
|
|
379
|
+
const encodingStart = Date.now();
|
|
380
|
+
const { outfile, cleanupChunksProm } = await (0, concat_videos_1.concatVideosS3)({
|
|
381
|
+
onProgress,
|
|
382
|
+
numberOfFrames: frameCount.length,
|
|
383
|
+
codec: params.codec,
|
|
328
384
|
fps,
|
|
329
385
|
numberOfGifLoops: params.numberOfGifLoops,
|
|
386
|
+
files,
|
|
387
|
+
outdir,
|
|
388
|
+
audioCodec: params.audioCodec,
|
|
330
389
|
});
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
}
|
|
334
|
-
const outputSize = fs_1.default.statSync(outfile);
|
|
390
|
+
const encodingStop = Date.now();
|
|
391
|
+
const outputSize = node_fs_1.default.statSync(outfile);
|
|
335
392
|
await (0, io_1.lambdaWriteFile)({
|
|
336
393
|
bucketName: renderBucketName,
|
|
337
394
|
key,
|
|
338
|
-
body:
|
|
395
|
+
body: node_fs_1.default.createReadStream(outfile),
|
|
339
396
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
340
397
|
privacy: params.privacy,
|
|
341
398
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
342
399
|
downloadBehavior: params.downloadBehavior,
|
|
343
400
|
customCredentials,
|
|
344
401
|
});
|
|
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
|
-
};
|
|
402
|
+
const contents = await (0, io_1.lambdaLs)({
|
|
403
|
+
bucketName: params.bucketName,
|
|
404
|
+
prefix: (0, constants_1.rendersPrefix)(params.renderId),
|
|
405
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
406
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
407
|
+
});
|
|
398
408
|
const finalEncodingProgressProm = (0, io_1.lambdaWriteFile)({
|
|
399
409
|
bucketName: params.bucketName,
|
|
400
410
|
key: (0, constants_1.encodingProgressKey)(params.renderId),
|
|
401
|
-
body:
|
|
411
|
+
body: String(Math.ceil(frameCount.length / constants_1.ENCODING_PROGRESS_STEP_SIZE)),
|
|
402
412
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
403
413
|
privacy: 'private',
|
|
404
414
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
@@ -416,11 +426,18 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
416
426
|
chunkCount,
|
|
417
427
|
renderId: params.renderId,
|
|
418
428
|
});
|
|
419
|
-
const deletProm =
|
|
429
|
+
const deletProm = verbose
|
|
430
|
+
? Promise.resolve(0)
|
|
431
|
+
: (0, delete_chunks_1.cleanupFiles)({
|
|
432
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
433
|
+
bucket: params.bucketName,
|
|
434
|
+
contents,
|
|
435
|
+
jobs,
|
|
436
|
+
});
|
|
437
|
+
const cleanupSerializedInputPropsProm = (0, cleanup_serialized_input_props_1.cleanupSerializedInputProps)({
|
|
438
|
+
bucketName: params.bucketName,
|
|
420
439
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
421
|
-
|
|
422
|
-
contents,
|
|
423
|
-
jobs,
|
|
440
|
+
serialized: params.inputProps,
|
|
424
441
|
});
|
|
425
442
|
const outputUrl = (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(renderMetadata, params.bucketName, customCredentials);
|
|
426
443
|
const postRenderData = (0, create_post_render_data_1.createPostRenderData)({
|
|
@@ -432,7 +449,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
432
449
|
contents,
|
|
433
450
|
errorExplanations: await errorExplanationsProm,
|
|
434
451
|
timeToEncode: encodingStop - encodingStart,
|
|
435
|
-
timeToDelete: await deletProm,
|
|
452
|
+
timeToDelete: (await Promise.all([deletProm, cleanupSerializedInputPropsProm])).reduce((a, b) => a + b, 0),
|
|
436
453
|
outputFile: {
|
|
437
454
|
lastModified: Date.now(),
|
|
438
455
|
size: outputSize.size,
|
|
@@ -453,7 +470,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
453
470
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
454
471
|
customCredentials: null,
|
|
455
472
|
});
|
|
456
|
-
await Promise.all([cleanupChunksProm,
|
|
473
|
+
await Promise.all([cleanupChunksProm, node_fs_1.default.promises.rm(outfile)]);
|
|
457
474
|
clearTimeout(webhookDueToTimeout);
|
|
458
475
|
if (params.webhook && !webhookInvoked) {
|
|
459
476
|
try {
|
|
@@ -469,6 +486,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
469
486
|
lambdaErrors: postRenderData.errors,
|
|
470
487
|
outputFile: postRenderData.outputFile,
|
|
471
488
|
timeToFinish: postRenderData.timeToFinish,
|
|
489
|
+
costs: postRenderData.cost,
|
|
472
490
|
},
|
|
473
491
|
});
|
|
474
492
|
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,
|