@remotion/lambda 4.0.0-webhook.27 → 4.1.0-alpha3
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 +57 -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 +79 -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 +25 -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 +59 -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 +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 +151 -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 -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 +78 -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 +135 -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)(params.logLevel, false, 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,15 @@ 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
|
+
},
|
|
201
228
|
};
|
|
202
229
|
return payload;
|
|
203
230
|
});
|
|
231
|
+
console.log('Render plan: ', chunks.map((c, i) => `Chunk ${i} (Frames ${c[0]} - ${c[1]})`).join(', '));
|
|
204
232
|
const renderMetadata = {
|
|
205
233
|
startedDate,
|
|
206
234
|
videoConfig: comp,
|
|
@@ -208,15 +236,13 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
208
236
|
estimatedTotalLambdaInvokations: [
|
|
209
237
|
// Direct invokations
|
|
210
238
|
chunks.length,
|
|
211
|
-
// Parent invokers
|
|
212
|
-
invokers,
|
|
213
239
|
// This function
|
|
240
|
+
1,
|
|
214
241
|
].reduce((a, b) => a + b, 0),
|
|
215
242
|
estimatedRenderLambdaInvokations: chunks.length,
|
|
216
243
|
compositionId: comp.id,
|
|
217
244
|
siteId: (0, make_s3_url_1.getServeUrlHash)(params.serveUrl),
|
|
218
245
|
codec: params.codec,
|
|
219
|
-
usesOptimizationProfile: didUseOptimization,
|
|
220
246
|
type: 'video',
|
|
221
247
|
imageFormat: params.imageFormat,
|
|
222
248
|
inputProps: params.inputProps,
|
|
@@ -225,12 +251,15 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
225
251
|
memorySizeInMb: Number(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE),
|
|
226
252
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
227
253
|
renderId: params.renderId,
|
|
228
|
-
outName: (
|
|
254
|
+
outName: (_d = params.outName) !== null && _d !== void 0 ? _d : undefined,
|
|
229
255
|
privacy: params.privacy,
|
|
256
|
+
everyNthFrame: params.everyNthFrame,
|
|
257
|
+
frameRange: realFrameRange,
|
|
258
|
+
audioCodec: params.audioCodec,
|
|
230
259
|
};
|
|
231
260
|
const { key, renderBucketName, customCredentials } = (0, expected_out_name_1.getExpectedOutName)(renderMetadata, params.bucketName, typeof params.outName === 'string' || typeof params.outName === 'undefined'
|
|
232
261
|
? null
|
|
233
|
-
: (
|
|
262
|
+
: (_f = (_e = params.outName) === null || _e === void 0 ? void 0 : _e.s3OutputProvider) !== null && _f !== void 0 ? _f : null);
|
|
234
263
|
const output = await (0, find_output_file_in_bucket_1.findOutputFileInBucket)({
|
|
235
264
|
bucketName: params.bucketName,
|
|
236
265
|
customCredentials,
|
|
@@ -261,34 +290,22 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
261
290
|
downloadBehavior: null,
|
|
262
291
|
customCredentials: null,
|
|
263
292
|
});
|
|
264
|
-
await Promise.all(lambdaPayloads.map(async (payload
|
|
265
|
-
|
|
266
|
-
await callFunctionWithRetry(payload);
|
|
267
|
-
callingLambdaTimer.end();
|
|
293
|
+
await Promise.all(lambdaPayloads.map(async (payload) => {
|
|
294
|
+
await callFunctionWithRetry({ payload, retries: 0, functionName });
|
|
268
295
|
}));
|
|
269
296
|
reqSend.end();
|
|
270
297
|
let lastProgressUploaded = 0;
|
|
271
|
-
|
|
272
|
-
const onProgress = (framesEncoded, start) => {
|
|
298
|
+
const onProgress = (framesEncoded) => {
|
|
273
299
|
const relativeProgress = framesEncoded / frameCount.length;
|
|
274
300
|
const deltaSinceLastProgressUploaded = relativeProgress - lastProgressUploaded;
|
|
275
|
-
if (relativeProgress === 1) {
|
|
276
|
-
encodingStop = Date.now();
|
|
277
|
-
}
|
|
278
301
|
if (deltaSinceLastProgressUploaded < 0.1) {
|
|
279
302
|
return;
|
|
280
303
|
}
|
|
281
304
|
lastProgressUploaded = relativeProgress;
|
|
282
|
-
const encodingProgress = {
|
|
283
|
-
framesEncoded,
|
|
284
|
-
totalFrames: frameCount.length,
|
|
285
|
-
doneIn: encodingStop ? encodingStop - start : null,
|
|
286
|
-
timeToInvoke: null,
|
|
287
|
-
};
|
|
288
305
|
(0, io_1.lambdaWriteFile)({
|
|
289
306
|
bucketName: params.bucketName,
|
|
290
307
|
key: (0, constants_1.encodingProgressKey)(params.renderId),
|
|
291
|
-
body:
|
|
308
|
+
body: String(Math.round(framesEncoded / constants_1.ENCODING_PROGRESS_STEP_SIZE)),
|
|
292
309
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
293
310
|
privacy: 'private',
|
|
294
311
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
@@ -315,90 +332,82 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
315
332
|
});
|
|
316
333
|
});
|
|
317
334
|
};
|
|
335
|
+
const onErrors = async (errors) => {
|
|
336
|
+
var _a;
|
|
337
|
+
console.log('Found Errors', errors);
|
|
338
|
+
if (params.webhook) {
|
|
339
|
+
console.log('Sending webhook with errors');
|
|
340
|
+
await (0, invoke_webhook_1.invokeWebhook)({
|
|
341
|
+
url: params.webhook.url,
|
|
342
|
+
secret: (_a = params.webhook.secret) !== null && _a !== void 0 ? _a : null,
|
|
343
|
+
payload: {
|
|
344
|
+
type: 'error',
|
|
345
|
+
renderId: params.renderId,
|
|
346
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
347
|
+
bucketName: params.bucketName,
|
|
348
|
+
errors: errors.slice(0, 5).map((e) => ({
|
|
349
|
+
message: e.message,
|
|
350
|
+
name: e.name,
|
|
351
|
+
stack: e.stack,
|
|
352
|
+
})),
|
|
353
|
+
},
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
console.log('No webhook specified');
|
|
358
|
+
}
|
|
359
|
+
throw new Error('Stopping Lambda function because error occurred: ' + errors[0].stack);
|
|
360
|
+
};
|
|
318
361
|
const fps = comp.fps / params.everyNthFrame;
|
|
319
|
-
const
|
|
362
|
+
const outdir = (0, node_path_1.join)(renderer_1.RenderInternals.tmpDir(constants_1.CONCAT_FOLDER_TOKEN), 'bucket');
|
|
363
|
+
if ((0, node_fs_1.existsSync)(outdir)) {
|
|
364
|
+
(0, node_fs_1.rmSync)(outdir, {
|
|
365
|
+
recursive: true,
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
(0, node_fs_1.mkdirSync)(outdir);
|
|
369
|
+
const files = await (0, concat_videos_1.getAllFilesS3)({
|
|
320
370
|
bucket: params.bucketName,
|
|
321
371
|
expectedFiles: chunkCount,
|
|
322
|
-
|
|
323
|
-
numberOfFrames: frameCount.length,
|
|
372
|
+
outdir,
|
|
324
373
|
renderId: params.renderId,
|
|
325
374
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
326
|
-
codec: params.codec,
|
|
327
375
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
376
|
+
onErrors,
|
|
377
|
+
});
|
|
378
|
+
const encodingStart = Date.now();
|
|
379
|
+
const { outfile, cleanupChunksProm } = await (0, concat_videos_1.concatVideosS3)({
|
|
380
|
+
onProgress,
|
|
381
|
+
numberOfFrames: frameCount.length,
|
|
382
|
+
codec: params.codec,
|
|
328
383
|
fps,
|
|
329
384
|
numberOfGifLoops: params.numberOfGifLoops,
|
|
385
|
+
files,
|
|
386
|
+
outdir,
|
|
387
|
+
audioCodec: params.audioCodec,
|
|
330
388
|
});
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
}
|
|
334
|
-
const outputSize = fs_1.default.statSync(outfile);
|
|
389
|
+
const encodingStop = Date.now();
|
|
390
|
+
const outputSize = node_fs_1.default.statSync(outfile);
|
|
335
391
|
await (0, io_1.lambdaWriteFile)({
|
|
336
392
|
bucketName: renderBucketName,
|
|
337
393
|
key,
|
|
338
|
-
body:
|
|
394
|
+
body: node_fs_1.default.createReadStream(outfile),
|
|
339
395
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
340
396
|
privacy: params.privacy,
|
|
341
397
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
342
398
|
downloadBehavior: params.downloadBehavior,
|
|
343
399
|
customCredentials,
|
|
344
400
|
});
|
|
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
|
-
};
|
|
401
|
+
const contents = await (0, io_1.lambdaLs)({
|
|
402
|
+
bucketName: params.bucketName,
|
|
403
|
+
prefix: (0, constants_1.rendersPrefix)(params.renderId),
|
|
404
|
+
expectedBucketOwner: options.expectedBucketOwner,
|
|
405
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
406
|
+
});
|
|
398
407
|
const finalEncodingProgressProm = (0, io_1.lambdaWriteFile)({
|
|
399
408
|
bucketName: params.bucketName,
|
|
400
409
|
key: (0, constants_1.encodingProgressKey)(params.renderId),
|
|
401
|
-
body:
|
|
410
|
+
body: String(Math.ceil(frameCount.length / constants_1.ENCODING_PROGRESS_STEP_SIZE)),
|
|
402
411
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
403
412
|
privacy: 'private',
|
|
404
413
|
expectedBucketOwner: options.expectedBucketOwner,
|
|
@@ -416,11 +425,18 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
416
425
|
chunkCount,
|
|
417
426
|
renderId: params.renderId,
|
|
418
427
|
});
|
|
419
|
-
const deletProm =
|
|
428
|
+
const deletProm = verbose
|
|
429
|
+
? Promise.resolve(0)
|
|
430
|
+
: (0, delete_chunks_1.cleanupFiles)({
|
|
431
|
+
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
432
|
+
bucket: params.bucketName,
|
|
433
|
+
contents,
|
|
434
|
+
jobs,
|
|
435
|
+
});
|
|
436
|
+
const cleanupSerializedInputPropsProm = (0, cleanup_serialized_input_props_1.cleanupSerializedInputProps)({
|
|
437
|
+
bucketName: params.bucketName,
|
|
420
438
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
421
|
-
|
|
422
|
-
contents,
|
|
423
|
-
jobs,
|
|
439
|
+
serialized: params.inputProps,
|
|
424
440
|
});
|
|
425
441
|
const outputUrl = (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(renderMetadata, params.bucketName, customCredentials);
|
|
426
442
|
const postRenderData = (0, create_post_render_data_1.createPostRenderData)({
|
|
@@ -432,7 +448,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
432
448
|
contents,
|
|
433
449
|
errorExplanations: await errorExplanationsProm,
|
|
434
450
|
timeToEncode: encodingStop - encodingStart,
|
|
435
|
-
timeToDelete: await deletProm,
|
|
451
|
+
timeToDelete: (await Promise.all([deletProm, cleanupSerializedInputPropsProm])).reduce((a, b) => a + b, 0),
|
|
436
452
|
outputFile: {
|
|
437
453
|
lastModified: Date.now(),
|
|
438
454
|
size: outputSize.size,
|
|
@@ -453,7 +469,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
453
469
|
region: (0, get_current_region_1.getCurrentRegionInFunction)(),
|
|
454
470
|
customCredentials: null,
|
|
455
471
|
});
|
|
456
|
-
await Promise.all([cleanupChunksProm,
|
|
472
|
+
await Promise.all([cleanupChunksProm, node_fs_1.default.promises.rm(outfile)]);
|
|
457
473
|
clearTimeout(webhookDueToTimeout);
|
|
458
474
|
if (params.webhook && !webhookInvoked) {
|
|
459
475
|
try {
|
|
@@ -469,6 +485,7 @@ const innerLaunchHandler = async (params, options) => {
|
|
|
469
485
|
lambdaErrors: postRenderData.errors,
|
|
470
486
|
outputFile: postRenderData.outputFile,
|
|
471
487
|
timeToFinish: postRenderData.timeToFinish,
|
|
488
|
+
costs: postRenderData.cost,
|
|
472
489
|
},
|
|
473
490
|
});
|
|
474
491
|
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,
|