diff --git a/bun.lock b/bun.lock index 611d2f6c3fe..6f99eebbb63 100644 --- a/bun.lock +++ b/bun.lock @@ -21,7 +21,7 @@ }, "packages/animated-emoji": { "name": "@remotion/animated-emoji", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -33,7 +33,7 @@ }, "packages/animation-utils": { "name": "@remotion/animation-utils", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -49,7 +49,7 @@ }, "packages/astro-example": { "name": "@remotion/astro-example", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@astrojs/react": "4.0.0", "@remotion/gif": "workspace:*", @@ -68,7 +68,7 @@ }, "packages/babel-loader": { "name": "@remotion/babel-loader", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@babel/core": "7.23.2", "@babel/plugin-proposal-class-properties": "7.14.5", @@ -92,7 +92,7 @@ }, "packages/bundler": { "name": "@remotion/bundler", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/media-parser": "workspace:*", "@remotion/studio": "workspace:*", @@ -121,7 +121,7 @@ }, "packages/captions": { "name": "@remotion/captions", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@typescript/native-preview": "catalog:", @@ -130,7 +130,7 @@ }, "packages/cli": { "name": "@remotion/cli", - "version": "4.0.425", + "version": "4.0.427", "bin": { "remotion": "remotion-cli.js", "remotionb": "remotionb-cli.js", @@ -172,7 +172,7 @@ }, "packages/cloudrun": { "name": "@remotion/cloudrun", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@google-cloud/artifact-registry": "3.5.1", "@google-cloud/functions-framework": "3.4.6", @@ -198,39 +198,39 @@ }, "packages/compositor": { "name": "@remotion/compositor", - "version": "4.0.425", + "version": "4.0.427", }, "packages/compositor-darwin-arm64": { "name": "@remotion/compositor-darwin-arm64", - "version": "4.0.425", + "version": "4.0.427", }, "packages/compositor-darwin-x64": { "name": "@remotion/compositor-darwin-x64", - "version": "4.0.425", + "version": "4.0.427", }, "packages/compositor-linux-arm64-gnu": { "name": "@remotion/compositor-linux-arm64-gnu", - "version": "4.0.425", + "version": "4.0.427", }, "packages/compositor-linux-arm64-musl": { "name": "@remotion/compositor-linux-arm64-musl", - "version": "4.0.425", + "version": "4.0.427", }, "packages/compositor-linux-x64-gnu": { "name": "@remotion/compositor-linux-x64-gnu", - "version": "4.0.425", + "version": "4.0.427", }, "packages/compositor-linux-x64-musl": { "name": "@remotion/compositor-linux-x64-musl", - "version": "4.0.425", + "version": "4.0.427", }, "packages/compositor-win32-x64-msvc": { "name": "@remotion/compositor-win32-x64-msvc", - "version": "4.0.425", + "version": "4.0.427", }, "packages/convert": { "name": "@remotion/convert", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@mediabunny/mp3-encoder": "catalog:", "@mediafox/core": "^1.0.4", @@ -286,7 +286,7 @@ }, "packages/core": { "name": "remotion", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@happy-dom/global-registrator": "14.5.1", "@remotion/eslint-config-internal": "workspace:*", @@ -308,7 +308,7 @@ }, "packages/create-video": { "name": "create-video", - "version": "4.0.425", + "version": "4.0.427", "bin": { "create-video": "bin.js", }, @@ -331,7 +331,7 @@ }, "packages/design": { "name": "@remotion/design", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@radix-ui/react-select": "2.1.1", "@radix-ui/react-tabs": "^1.1.0", @@ -360,11 +360,11 @@ }, "packages/discord-poster": { "name": "@remotion/discord-poster", - "version": "4.0.425", + "version": "4.0.427", }, "packages/docs": { "name": "docs", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@algora/sdk": "^0.1.2", "@aws-sdk/s3-request-presigner": "catalog:", @@ -422,6 +422,7 @@ "@remotion/tailwind-v4": "workspace:*", "@remotion/three": "workspace:*", "@remotion/transitions": "workspace:*", + "@remotion/vercel": "workspace:*", "@remotion/web-renderer": "workspace:*", "@remotion/webcodecs": "workspace:*", "@remotion/whisper-web": "workspace:*", @@ -436,6 +437,7 @@ "@types/uuid": "^8.3.4", "@vercel/config": "^0.0.28", "@vercel/functions": "^3.1.4", + "@vercel/sandbox": "1.6.0", "chalk": "4.1.2", "clipboard": "^2.0.8", "clsx": "^1.1.1", @@ -478,7 +480,7 @@ }, "packages/docusaurus-plugin": { "name": "@remotion/docusaurus-plugin", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@docusaurus/types": "3.6.0", "@shikijs/twoslash": "3.22.0", @@ -497,7 +499,7 @@ }, "packages/enable-scss": { "name": "@remotion/enable-scss", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "css-loader": "5.2.7", "sass-loader": "14.2.1", @@ -515,7 +517,7 @@ }, "packages/eslint-config": { "name": "@remotion/eslint-config", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@remotion/eslint-plugin": "workspace:*", @@ -532,7 +534,7 @@ }, "packages/eslint-config-flat": { "name": "@remotion/eslint-config-flat", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "typescript-eslint": "8.21.0", }, @@ -551,7 +553,7 @@ }, "packages/eslint-config-internal": { "name": "@remotion/eslint-config-internal", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@eslint/compat": "1.2.2", "@eslint/eslintrc": "3.1.0", @@ -570,7 +572,7 @@ }, "packages/eslint-plugin": { "name": "@remotion/eslint-plugin", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@typescript-eslint/utils": "5.19.0", }, @@ -585,7 +587,7 @@ }, "packages/example": { "name": "@remotion/example", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@mdx-js/loader": "^2.3.0", "@mdx-js/react": "^2.3.0", @@ -670,7 +672,7 @@ }, "packages/example-videos": { "name": "@remotion/example-videos", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@typescript/native-preview": "catalog:", @@ -680,7 +682,7 @@ }, "packages/example-without-zod": { "name": "@remotion/example-without-zod", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/cli": "workspace:*", "react": "catalog:", @@ -690,7 +692,7 @@ }, "packages/fonts": { "name": "@remotion/fonts", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -702,7 +704,7 @@ }, "packages/gif": { "name": "@remotion/gif", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -722,7 +724,7 @@ }, "packages/google-fonts": { "name": "@remotion/google-fonts", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -736,7 +738,7 @@ }, "packages/install-whisper-cpp": { "name": "@remotion/install-whisper-cpp", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/captions": "workspace:*", }, @@ -748,7 +750,7 @@ }, "packages/it-tests": { "name": "@remotion/it-tests", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/bundler": "workspace:*", "@remotion/captions": "workspace:*", @@ -790,7 +792,7 @@ }, "packages/lambda": { "name": "@remotion/lambda", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@aws-sdk/client-cloudwatch-logs": "catalog:", "@aws-sdk/client-iam": "catalog:", @@ -833,7 +835,7 @@ }, "packages/lambda-client": { "name": "@remotion/lambda-client", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@aws-sdk/client-cloudwatch-logs": "catalog:", "@aws-sdk/client-iam": "catalog:", @@ -857,25 +859,25 @@ }, "packages/lambda-go": { "name": "@remotion/lambda-go", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "remotion": "workspace:*", }, }, "packages/lambda-go-example": { "name": "@remotion/lambda-go-example", - "version": "4.0.425", + "version": "4.0.427", }, "packages/lambda-php": { "name": "@remotion/lambda-php", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "remotion": "workspace:*", }, }, "packages/lambda-python": { "name": "@remotion/lambda-python", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "dotenv": "17.3.1", }, @@ -885,14 +887,14 @@ }, "packages/lambda-ruby": { "name": "@remotion/lambda-ruby", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "remotion": "workspace:*", }, }, "packages/layout-utils": { "name": "@remotion/layout-utils", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@typescript/native-preview": "catalog:", @@ -901,7 +903,7 @@ }, "packages/licensing": { "name": "@remotion/licensing", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@typescript/native-preview": "catalog:", @@ -912,7 +914,7 @@ }, "packages/light-leaks": { "name": "@remotion/light-leaks", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -930,7 +932,7 @@ }, "packages/lottie": { "name": "@remotion/lottie", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -950,7 +952,7 @@ }, "packages/mcp": { "name": "@remotion/mcp", - "version": "4.0.425", + "version": "4.0.427", "bin": { "remotion-mcp": "./dist/esm/index.mjs", }, @@ -967,7 +969,7 @@ }, "packages/media": { "name": "@remotion/media", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@mediabunny/ac3": "catalog:", "mediabunny": "catalog:", @@ -990,7 +992,7 @@ }, "packages/media-parser": { "name": "@remotion/media-parser", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@remotion/example-videos": "workspace:*", @@ -1003,7 +1005,7 @@ }, "packages/media-utils": { "name": "@remotion/media-utils", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/media-parser": "workspace:*", "@remotion/webcodecs": "workspace:*", @@ -1022,7 +1024,7 @@ }, "packages/motion-blur": { "name": "@remotion/motion-blur", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -1041,7 +1043,7 @@ }, "packages/noise": { "name": "@remotion/noise", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", "simplex-noise": "4.0.1", @@ -1054,7 +1056,7 @@ }, "packages/openai-whisper": { "name": "@remotion/openai-whisper", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/captions": "workspace:*", }, @@ -1067,7 +1069,7 @@ }, "packages/paths": { "name": "@remotion/paths", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@typescript/native-preview": "catalog:", @@ -1076,7 +1078,7 @@ }, "packages/player": { "name": "@remotion/player", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -1099,7 +1101,7 @@ }, "packages/player-example": { "name": "@remotion/player-example", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/bundler": "workspace:*", "@remotion/eslint-config-flat": "workspace:*", @@ -1120,7 +1122,7 @@ }, "packages/preload": { "name": "@remotion/preload", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@typescript/native-preview": "catalog:", @@ -1129,7 +1131,7 @@ }, "packages/promo-pages": { "name": "@remotion/promo-pages", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@mux/upchunk": "^3.5.0", "@remotion/animated-emoji": "workspace:*", @@ -1168,7 +1170,7 @@ }, "packages/react18-tests": { "name": "@remotion/react18-tests", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/zod-types": "workspace:*", "@remotion/zod-types-v3": "workspace:*", @@ -1198,7 +1200,7 @@ }, "packages/renderer": { "name": "@remotion/renderer", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/licensing": "workspace:*", "@remotion/streaming": "workspace:*", @@ -1237,7 +1239,7 @@ }, "packages/rive": { "name": "@remotion/rive", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@rive-app/canvas-advanced": "2.31.5", "remotion": "workspace:*", @@ -1256,7 +1258,7 @@ }, "packages/rounded-text-box": { "name": "@remotion/rounded-text-box", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/layout-utils": "workspace:*", "@remotion/paths": "workspace:*", @@ -1269,7 +1271,7 @@ }, "packages/serverless": { "name": "@remotion/serverless", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/bundler": "workspace:*", "@remotion/licensing": "workspace:*", @@ -1284,7 +1286,7 @@ }, "packages/serverless-client": { "name": "@remotion/serverless-client", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@remotion/renderer": "workspace:*", @@ -1296,7 +1298,7 @@ }, "packages/shapes": { "name": "@remotion/shapes", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/paths": "workspace:*", }, @@ -1316,7 +1318,7 @@ }, "packages/skia": { "name": "@remotion/skia", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -1340,7 +1342,7 @@ }, "packages/skills": { "name": "@remotion/skills", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/bundler": "workspace:*", "@remotion/cli": "workspace:*", @@ -1358,7 +1360,7 @@ }, "packages/streaming": { "name": "@remotion/streaming", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@typescript/native-preview": "catalog:", @@ -1367,7 +1369,7 @@ }, "packages/studio": { "name": "@remotion/studio", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/media-utils": "workspace:*", "@remotion/player": "workspace:*", @@ -1398,7 +1400,7 @@ }, "packages/studio-server": { "name": "@remotion/studio-server", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@babel/parser": "7.24.1", "@remotion/bundler": "workspace:*", @@ -1424,7 +1426,7 @@ }, "packages/studio-shared": { "name": "@remotion/studio-shared", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -1437,7 +1439,7 @@ }, "packages/svg-3d-engine": { "name": "@remotion/svg-3d-engine", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/paths": "workspace:*", }, @@ -1449,7 +1451,7 @@ }, "packages/tailwind": { "name": "@remotion/tailwind", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "autoprefixer": "10.4.20", "css-loader": "5.2.7", @@ -1472,7 +1474,7 @@ }, "packages/tailwind-v4": { "name": "@remotion/tailwind-v4", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@tailwindcss/postcss": "4.1.1", "css-loader": "5.2.7", @@ -2180,8 +2182,9 @@ "@remotion/player": "workspace:*", "@remotion/shapes": "workspace:*", "@remotion/tailwind-v4": "workspace:*", + "@remotion/vercel": "workspace:*", "@types/bun": "1.3.3", - "@vercel/blob": "2.0.1", + "@vercel/blob": "2.3.0", "@vercel/functions": "^3.4.1", "@vercel/sandbox": "1.6.0", "clsx": "2.1.1", @@ -2219,7 +2222,7 @@ }, "packages/test-utils": { "name": "@remotion/test-utils", - "version": "4.0.425", + "version": "4.0.427", "devDependencies": { "@remotion/eslint-config-internal": "workspace:*", "@typescript/native-preview": "catalog:", @@ -2231,7 +2234,7 @@ }, "packages/three": { "name": "@remotion/three", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -2258,7 +2261,7 @@ }, "packages/transitions": { "name": "@remotion/transitions", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/paths": "workspace:*", "@remotion/shapes": "workspace:*", @@ -2280,9 +2283,27 @@ "react-dom": ">=16.8.0", }, }, + "packages/vercel": { + "name": "@remotion/vercel", + "version": "4.0.427", + "dependencies": { + "@remotion/renderer": "workspace:*", + "remotion": "workspace:*", + }, + "devDependencies": { + "@remotion/eslint-config-internal": "workspace:*", + "@typescript/native-preview": "catalog:", + "@vercel/blob": "2.3.0", + "@vercel/sandbox": "1.6.0", + "eslint": "catalog:", + }, + "peerDependencies": { + "@vercel/sandbox": ">=1.0.0", + }, + }, "packages/web-renderer": { "name": "@remotion/web-renderer", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/licensing": "workspace:*", "mediabunny": "catalog:", @@ -2314,7 +2335,7 @@ }, "packages/webcodecs": { "name": "@remotion/webcodecs", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/media-parser": "workspace:*", }, @@ -2331,7 +2352,7 @@ }, "packages/whisper-web": { "name": "@remotion/whisper-web", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/captions": "workspace:*", }, @@ -2343,7 +2364,7 @@ }, "packages/zod-types": { "name": "@remotion/zod-types", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "remotion": "workspace:*", }, @@ -2359,7 +2380,7 @@ }, "packages/zod-types-v3": { "name": "@remotion/zod-types-v3", - "version": "4.0.425", + "version": "4.0.427", "dependencies": { "@remotion/zod-types": "workspace:*", "remotion": "workspace:*", @@ -3769,6 +3790,8 @@ "@remotion/transitions": ["@remotion/transitions@workspace:packages/transitions"], + "@remotion/vercel": ["@remotion/vercel@workspace:packages/vercel"], + "@remotion/web-renderer": ["@remotion/web-renderer@workspace:packages/web-renderer"], "@remotion/webcodecs": ["@remotion/webcodecs@workspace:packages/webcodecs"], @@ -4659,7 +4682,7 @@ "@vanilla-extract/private": ["@vanilla-extract/private@1.0.6", "", {}, "sha512-ytsG/JLweEjw7DBuZ/0JCN4WAQgM9erfSTdS1NQY778hFQSZ6cfCDEZZ0sgVm4k54uNz6ImKB33AYvSR//fjxw=="], - "@vercel/blob": ["@vercel/blob@2.0.1", "", { "dependencies": { "async-retry": "^1.3.3", "is-buffer": "^2.0.5", "is-node-process": "^1.2.0", "throttleit": "^2.1.0", "undici": "^6.23.0" } }, "sha512-DeJmC/B5oH1ExazYh/UvjbN6Mg0q0wlDz29GPIPNhi4COjVzqYRkyPYjOcAZd+RgXVzWqGXholZWtGcLCPuL8A=="], + "@vercel/blob": ["@vercel/blob@2.3.0", "", { "dependencies": { "async-retry": "^1.3.3", "is-buffer": "^2.0.5", "is-node-process": "^1.2.0", "throttleit": "^2.1.0", "undici": "^6.23.0" } }, "sha512-oYWiJbWRQ7gz9Mj0X/NHFJ3OcLMOBzq/2b3j6zeNrQmtFo6dHwU8FAwNpxVIYddVMd+g8eqEi7iRueYx8FtM0Q=="], "@vercel/config": ["@vercel/config@0.0.28", "", { "dependencies": { "pretty-cache-header": "^1.0.0", "zod": "^3.22.0" }, "bin": { "config": "dist/cli.js" } }, "sha512-lGnGmac05Rt+dYNwn6Rfub5GCnhSS33f3oQ3+1SSWw7zaI1gCaBDVetGtAIM5cMGG6UkGcRRSp1sw0dibS5wUQ=="], @@ -5895,7 +5918,7 @@ "is-boolean-object": ["is-boolean-object@1.2.1", "", { "dependencies": { "call-bound": "1.0.3", "has-tostringtag": "1.0.2" } }, "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng=="], - "is-buffer": ["is-buffer@1.1.6", "", {}, "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="], + "is-buffer": ["is-buffer@2.0.5", "", {}, "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="], "is-bun-module": ["is-bun-module@1.2.1", "", { "dependencies": { "semver": "7.6.3" } }, "sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q=="], @@ -9419,8 +9442,6 @@ "@vanilla-extract/integration/vite": ["vite@5.4.20", "", { "dependencies": { "esbuild": "0.21.5", "postcss": "8.5.1", "rollup": "4.40.1" }, "optionalDependencies": { "fsevents": "2.3.3" }, "peerDependencies": { "@types/node": "20.12.14" }, "optionalPeers": ["@types/node"], "bin": { "vite": "bin/vite.js" } }, "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g=="], - "@vercel/blob/is-buffer": ["is-buffer@2.0.5", "", {}, "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="], - "@vercel/blob/undici": ["undici@6.23.0", "", {}, "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g=="], "@vercel/config/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], @@ -9889,6 +9910,8 @@ "make-dir/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "md5/is-buffer": ["is-buffer@1.1.6", "", {}, "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="], + "mdast-util-definitions/@types/unist": ["@types/unist@3.0.2", "", {}, "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ=="], "mdast-util-directive/@types/unist": ["@types/unist@3.0.2", "", {}, "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ=="], @@ -11795,8 +11818,6 @@ "@mdx-js/mdx/unified/@types/unist": ["@types/unist@2.0.6", "", {}, "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="], - "@mdx-js/mdx/unified/is-buffer": ["is-buffer@2.0.5", "", {}, "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="], - "@mdx-js/mdx/unist-util-visit/@types/unist": ["@types/unist@2.0.6", "", {}, "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="], "@mdx-js/mdx/unist-util-visit/unist-util-is": ["unist-util-is@5.2.0", "", {}, "sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ=="], @@ -11805,8 +11826,6 @@ "@mdx-js/mdx/vfile/@types/unist": ["@types/unist@2.0.6", "", {}, "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="], - "@mdx-js/mdx/vfile/is-buffer": ["is-buffer@2.0.5", "", {}, "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="], - "@mdx-js/mdx/vfile/vfile-message": ["vfile-message@3.1.4", "", { "dependencies": { "@types/unist": "2.0.6", "unist-util-stringify-position": "3.0.3" } }, "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw=="], "@mdx-js/react/@types/react/csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], @@ -13315,8 +13334,6 @@ "remark-frontmatter/unified/@types/unist": ["@types/unist@2.0.6", "", {}, "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="], - "remark-frontmatter/unified/is-buffer": ["is-buffer@2.0.5", "", {}, "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="], - "remark-frontmatter/unified/vfile": ["vfile@5.3.7", "", { "dependencies": { "@types/unist": "2.0.6", "is-buffer": "2.0.5", "unist-util-stringify-position": "3.0.3", "vfile-message": "3.1.4" } }, "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g=="], "remark-mdx/mdast-util-mdx/mdast-util-from-markdown": ["mdast-util-from-markdown@1.3.0", "", { "dependencies": { "@types/mdast": "3.0.10", "@types/unist": "2.0.6", "decode-named-character-reference": "1.0.2", "mdast-util-to-string": "3.1.1", "micromark": "3.1.0", "micromark-util-decode-numeric-character-reference": "1.0.0", "micromark-util-decode-string": "1.0.2", "micromark-util-normalize-identifier": "1.0.0", "micromark-util-symbol": "1.0.1", "micromark-util-types": "1.0.2", "unist-util-stringify-position": "3.0.3", "uvu": "0.5.6" } }, "sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g=="], diff --git a/packages/STATS.md b/packages/STATS.md index 118dc94d9e7..a214f028b96 100644 --- a/packages/STATS.md +++ b/packages/STATS.md @@ -57,6 +57,7 @@ Monthly downloads of Remotion packages [![NPM Downloads](https://img.shields.io/npm/dm/@remotion/tailwind-v4.svg?style=flat&color=black&label=@remotion/tailwind-v4)](https://npmcharts.com/compare/@remotion/tailwind-v4?minimal=true) [![NPM Downloads](https://img.shields.io/npm/dm/@remotion/three.svg?style=flat&color=black&label=@remotion/three)](https://npmcharts.com/compare/@remotion/three?minimal=true) [![NPM Downloads](https://img.shields.io/npm/dm/@remotion/transitions.svg?style=flat&color=black&label=@remotion/transitions)](https://npmcharts.com/compare/@remotion/transitions?minimal=true) +[![NPM Downloads](https://img.shields.io/npm/dm/@remotion/vercel.svg?style=flat&color=black&label=@remotion/vercel)](https://npmcharts.com/compare/@remotion/vercel?minimal=true) [![NPM Downloads](https://img.shields.io/npm/dm/@remotion/web-renderer.svg?style=flat&color=black&label=@remotion/web-renderer)](https://npmcharts.com/compare/@remotion/web-renderer?minimal=true) [![NPM Downloads](https://img.shields.io/npm/dm/@remotion/webcodecs.svg?style=flat&color=black&label=@remotion/webcodecs)](https://npmcharts.com/compare/@remotion/webcodecs?minimal=true) [![NPM Downloads](https://img.shields.io/npm/dm/@remotion/whisper-web.svg?style=flat&color=black&label=@remotion/whisper-web)](https://npmcharts.com/compare/@remotion/whisper-web?minimal=true) diff --git a/packages/animated-emoji/package.json b/packages/animated-emoji/package.json index b055e715da0..bd1da70a8a0 100644 --- a/packages/animated-emoji/package.json +++ b/packages/animated-emoji/package.json @@ -1,6 +1,6 @@ { "name": "@remotion/animated-emoji", - "version": "4.0.425", + "version": "4.0.427", "main": "dist/cjs/index.js", "types": "dist/cjs/index.d.ts", "module": "dist/esm/index.mjs", diff --git a/packages/animation-utils/package.json b/packages/animation-utils/package.json index de3e1411c97..decc2795965 100644 --- a/packages/animation-utils/package.json +++ b/packages/animation-utils/package.json @@ -7,7 +7,7 @@ "name": "Chetan Karwa", "email": "cbkarwa@gmail.com" }, - "version": "4.0.425", + "version": "4.0.427", "description": "Helpers for animating CSS properties", "main": "./dist/index.js", "module": "./dist/index.mjs", diff --git a/packages/astro-example/package.json b/packages/astro-example/package.json index 906b11c4dd1..1781e43a3ff 100644 --- a/packages/astro-example/package.json +++ b/packages/astro-example/package.json @@ -5,7 +5,7 @@ "name": "@remotion/astro-example", "private": true, "type": "module", - "version": "4.0.425", + "version": "4.0.427", "scripts": { "dev": "astro dev", "start": "astro dev", diff --git a/packages/babel-loader/package.json b/packages/babel-loader/package.json index 29af56254aa..aad34f39858 100644 --- a/packages/babel-loader/package.json +++ b/packages/babel-loader/package.json @@ -3,7 +3,7 @@ "url": "https://github.com/remotion-dev/remotion/tree/main/packages/babel-loader" }, "name": "@remotion/babel-loader", - "version": "4.0.425", + "version": "4.0.427", "description": "Babel loader for Remotion", "main": "dist/index.js", "scripts": { diff --git a/packages/bugs/package.json b/packages/bugs/package.json index 6715c36f9fb..d69e161b506 100644 --- a/packages/bugs/package.json +++ b/packages/bugs/package.json @@ -4,5 +4,5 @@ }, "name": "bugs", "private": true, - "version": "4.0.425" + "version": "4.0.427" } diff --git a/packages/bundler/package.json b/packages/bundler/package.json index 1c84faebc67..b89f1aff8b5 100644 --- a/packages/bundler/package.json +++ b/packages/bundler/package.json @@ -3,7 +3,7 @@ "url": "https://github.com/remotion-dev/remotion/tree/main/packages/bundler" }, "name": "@remotion/bundler", - "version": "4.0.425", + "version": "4.0.427", "description": "Bundle Remotion compositions using Webpack", "main": "dist/index.js", "sideEffects": false, diff --git a/packages/captions/package.json b/packages/captions/package.json index 8dd1e4689c0..f995283e451 100644 --- a/packages/captions/package.json +++ b/packages/captions/package.json @@ -3,7 +3,7 @@ "url": "https://github.com/remotion-dev/remotion/tree/main/packages/captions" }, "name": "@remotion/captions", - "version": "4.0.425", + "version": "4.0.427", "description": "Primitives for dealing with captions", "main": "dist/index.js", "sideEffects": false, diff --git a/packages/cli/package.json b/packages/cli/package.json index 51b082e2dfc..169db633663 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -3,7 +3,7 @@ "url": "https://github.com/remotion-dev/remotion/tree/main/packages/cli" }, "name": "@remotion/cli", - "version": "4.0.425", + "version": "4.0.427", "description": "Control Remotion features using the `npx remotion` command", "main": "dist/index.js", "sideEffects": false, diff --git a/packages/cli/src/config/frame-range.ts b/packages/cli/src/config/frame-range.ts deleted file mode 100644 index 77c3ca11575..00000000000 --- a/packages/cli/src/config/frame-range.ts +++ /dev/null @@ -1,84 +0,0 @@ -import type {FrameRange} from '@remotion/renderer'; -import {RenderInternals} from '@remotion/renderer'; - -let range: FrameRange | null = null; - -export const setFrameRange = (newFrameRange: FrameRange | null) => { - RenderInternals.validateFrameRange(newFrameRange); - range = newFrameRange; -}; - -export const setFrameRangeFromCli = (newFrameRange: string | number) => { - if (typeof newFrameRange === 'number') { - if (newFrameRange < 0) { - setFrameRange([0, Math.abs(newFrameRange)]); - return; - } - - setFrameRange(newFrameRange); - range = newFrameRange; - return; - } - - if (typeof newFrameRange === 'string') { - if (newFrameRange.trim() === '') { - throw new Error( - '--frames flag must be a single number, or 2 numbers separated by `-`', - ); - } - - const parts = newFrameRange.split('-'); - if (parts.length > 2 || parts.length <= 0) { - throw new Error( - `--frames flag must be a number or 2 numbers separated by '-', instead got ${parts.length} numbers`, - ); - } - - if (parts.length === 1) { - const value = Number(parts[0]); - if (isNaN(value)) { - throw new Error( - '--frames flag must be a single number, or 2 numbers separated by `-`', - ); - } - - setFrameRange(value); - return; - } - - const [firstPart, secondPart] = parts as [string, string]; - - if (secondPart === '' && firstPart !== '') { - const start = Number(firstPart); - if (isNaN(start)) { - throw new Error( - '--frames flag must be a single number, or 2 numbers separated by `-`', - ); - } - - setFrameRange([start, null]); - return; - } - - const parsed = parts.map((f) => Number(f)); - const [first, second] = parsed as [number, number]; - - for (const value of parsed) { - if (isNaN(value)) { - throw new Error( - '--frames flag must be a single number, or 2 numbers separated by `-`', - ); - } - } - - if (second < first) { - throw new Error( - 'The second number of the --frames flag number should be greater or equal than first number', - ); - } - - setFrameRange([first, second]); - } -}; - -export const getRange = () => range; diff --git a/packages/cli/src/config/index.ts b/packages/cli/src/config/index.ts index 55ddecf735d..7ac94ed151b 100644 --- a/packages/cli/src/config/index.ts +++ b/packages/cli/src/config/index.ts @@ -1,7 +1,6 @@ import {getBrowser} from './browser'; import {getConcurrency} from './concurrency'; import {getDotEnvLocation} from './env-file'; -import {getRange, setFrameRangeFromCli} from './frame-range'; import {getShouldOutputImageSequence} from './image-sequence'; import {getOutputLocation} from './output-location'; import { @@ -42,7 +41,6 @@ import { getFfmpegOverrideFunction, setFfmpegOverrideFunction, } from './ffmpeg-override'; -import {setFrameRange} from './frame-range'; import {getMetadata, setMetadata} from './metadata'; import {setOutputLocation} from './output-location'; import type {WebpackOverrideFn} from './override-webpack'; @@ -84,6 +82,7 @@ const { publicDirOption, binariesDirectoryOption, preferLosslessOption, + framesOption, forSeamlessAacConcatenationOption, audioCodecOption, publicPathOption, @@ -711,7 +710,7 @@ export const Config: FlatConfig = { setMetadata, setEncodingMaxRate: encodingMaxRateOption.setConfig, setEncodingBufferSize: encodingBufferSizeOption.setConfig, - setFrameRange, + setFrameRange: framesOption.setConfig, setScale: scaleOption.setConfig, setEveryNthFrame: everyNthFrameOption.setConfig, setNumberOfGifLoops: numberOfGifLoopsOption.setConfig, @@ -760,7 +759,6 @@ export const Config: FlatConfig = { }; export const ConfigInternals = { - getRange, getBrowser, getStudioPort, getRendererPortFromConfigFile, @@ -772,7 +770,6 @@ export const ConfigInternals = { getWebpackOverrideFn, getWebpackCaching, getOutputLocation, - setFrameRangeFromCli, setStillFrame, getMaxTimelineTracks: StudioServerInternals.getMaxTimelineTracks, defaultOverrideFunction, diff --git a/packages/cli/src/get-cli-options.ts b/packages/cli/src/get-cli-options.ts index b1f606009d4..83401d64472 100644 --- a/packages/cli/src/get-cli-options.ts +++ b/packages/cli/src/get-cli-options.ts @@ -9,7 +9,9 @@ import {Log} from './log'; import {parsedCli} from './parsed-cli'; const getAndValidateFrameRange = (logLevel: LogLevel, indent: boolean) => { - const frameRange = ConfigInternals.getRange(); + const frameRange = BrowserSafeApis.options.framesOption.getValue({ + commandLine: parsedCli, + }).value; if (typeof frameRange === 'number') { Log.warn( {logLevel, indent}, diff --git a/packages/cli/src/list-of-remotion-packages.ts b/packages/cli/src/list-of-remotion-packages.ts index 2320889e1cb..4de5aa48cbc 100644 --- a/packages/cli/src/list-of-remotion-packages.ts +++ b/packages/cli/src/list-of-remotion-packages.ts @@ -84,4 +84,5 @@ export const listOfRemotionPackages = [ '@remotion/web-renderer', '@remotion/design', '@remotion/light-leaks', + '@remotion/vercel', ]; diff --git a/packages/cli/src/parse-command-line.ts b/packages/cli/src/parse-command-line.ts index 4230b6693c3..87721c2a699 100644 --- a/packages/cli/src/parse-command-line.ts +++ b/packages/cli/src/parse-command-line.ts @@ -1,11 +1,7 @@ -import {Config, ConfigInternals} from './config'; +import {Config} from './config'; import {parsedCli} from './parsed-cli'; export const parseCommandLine = () => { - if (parsedCli.frames) { - ConfigInternals.setFrameRangeFromCli(parsedCli.frames); - } - if (parsedCli.png) { throw new Error( 'The --png flag has been removed. Use --sequence --image-format=png from now on.', diff --git a/packages/cli/src/parsed-cli.ts b/packages/cli/src/parsed-cli.ts index 7d3b6ca3133..40172ec8086 100644 --- a/packages/cli/src/parsed-cli.ts +++ b/packages/cli/src/parsed-cli.ts @@ -65,6 +65,7 @@ const { mutedOption, headlessOption, disableGitSourceOption, + framesOption, forSeamlessAacConcatenationOption, isProductionOption, noOpenOption, @@ -126,7 +127,7 @@ export type CommandLineOptions = { [propsOption.cliFlag]: TypeOfOption; quality: number; [jpegQualityOption.cliFlag]: TypeOfOption; - frames: string | number; + [framesOption.cliFlag]: string | number; [scaleOption.cliFlag]: TypeOfOption; [imageSequenceOption.cliFlag]: TypeOfOption; quiet: boolean; @@ -204,6 +205,7 @@ export const parsedCli = minimist(process.argv.slice(2), { default: { [overwriteOption.cliFlag]: true, [bundleCacheOption.cliFlag]: null, + [experimentalClientSideRenderingOption.cliFlag]: null, [mutedOption.cliFlag]: null, }, }) as CommandLineOptions & { diff --git a/packages/cli/src/test/range.test.tsx b/packages/cli/src/test/range.test.tsx index db094fe9bbb..82053bda428 100644 --- a/packages/cli/src/test/range.test.tsx +++ b/packages/cli/src/test/range.test.tsx @@ -1,12 +1,10 @@ import {RenderInternals} from '@remotion/renderer'; +import {BrowserSafeApis} from '@remotion/renderer/client'; import {describe, expect, test} from 'bun:test'; -import { - getRange, - setFrameRange, - setFrameRangeFromCli, -} from '../config/frame-range'; import {expectToThrow} from './expect-to-throw'; +const {framesOption} = BrowserSafeApis.options; + describe('Frame range should throw exception with invalid inputs', () => { const testValues: [number | [number, number] | null, RegExp][] = [ [-1, /non-negative/], @@ -46,7 +44,7 @@ describe('Frame range should throw exception with invalid inputs', () => { testValues.forEach((entry) => test(`test with input ${JSON.stringify(entry[0])}`, () => - expectToThrow(() => setFrameRange(entry[0]), entry[1])), + expectToThrow(() => framesOption.setConfig(entry[0]), entry[1])), ); }); describe('Frame range tests with valid inputs', () => { @@ -61,8 +59,8 @@ describe('Frame range tests with valid inputs', () => { ]; testValues.forEach((entry) => test(`test with input ${JSON.stringify(entry)}`, () => { - setFrameRange(entry); - expect(getRange()).toEqual(entry); + framesOption.setConfig(entry); + expect(framesOption.getValue({commandLine: {}}).value).toEqual(entry); }), ); }); @@ -92,11 +90,14 @@ describe('Frame range CLI should throw exception with invalid inputs', () => { ]; testValues.forEach((entry) => test(`test with input ${entry[0]}`, () => - expectToThrow(() => setFrameRangeFromCli(entry[0]), entry[1])), + expectToThrow( + () => framesOption.getValue({commandLine: {frames: entry[0]}}), + entry[1], + )), ); }); describe('Frame range CLI tests with valid inputs', () => { - setFrameRange(null); + framesOption.setConfig(null); const testValues: [ number | string, @@ -114,8 +115,9 @@ describe('Frame range CLI tests with valid inputs', () => { ]; testValues.forEach((entry) => test(`test with input ${JSON.stringify(entry[0])}`, () => { - setFrameRangeFromCli(entry[0]); - expect(getRange()).toEqual(entry[1]); + expect( + framesOption.getValue({commandLine: {frames: entry[0]}}).value, + ).toEqual(entry[1]); }), ); }); diff --git a/packages/cloudrun/container/package.json b/packages/cloudrun/container/package.json index 384b1d39d8b..b4feba9aa4c 100644 --- a/packages/cloudrun/container/package.json +++ b/packages/cloudrun/container/package.json @@ -1,6 +1,6 @@ { "name": "cloud-run-render", - "version": "4.0.425", + "version": "4.0.427", "description": "Render media and stills on GCP Cloud Run", "main": "dist/index.js", "scripts": { diff --git a/packages/cloudrun/package.json b/packages/cloudrun/package.json index 8de554c1c51..6408efe23c2 100644 --- a/packages/cloudrun/package.json +++ b/packages/cloudrun/package.json @@ -3,7 +3,7 @@ "url": "https://github.com/remotion-dev/remotion/tree/main/packages/cloudrun" }, "name": "@remotion/cloudrun", - "version": "4.0.425", + "version": "4.0.427", "description": "Render Remotion videos on Google Cloud Run", "main": "dist/index.js", "sideEffects": false, diff --git a/packages/compositor-darwin-arm64/package.json b/packages/compositor-darwin-arm64/package.json index 2b1931dd015..988e5431dbe 100644 --- a/packages/compositor-darwin-arm64/package.json +++ b/packages/compositor-darwin-arm64/package.json @@ -2,7 +2,7 @@ "repository": { "url": "https://github.com/remotion-dev/remotion/tree/main/packages/compositor-darwin-arm64" }, - "version": "4.0.425", + "version": "4.0.427", "name": "@remotion/compositor-darwin-arm64", "os": [ "darwin" diff --git a/packages/compositor-darwin-x64/package.json b/packages/compositor-darwin-x64/package.json index 446d48e1ad1..54e8381bb3a 100644 --- a/packages/compositor-darwin-x64/package.json +++ b/packages/compositor-darwin-x64/package.json @@ -2,7 +2,7 @@ "repository": { "url": "https://github.com/remotion-dev/remotion/tree/main/packages/compositor-darwin-x64" }, - "version": "4.0.425", + "version": "4.0.427", "name": "@remotion/compositor-darwin-x64", "os": [ "darwin" diff --git a/packages/compositor-linux-arm64-gnu/package.json b/packages/compositor-linux-arm64-gnu/package.json index 983c3c32114..4156bc50917 100644 --- a/packages/compositor-linux-arm64-gnu/package.json +++ b/packages/compositor-linux-arm64-gnu/package.json @@ -2,7 +2,7 @@ "repository": { "url": "https://github.com/remotion-dev/remotion/tree/main/packages/compositor-linux-arm64-gnu" }, - "version": "4.0.425", + "version": "4.0.427", "name": "@remotion/compositor-linux-arm64-gnu", "os": [ "linux" diff --git a/packages/compositor-linux-arm64-musl/package.json b/packages/compositor-linux-arm64-musl/package.json index 94449cc0068..ce1bea3d5fb 100644 --- a/packages/compositor-linux-arm64-musl/package.json +++ b/packages/compositor-linux-arm64-musl/package.json @@ -2,7 +2,7 @@ "repository": { "url": "https://github.com/remotion-dev/remotion/tree/main/packages/compositor-linux-arm64-musl" }, - "version": "4.0.425", + "version": "4.0.427", "name": "@remotion/compositor-linux-arm64-musl", "os": [ "linux" diff --git a/packages/compositor-linux-x64-gnu/package.json b/packages/compositor-linux-x64-gnu/package.json index 37859e8fc86..7dc95133bfa 100644 --- a/packages/compositor-linux-x64-gnu/package.json +++ b/packages/compositor-linux-x64-gnu/package.json @@ -2,7 +2,7 @@ "repository": { "url": "https://github.com/remotion-dev/remotion/tree/main/packages/compositor-linux-x64-gnu" }, - "version": "4.0.425", + "version": "4.0.427", "name": "@remotion/compositor-linux-x64-gnu", "os": [ "linux" diff --git a/packages/compositor-linux-x64-musl/package.json b/packages/compositor-linux-x64-musl/package.json index fee07a76da0..04eef9c63ca 100644 --- a/packages/compositor-linux-x64-musl/package.json +++ b/packages/compositor-linux-x64-musl/package.json @@ -2,7 +2,7 @@ "repository": { "url": "https://github.com/remotion-dev/remotion/tree/main/packages/compositor-linux-x64-musl" }, - "version": "4.0.425", + "version": "4.0.427", "name": "@remotion/compositor-linux-x64-musl", "os": [ "linux" diff --git a/packages/compositor-win32-x64-msvc/package.json b/packages/compositor-win32-x64-msvc/package.json index 50cd4bf858d..24c7dbffb7e 100644 --- a/packages/compositor-win32-x64-msvc/package.json +++ b/packages/compositor-win32-x64-msvc/package.json @@ -2,7 +2,7 @@ "repository": { "url": "https://github.com/remotion-dev/remotion/tree/main/packages/compositor-win32-x64-msvc" }, - "version": "4.0.425", + "version": "4.0.427", "name": "@remotion/compositor-win32-x64-msvc", "os": [ "win32" diff --git a/packages/compositor/package.json b/packages/compositor/package.json index 141658798f8..03f0899a5de 100644 --- a/packages/compositor/package.json +++ b/packages/compositor/package.json @@ -3,7 +3,7 @@ "url": "https://github.com/remotion-dev/remotion/tree/main/packages/compositor" }, "name": "@remotion/compositor", - "version": "4.0.425", + "version": "4.0.427", "description": "Rust binary for Remotion", "sideEffects": false, "scripts": { diff --git a/packages/convert/package.json b/packages/convert/package.json index ecc006f83a7..45d2d0a58bf 100644 --- a/packages/convert/package.json +++ b/packages/convert/package.json @@ -1,6 +1,6 @@ { "name": "@remotion/convert", - "version": "4.0.425", + "version": "4.0.427", "private": true, "sideEffects": false, "type": "module", diff --git a/packages/core/package.json b/packages/core/package.json index 2f927016765..9d6c7d2ff0f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -3,7 +3,7 @@ "url": "https://github.com/remotion-dev/remotion/tree/main/packages/core" }, "name": "remotion", - "version": "4.0.425", + "version": "4.0.427", "description": "Make videos programmatically", "main": "dist/cjs/index.js", "types": "dist/cjs/index.d.ts", diff --git a/packages/core/src/version.ts b/packages/core/src/version.ts index adcf509616b..2bbc3b76c11 100644 --- a/packages/core/src/version.ts +++ b/packages/core/src/version.ts @@ -5,4 +5,4 @@ * @see [Documentation](https://remotion.dev/docs/version) * @returns {string} The current version of the remotion package */ -export const VERSION = '4.0.425'; +export const VERSION = '4.0.427'; diff --git a/packages/create-video/package.json b/packages/create-video/package.json index 56cb516b12f..f3d6be80d42 100644 --- a/packages/create-video/package.json +++ b/packages/create-video/package.json @@ -3,7 +3,7 @@ "url": "https://github.com/remotion-dev/remotion/tree/main/packages/create-video" }, "name": "create-video", - "version": "4.0.425", + "version": "4.0.427", "description": "Create a new Remotion project", "main": "dist/index.js", "bin": { diff --git a/packages/create-video/src/list-of-remotion-packages.ts b/packages/create-video/src/list-of-remotion-packages.ts index 2320889e1cb..4de5aa48cbc 100644 --- a/packages/create-video/src/list-of-remotion-packages.ts +++ b/packages/create-video/src/list-of-remotion-packages.ts @@ -84,4 +84,5 @@ export const listOfRemotionPackages = [ '@remotion/web-renderer', '@remotion/design', '@remotion/light-leaks', + '@remotion/vercel', ]; diff --git a/packages/design/package.json b/packages/design/package.json index e282cf2ed0a..0de411a98f5 100644 --- a/packages/design/package.json +++ b/packages/design/package.json @@ -1,6 +1,6 @@ { "name": "@remotion/design", - "version": "4.0.425", + "version": "4.0.427", "main": "dist/index.js", "types": "dist/index.d.ts", "module": "dist/esm/index.mjs", diff --git a/packages/discord-poster/package.json b/packages/discord-poster/package.json index 860f6c81541..38d2d02423f 100644 --- a/packages/discord-poster/package.json +++ b/packages/discord-poster/package.json @@ -3,7 +3,7 @@ "url": "https://github.com/remotion-dev/remotion/tree/main/packages/discord-poster" }, "name": "@remotion/discord-poster", - "version": "4.0.425", + "version": "4.0.427", "license": "SEE LICENSE IN LICENSE.md", "type": "module", "scripts": { diff --git a/packages/docs/components/TableOfContents/api.tsx b/packages/docs/components/TableOfContents/api.tsx index 872fc0c65de..6590ebc4665 100644 --- a/packages/docs/components/TableOfContents/api.tsx +++ b/packages/docs/components/TableOfContents/api.tsx @@ -11,8 +11,8 @@ import {TableOfContents as GoogleFontsTableOfContents} from '../../docs/google-f import {TableOfContents as InstallWhisperCppTableOfContents} from '../../docs/install-whisper-cpp/install-whisper-cpp'; import {TableOfContents as LambdaTableOfContents} from '../../docs/lambda/table-of-contents'; import {TableOfContents as LayoutUtilsTableOfContents} from '../../docs/layout-utils/table-of-contents'; -import {TableOfContents as LightLeaksTableOfContents} from '../../docs/light-leaks/table-of-contents'; import {TableOfContents as LicensingTableOfContents} from '../../docs/licensing/TableOfContents'; +import {TableOfContents as LightLeaksTableOfContents} from '../../docs/light-leaks/table-of-contents'; import {TableOfContents as LottieTableOfContents} from '../../docs/lottie/table-of-contents'; import {TableOfContents as MediaParserTableOfContents} from '../../docs/media-parser/TableOfContents'; import {TableOfContents as MediaUtilsTableOfContents} from '../../docs/media-utils/table-of-contents'; @@ -33,6 +33,7 @@ import {TableOfContents as TailwindV4TableOfContents} from '../../docs/tailwind- import {TableOfContents as TailwindTableOfContents} from '../../docs/tailwind/TableOfContents'; import {TableOfContents as ThreeTableOfContents} from '../../docs/three/TableOfContents'; import {TableOfContents as TransitionsTableOfContents} from '../../docs/transitions/table-of-contents'; +import {TableOfContents as VercelTableOfContents} from '../../docs/vercel/table-of-contents'; import {TableOfContents as WebcodecsTableOfContents} from '../../docs/webcodecs/TableOfContents'; import {ZodTypesTableOfContents} from '../../docs/zod-types/TableOfContents'; import {Grid} from './Grid'; @@ -154,6 +155,9 @@ export const TableOfContents: React.FC = () => {

@remotion/light-leaks

Light leak effects

+

@remotion/vercel

+

Render videos on Vercel Sandbox

+

@remotion/motion-blur

Apply motion blur effects to components

diff --git a/packages/docs/docs/audio/exporting.mdx b/packages/docs/docs/audio/exporting.mdx index 3f4dab7a52e..809f1b8e103 100644 --- a/packages/docs/docs/audio/exporting.mdx +++ b/packages/docs/docs/audio/exporting.mdx @@ -98,6 +98,26 @@ const {bucketName, renderId} = await renderMediaOnLambda({ }); ``` +### `renderMediaOnVercel()` + +To render only the audio via Vercel, use [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel) and set the [`codec`](/docs/vercel/render-media-on-vercel#codec) to an audio codec and [`imageFormat`](/docs/vercel/render-media-on-vercel#imageformat) to `none`. + +```tsx twoslash +// @module: es2022 +// @target: es2022 +import {renderMediaOnVercel, createSandbox} from '@remotion/vercel'; +const sandbox = await createSandbox(); +// ---cut--- + +const {sandboxFilePath} = await renderMediaOnVercel({ + sandbox, + compositionId: 'MyVideo', + inputProps: {}, + codec: 'mp3', + imageFormat: 'none', +}); +``` + ### Lambda CLI To render via the Lambda CLI, use the [`npx remotion lambda render`](/docs/lambda/cli/render) command and pass the [`--codec`](/docs/lambda/cli/render#--codec) flag: @@ -188,6 +208,26 @@ const {bucketName, renderId} = await renderMediaOnLambda({ }); ``` +### `renderMediaOnVercel()` + +Pass [`muted: true`](/docs/vercel/render-media-on-vercel#muted) to [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel) to mute the render. + +```tsx twoslash +// @module: es2022 +// @target: es2022 +import {renderMediaOnVercel, createSandbox} from '@remotion/vercel'; +const sandbox = await createSandbox(); +// ---cut--- + +const {sandboxFilePath} = await renderMediaOnVercel({ + sandbox, + compositionId: 'MyVideo', + inputProps: {}, + codec: 'h264', + muted: true, +}); +``` + ### Lambda CLI Pass [`--muted`](/docs/lambda/cli/render#--muted) to [`npx remotion lambda render`](/docs/lambda/cli/render) to mute a render when using the Lambda Command Line. diff --git a/packages/docs/docs/chromium-flags.mdx b/packages/docs/docs/chromium-flags.mdx index 95dbcf68176..9a29fdb19d6 100644 --- a/packages/docs/docs/chromium-flags.mdx +++ b/packages/docs/docs/chromium-flags.mdx @@ -17,7 +17,7 @@ Remotion will automatically append the `--user-data-dir` flag. ### Via Node.JS APIs -In [`getCompositions()`](/docs/renderer/get-compositions), [`renderStill()`](/docs/renderer/render-still#disablewebsecurity), [`renderMedia()`](/docs/renderer/render-media#disablewebsecurity), [`renderFrames()`](/docs/renderer/render-frames#disablewebsecurity), [`getCompositionsOnLambda()`](/docs/lambda/getcompositionsonlambda#disablewebsecurity), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#disablewebsecurity) and [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#disablewebsecurity), you can pass [`chromiumOptions.disableWebSecurity`](/docs/renderer/render-still#disablewebsecurity). +In [`getCompositions()`](/docs/renderer/get-compositions), [`renderStill()`](/docs/renderer/render-still#disablewebsecurity), [`renderMedia()`](/docs/renderer/render-media#disablewebsecurity), [`renderFrames()`](/docs/renderer/render-frames#disablewebsecurity), [`getCompositionsOnLambda()`](/docs/lambda/getcompositionsonlambda#disablewebsecurity), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#disablewebsecurity), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#disablewebsecurity), [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#chromiumoptions) and [`renderStillOnVercel()`](/docs/vercel/render-still-on-vercel#chromiumoptions), you can pass [`chromiumOptions.disableWebSecurity`](/docs/renderer/render-still#disablewebsecurity). ### Via CLI flag @@ -45,7 +45,7 @@ Results in invalid SSL certificates, such as self-signed ones, being ignored. ### Via Node.JS APIs -In [`getCompositions()`](/docs/renderer/get-compositions), [`renderStill()`](/docs/renderer/render-still#ignorecertificateerrors), [`renderMedia()`](/docs/renderer/render-media#ignorecertificateerrors), [`renderFrames()`](/docs/renderer/render-frames#ignorecertificateerrors), [`getCompositionsOnLambda()`](/docs/lambda/getcompositionsonlambda#disablewebsecurity), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#ignorecertificateerrors) and [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#ignorecertificateerrors), you can pass [`chromiumOptions.ignoreCertificateErrors`](/docs/renderer/render-still#ignorecertificateerrors). +In [`getCompositions()`](/docs/renderer/get-compositions), [`renderStill()`](/docs/renderer/render-still#ignorecertificateerrors), [`renderMedia()`](/docs/renderer/render-media#ignorecertificateerrors), [`renderFrames()`](/docs/renderer/render-frames#ignorecertificateerrors), [`getCompositionsOnLambda()`](/docs/lambda/getcompositionsonlambda#disablewebsecurity), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#ignorecertificateerrors), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#ignorecertificateerrors), [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#chromiumoptions) and [`renderStillOnVercel()`](/docs/vercel/render-still-on-vercel#chromiumoptions), you can pass [`chromiumOptions.ignoreCertificateErrors`](/docs/renderer/render-still#ignorecertificateerrors). ### Via CLI flag @@ -101,7 +101,7 @@ Prior to `v3.3.39`, the option was called `Config.Puppeteer.setChromiumHeadlessM ### Via Node.JS APIs -In [`getCompositions()`](/docs/renderer/get-compositions#chromiumoptions), [`renderStill()`](/docs/renderer/render-still#gl), [`renderMedia()`](/docs/renderer/render-media#gl), [`renderFrames()`](/docs/renderer/render-frames#gl), [`getCompositionsOnLambda()`](/docs/lambda/getcompositionsonlambda#gl), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#gl) and [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#gl), you can pass [`chromiumOptions.gl`](/docs/renderer/render-still#gl). +In [`getCompositions()`](/docs/renderer/get-compositions#chromiumoptions), [`renderStill()`](/docs/renderer/render-still#gl), [`renderMedia()`](/docs/renderer/render-media#gl), [`renderFrames()`](/docs/renderer/render-frames#gl), [`getCompositionsOnLambda()`](/docs/lambda/getcompositionsonlambda#gl), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#gl), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#gl), [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#chromiumoptions) and [`renderStillOnVercel()`](/docs/vercel/render-still-on-vercel#chromiumoptions), you can pass [`chromiumOptions.gl`](/docs/renderer/render-still#gl). ### Via CLI flag @@ -125,7 +125,7 @@ Prior to `v3.3.39`, the option was called `Config.Puppeteer.setChromiumOpenGlRen ### Via Node.JS APIs -In [`getCompositions()`](/docs/renderer/get-compositions#chromiumoptions), [`renderStill()`](/docs/renderer/render-still#useragent), [`renderMedia()`](/docs/renderer/render-media#useragent), [`renderFrames()`](/docs/renderer/render-frames#useragent), [`getCompositionsOnLambda()`](/docs/lambda/getcompositionsonlambda#useragent), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#useragent) and [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#chromiumoptions), you can pass [`chromiumOptions.userAgent`](/docs/renderer/render-still#useragent). +In [`getCompositions()`](/docs/renderer/get-compositions#chromiumoptions), [`renderStill()`](/docs/renderer/render-still#useragent), [`renderMedia()`](/docs/renderer/render-media#useragent), [`renderFrames()`](/docs/renderer/render-frames#useragent), [`getCompositionsOnLambda()`](/docs/lambda/getcompositionsonlambda#useragent), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#useragent), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#chromiumoptions), [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#chromiumoptions) and [`renderStillOnVercel()`](/docs/vercel/render-still-on-vercel#chromiumoptions), you can pass [`chromiumOptions.userAgent`](/docs/renderer/render-still#useragent). ### Via CLI flag @@ -137,7 +137,7 @@ Pass [`--user-agent`](/docs/cli) in one of the following commands: [`remotion re ### Via Node.JS APIs -In [`getCompositions()`](/docs/renderer/get-compositions#chromiumoptions), [`renderStill()`](/docs/renderer/render-still#darkmode), [`renderMedia()`](/docs/renderer/render-media#darkmode), [`renderFrames()`](/docs/renderer/render-frames#darkmode), [`getCompositionsOnLambda()`](/docs/lambda/getcompositionsonlambda#darkmode), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#darkmode) and [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#chromiumoptions), you can pass [`chromiumOptions.darkMode`](/docs/renderer/render-still#darkmode). +In [`getCompositions()`](/docs/renderer/get-compositions#chromiumoptions), [`renderStill()`](/docs/renderer/render-still#darkmode), [`renderMedia()`](/docs/renderer/render-media#darkmode), [`renderFrames()`](/docs/renderer/render-frames#darkmode), [`getCompositionsOnLambda()`](/docs/lambda/getcompositionsonlambda#darkmode), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#darkmode), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#chromiumoptions), [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#chromiumoptions) and [`renderStillOnVercel()`](/docs/vercel/render-still-on-vercel#chromiumoptions), you can pass [`chromiumOptions.darkMode`](/docs/renderer/render-still#darkmode). ### Via CLI flag diff --git a/packages/docs/docs/cli/render.mdx b/packages/docs/docs/cli/render.mdx index c731cc10bb8..b40646d55c2 100644 --- a/packages/docs/docs/cli/render.mdx +++ b/packages/docs/docs/cli/render.mdx @@ -142,7 +142,7 @@ If you enable [hardware acceleration](/docs/hardware-acceleration), you cannot s ### `--frames` -[Render a subset of a video](/docs/config#setframerange). Example: `--frames=0-9` to select the first 10 frames. You can omit the start or end: `--frames=100-` renders from frame 100 to the end, `--frames=-100` renders from the start to frame 100. To render a still, use the `still` command. + ### `--every-nth-frame` diff --git a/packages/docs/docs/cloudrun/cli/render.mdx b/packages/docs/docs/cloudrun/cli/render.mdx index c0f83e4ea85..5aa0afe97b4 100644 --- a/packages/docs/docs/cloudrun/cli/render.mdx +++ b/packages/docs/docs/cloudrun/cli/render.mdx @@ -186,7 +186,7 @@ For example only every second frame, every third frame and so on. Only works for ### `--frames` -[Render a subset of a video](/docs/config#setframerange). Example: `--frames=0-9` to select the first 10 frames. You can omit the start or end: `--frames=100-` renders from frame 100 to the end, `--frames=-100` renders from the start to frame 100. + ### `--media-cache-size-in-bytes` diff --git a/packages/docs/docs/config.mdx b/packages/docs/docs/config.mdx index 3a5c784a0ba..fdcfdc03fde 100644 --- a/packages/docs/docs/config.mdx +++ b/packages/docs/docs/config.mdx @@ -449,7 +449,7 @@ The [command line flag](/docs/cli/render#--for-seamless-aac-concatenation) `--fo ## `setFrameRange()` -Pass a number to render a still frame or a tuple to render a subset of a video. The frame sequence is zero-indexed. + ```ts twoslash title="remotion.config.ts" import {Config} from '@remotion/cli/config'; diff --git a/packages/docs/docs/env-variables.mdx b/packages/docs/docs/env-variables.mdx index 5a2e581f38b..98cdae964fc 100644 --- a/packages/docs/docs/env-variables.mdx +++ b/packages/docs/docs/env-variables.mdx @@ -50,7 +50,7 @@ You can override the location of your dotenv file using the [configuration file ## Using in Node.js APIs -When using the [Node.js APIs](/docs/renderer) such as [`renderMedia()`](/docs/renderer/render-media) or [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda), the environment variables are **not** picked up automatically. +When using the [Node.js APIs](/docs/renderer) such as [`renderMedia()`](/docs/renderer/render-media), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda) or [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel), the environment variables are **not** picked up automatically. The reason is that one might integrate Remotion as a small part of a big application and if Remotion would read the `.env` file automatically and forward all variables to renders, it would lead to a security issue. @@ -60,7 +60,7 @@ If you want to read the environment variables from a `.env` file, use the [doten ## The `envVariables` option -The `envVariables` option of [`renderMedia()`](/docs/renderer/render-media#envvariables), [`renderMediaOnLambda`](/docs/lambda/rendermediaonlambda) accepts an object of key-value pairs. +The `envVariables` option of [`renderMedia()`](/docs/renderer/render-media#envvariables), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda), [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#envvariables) accepts an object of key-value pairs. These values can then be read from `process.env` inside your React component. The option is not for authenticating with AWS - instead, load the AWS credentials using one of the described methods above. diff --git a/packages/docs/docs/lambda/cli/render.mdx b/packages/docs/docs/lambda/cli/render.mdx index 9331f5f3803..4c60854f162 100644 --- a/packages/docs/docs/lambda/cli/render.mdx +++ b/packages/docs/docs/lambda/cli/render.mdx @@ -187,7 +187,7 @@ Renamed to `jpegQuality` in `v4.0.0`. ### `--frames` -[Render a subset of a video](/docs/config#setframerange). Example: `--frames=0-9` to select the first 10 frames. You can omit the start or end: `--frames=100-` renders from frame 100 to the end, `--frames=-100` renders from the start to frame 100. To render a still, use the [`still`](/docs/lambda/cli/still) command. + ### `--every-nth-frame` diff --git a/packages/docs/docs/licensing/index.mdx b/packages/docs/docs/licensing/index.mdx index 0c852e9cbd4..b89dc118ad4 100644 --- a/packages/docs/docs/licensing/index.mdx +++ b/packages/docs/docs/licensing/index.mdx @@ -14,7 +14,8 @@ Also, it offers an API to programmatically check the usage in order to implement Not directly - you can directly pass the `licenseKey` option to track a render. -**For [`@remotion/lambda`](/docs/lambda)**: Pass the `licenseKey` option to [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#licensekey) and [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#licensekey) to trigger an event. +**For [`@remotion/lambda`](/docs/lambda)**: Pass the `licenseKey` option to [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#licensekey) and [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#licensekey) to trigger an event. +**For [`@remotion/vercel`](/docs/vercel/api)**: Pass the `licenseKey` option to [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#licensekey) and [`renderStillOnVercel()`](/docs/vercel/render-still-on-vercel#licensekey) to trigger an event. **For [`@remotion/renderer`](/docs/renderer)**: Pass the `licenseKey` option to [`renderMedia()`](/docs/renderer/render-media#licensekey) and [`renderStill()`](/docs/renderer/render-still#licensekey) to trigger an event. **For [`@remotion/web-renderer`](/docs/client-side-rendering/telemetry)**: An event is always sent. You must pass a real `licenseKey` or declare your eligibility for the free license using `licenseKey: "free-license"` - see: [Telemetry in client-side rendering](/docs/client-side-rendering/telemetry#setting-a-license-key). **For [`@remotion/cloudrun`](/docs/cloudrun)** (_deprecated_): No telemetry is implemented. Use [`@remotion/licensing`](/docs/licensing) directly to track usage. diff --git a/packages/docs/docs/render-as-gif.mdx b/packages/docs/docs/render-as-gif.mdx index b04a0e94916..3dcd2580861 100644 --- a/packages/docs/docs/render-as-gif.mdx +++ b/packages/docs/docs/render-as-gif.mdx @@ -10,7 +10,7 @@ _Available since v3.1_ You can render a video as a GIF by: - passing `--codec=gif` in the command line -- setting `codec: "gif"` in [`renderMedia()`](/docs/renderer/render-media), [`stitchFramesToVideo()`](/docs/renderer/stitch-frames-to-video) or [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda). +- setting `codec: "gif"` in [`renderMedia()`](/docs/renderer/render-media), [`stitchFramesToVideo()`](/docs/renderer/stitch-frames-to-video), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda) or [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel). ## Reducing frame rate @@ -22,7 +22,7 @@ Commonly a GIF has a lower frame rate than a video. For this, we support a param `everyNthFrame` is supported: -- in [`renderFrames()`](/docs/renderer/render-frames#everynthframe), [`renderMedia()`](/docs/renderer/render-media#everynthframe) and [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#everynthframe) +- in [`renderFrames()`](/docs/renderer/render-frames#everynthframe), [`renderMedia()`](/docs/renderer/render-media#everynthframe), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#everynthframe) and [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#everynthframe) - in the CLI using `--every-nth-frame=2` [locally](/docs/cli/render#--every-nth-frame) or [on Lambda](/docs/lambda/cli/render#--every-nth-frame). - in the config file using [`setEveryNthFrame()`](/docs/config#seteverynthframe). @@ -41,7 +41,7 @@ The `numberOfGifLoops` option allows you to set the number of loops as follows: The `numberOfGifLoops` option can be set: - In the CLI using the `--number-of-gif-loops=0` flag when rendering [locally](/docs/cli/render#--number-of-gif-loops) or on [Lambda](/docs/lambda/cli/render#--number-of-gif-loops). -- in [`stitchFramesToVideo()`](/docs/renderer/stitch-frames-to-video#numberofgifloops), [`renderMedia()`](/docs/renderer/render-media#numberofgifloops) and [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#numberofgifloops) +- in [`stitchFramesToVideo()`](/docs/renderer/stitch-frames-to-video#numberofgifloops), [`renderMedia()`](/docs/renderer/render-media#numberofgifloops), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#numberofgifloops) and [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#numberofgifloops) - in the config file using [`setNumberOfGifLoops()`](/docs/config#setnumberofgifloops). ## Importing GIFs diff --git a/packages/docs/docs/scaling.mdx b/packages/docs/docs/scaling.mdx index b2fd88fe139..a035aa734eb 100644 --- a/packages/docs/docs/scaling.mdx +++ b/packages/docs/docs/scaling.mdx @@ -19,7 +19,7 @@ Remotion can support this higher resolution by: ## How to scale - In the CLI, during a render of a video or a still, pass the [`--scale`](/docs/cli/render#--scale) flag. For example: `--scale=2` -- In the Node.JS functions [`renderStill()`](/docs/renderer/render-still#scale), [`renderFrames()`](/docs/renderer/render-frames#scale), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda) and [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda), [`renderMediaOnCloudRun()`](/docs/cloudrun/rendermediaoncloudrun), [`renderStillOnCloudRun()`](/docs/cloudrun/renderstilloncloudrun), you can pass a `scale` option. +- In the Node.JS functions [`renderStill()`](/docs/renderer/render-still#scale), [`renderFrames()`](/docs/renderer/render-frames#scale), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda) and [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda), [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#scale) and [`renderStillOnVercel()`](/docs/vercel/render-still-on-vercel#scale), [`renderMediaOnCloudRun()`](/docs/cloudrun/rendermediaoncloudrun), [`renderStillOnCloudRun()`](/docs/cloudrun/renderstilloncloudrun), you can pass a `scale` option. - In the client-side rendering functions [`renderMediaOnWeb()`](/docs/renderer/render-media#scale), [`renderStillOnWeb()`](/docs/renderer/render-still#scale), you can pass a `scale` option. - In the [config file](/docs/config), you can pass the scale using the following statement: diff --git a/packages/docs/docs/three.mdx b/packages/docs/docs/three.mdx index 9fd0bef290c..5380c0c88db 100644 --- a/packages/docs/docs/three.mdx +++ b/packages/docs/docs/three.mdx @@ -88,7 +88,7 @@ Since the config file does not apply to server-side rendering, you need to expli } ``` -to server-side rendering APIs like [`renderMedia()`](/docs/renderer/render-media), [`renderFrames()`](/docs/renderer/render-frames), [`getCompositions()`](/docs/renderer/get-compositions) and [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda). +to server-side rendering APIs like [`renderMedia()`](/docs/renderer/render-media), [`renderFrames()`](/docs/renderer/render-frames), [`getCompositions()`](/docs/renderer/get-compositions), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda) and [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel). ## Thanks diff --git a/packages/docs/docs/timeout.mdx b/packages/docs/docs/timeout.mdx index de91f0b3145..d8508826064 100644 --- a/packages/docs/docs/timeout.mdx +++ b/packages/docs/docs/timeout.mdx @@ -67,7 +67,7 @@ You can increase the default timeout: - In the Remotion Studio render dialog under "Advanced" - Using the [`--timeout`](/docs/cli/render#--timeout) CLI flag -- Using the `timeoutInMilliseconds` option in [`renderStill()`](/docs/renderer/render-still#timeoutinmilliseconds), [`renderFrames()`](/docs/renderer/render-frames#timeoutinmilliseconds), [`getCompositions()`](/docs/renderer/get-compositions#timeoutinmilliseconds), [`renderMedia()`](/docs/renderer/render-media#timeoutinmilliseconds), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#timeoutinmilliseconds), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#timeoutinmilliseconds), [`renderStillOnCloudRun()`](/docs/cloudrun/renderstilloncloudrun#delayrendertimeoutinmilliseconds) and [`renderMediaOnCloudRun()`](/docs/cloudrun/rendermediaoncloudrun#delayrendertimeoutinmilliseconds) +- Using the `timeoutInMilliseconds` option in [`renderStill()`](/docs/renderer/render-still#timeoutinmilliseconds), [`renderFrames()`](/docs/renderer/render-frames#timeoutinmilliseconds), [`getCompositions()`](/docs/renderer/get-compositions#timeoutinmilliseconds), [`renderMedia()`](/docs/renderer/render-media#timeoutinmilliseconds), [`renderMediaOnLambda()`](/docs/lambda/rendermediaonlambda#timeoutinmilliseconds), [`renderStillOnLambda()`](/docs/lambda/renderstillonlambda#timeoutinmilliseconds), [`renderMediaOnVercel()`](/docs/vercel/render-media-on-vercel#timeoutinmilliseconds), [`renderStillOnVercel()`](/docs/vercel/render-still-on-vercel#timeoutinmilliseconds), [`renderStillOnCloudRun()`](/docs/cloudrun/renderstilloncloudrun#delayrendertimeoutinmilliseconds) and [`renderMediaOnCloudRun()`](/docs/cloudrun/rendermediaoncloudrun#delayrendertimeoutinmilliseconds) - Using the [`Config.setDelayRenderTimeoutInMilliseconds()`](/docs/config#setdelayrendertimeoutinmilliseconds) option in the config file, if you render on the CLI - Individually for a [`delayRender()`](/docs/delay-render) call using the [`timeoutInMilliseconds`](/docs/delay-render#modifying-the-timeout) option - The [``](/docs/img#delayrendertimeoutinmilliseconds), [`