@remotion/renderer 4.0.396 → 4.0.398

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/dist/client.d.ts CHANGED
@@ -980,6 +980,21 @@ export declare const BrowserSafeApis: {
980
980
  };
981
981
  setConfig: (value: boolean) => void;
982
982
  };
983
+ publicLicenseKeyOption: {
984
+ name: string;
985
+ cliFlag: "public-license-key";
986
+ description: () => import("react/jsx-runtime").JSX.Element;
987
+ ssrName: "publicLicenseKey";
988
+ docLink: string;
989
+ getValue: ({ commandLine }: {
990
+ commandLine: Record<string, unknown>;
991
+ }) => {
992
+ source: string;
993
+ value: string | null;
994
+ };
995
+ setConfig: (value: string | null) => void;
996
+ type: string | null;
997
+ };
983
998
  };
984
999
  validColorSpaces: readonly ["default", "bt709", "bt2020-ncl"];
985
1000
  optionsMap: {
@@ -2343,26 +2343,72 @@ var publicDirOption = {
2343
2343
  type: ""
2344
2344
  };
2345
2345
 
2346
- // src/options/public-path.tsx
2346
+ // src/options/public-license-key.tsx
2347
2347
  import { jsx as jsx34, jsxs as jsxs28, Fragment as Fragment34 } from "react/jsx-runtime";
2348
- var cliFlag38 = "public-path";
2348
+ var cliFlag38 = "public-license-key";
2349
+ var currentPublicLicenseKey = null;
2350
+ var publicLicenseKeyOption = {
2351
+ name: "Public License Key",
2352
+ cliFlag: cliFlag38,
2353
+ description: () => /* @__PURE__ */ jsxs28(Fragment34, {
2354
+ children: [
2355
+ 'The public license key for your company license, obtained from the "Usage" tab on ',
2356
+ /* @__PURE__ */ jsx34("a", {
2357
+ href: "https://remotion.pro/dashboard",
2358
+ children: "remotion.pro"
2359
+ }),
2360
+ '. If you are eligible for the free license, pass "free-license".'
2361
+ ]
2362
+ }),
2363
+ ssrName: "publicLicenseKey",
2364
+ docLink: "https://www.remotion.dev/docs/licensing",
2365
+ getValue: ({ commandLine }) => {
2366
+ if (commandLine[cliFlag38] !== undefined) {
2367
+ return {
2368
+ source: "cli",
2369
+ value: commandLine[cliFlag38]
2370
+ };
2371
+ }
2372
+ if (currentPublicLicenseKey !== null) {
2373
+ return {
2374
+ source: "config",
2375
+ value: currentPublicLicenseKey
2376
+ };
2377
+ }
2378
+ return {
2379
+ source: "default",
2380
+ value: null
2381
+ };
2382
+ },
2383
+ setConfig: (value3) => {
2384
+ if (value3 && value3 !== "free-license" && !value3.startsWith("rm_pub_")) {
2385
+ throw new Error('Invalid public license key. It must start with "rm_pub_" or be "free-license".');
2386
+ }
2387
+ currentPublicLicenseKey = value3;
2388
+ },
2389
+ type: null
2390
+ };
2391
+
2392
+ // src/options/public-path.tsx
2393
+ import { jsx as jsx35, jsxs as jsxs29, Fragment as Fragment35 } from "react/jsx-runtime";
2394
+ var cliFlag39 = "public-path";
2349
2395
  var currentPublicPath = null;
2350
2396
  var publicPathOption = {
2351
2397
  name: "Public Path",
2352
- cliFlag: cliFlag38,
2398
+ cliFlag: cliFlag39,
2353
2399
  description: () => {
2354
- return /* @__PURE__ */ jsxs28(Fragment34, {
2400
+ return /* @__PURE__ */ jsxs29(Fragment35, {
2355
2401
  children: [
2356
2402
  "The path of the URL where the bundle is going to be hosted. By default it is ",
2357
- /* @__PURE__ */ jsx34("code", {
2403
+ /* @__PURE__ */ jsx35("code", {
2358
2404
  children: "/"
2359
2405
  }),
2360
2406
  ", meaning that the bundle is going to be hosted at the root of the domain (e.g. ",
2361
- /* @__PURE__ */ jsx34("code", {
2407
+ /* @__PURE__ */ jsx35("code", {
2362
2408
  children: "https://localhost:3000/"
2363
2409
  }),
2364
2410
  "). If you are deploying to a subdirectory (e.g. ",
2365
- /* @__PURE__ */ jsx34("code", {
2411
+ /* @__PURE__ */ jsx35("code", {
2366
2412
  children: "/sites/my-site/"
2367
2413
  }),
2368
2414
  "), you should set this to the subdirectory."
@@ -2372,10 +2418,10 @@ var publicPathOption = {
2372
2418
  ssrName: "publicPath",
2373
2419
  docLink: "https://www.remotion.dev/docs/renderer",
2374
2420
  getValue: ({ commandLine }) => {
2375
- if (commandLine[cliFlag38] !== undefined) {
2421
+ if (commandLine[cliFlag39] !== undefined) {
2376
2422
  return {
2377
2423
  source: "cli",
2378
- value: commandLine[cliFlag38]
2424
+ value: commandLine[cliFlag39]
2379
2425
  };
2380
2426
  }
2381
2427
  if (currentPublicPath !== null) {
@@ -2396,25 +2442,25 @@ var publicPathOption = {
2396
2442
  };
2397
2443
 
2398
2444
  // src/options/repro.tsx
2399
- import { jsx as jsx35, Fragment as Fragment35 } from "react/jsx-runtime";
2445
+ import { jsx as jsx36, Fragment as Fragment36 } from "react/jsx-runtime";
2400
2446
  var enableRepro = false;
2401
2447
  var setRepro = (should) => {
2402
2448
  enableRepro = should;
2403
2449
  };
2404
- var cliFlag39 = "repro";
2450
+ var cliFlag40 = "repro";
2405
2451
  var reproOption = {
2406
2452
  name: "Create reproduction",
2407
- cliFlag: cliFlag39,
2408
- description: () => /* @__PURE__ */ jsx35(Fragment35, {
2453
+ cliFlag: cliFlag40,
2454
+ description: () => /* @__PURE__ */ jsx36(Fragment36, {
2409
2455
  children: "Create a ZIP that you can submit to Remotion if asked for a reproduction."
2410
2456
  }),
2411
2457
  ssrName: "repro",
2412
2458
  docLink: "https://www.remotion.dev/docs/render-media#repro",
2413
2459
  type: false,
2414
2460
  getValue: ({ commandLine }) => {
2415
- if (commandLine[cliFlag39] !== undefined) {
2461
+ if (commandLine[cliFlag40] !== undefined) {
2416
2462
  return {
2417
- value: commandLine[cliFlag39],
2463
+ value: commandLine[cliFlag40],
2418
2464
  source: "cli"
2419
2465
  };
2420
2466
  }
@@ -2433,9 +2479,9 @@ var reproOption = {
2433
2479
  };
2434
2480
 
2435
2481
  // src/options/scale.tsx
2436
- import { jsx as jsx36, jsxs as jsxs29, Fragment as Fragment36 } from "react/jsx-runtime";
2482
+ import { jsx as jsx37, jsxs as jsxs30, Fragment as Fragment37 } from "react/jsx-runtime";
2437
2483
  var currentScale = 1;
2438
- var cliFlag40 = "scale";
2484
+ var cliFlag41 = "scale";
2439
2485
  var validateScale = (value3) => {
2440
2486
  if (typeof value3 !== "number") {
2441
2487
  throw new Error("scale must be a number.");
@@ -2443,11 +2489,11 @@ var validateScale = (value3) => {
2443
2489
  };
2444
2490
  var scaleOption = {
2445
2491
  name: "Scale",
2446
- cliFlag: cliFlag40,
2447
- description: () => /* @__PURE__ */ jsxs29(Fragment36, {
2492
+ cliFlag: cliFlag41,
2493
+ description: () => /* @__PURE__ */ jsxs30(Fragment37, {
2448
2494
  children: [
2449
2495
  "Scales the output by a factor. For example, a 1280x720px frame will become a 1920x1080px frame with a scale factor of ",
2450
- /* @__PURE__ */ jsx36("code", {
2496
+ /* @__PURE__ */ jsx37("code", {
2451
2497
  children: "1.5"
2452
2498
  }),
2453
2499
  ". Vector elements like fonts and HTML markups will be rendered with extra details."
@@ -2457,11 +2503,11 @@ var scaleOption = {
2457
2503
  docLink: "https://www.remotion.dev/docs/scaling",
2458
2504
  type: 0,
2459
2505
  getValue: ({ commandLine }) => {
2460
- if (commandLine[cliFlag40] !== undefined) {
2461
- validateScale(commandLine[cliFlag40]);
2506
+ if (commandLine[cliFlag41] !== undefined) {
2507
+ validateScale(commandLine[cliFlag41]);
2462
2508
  return {
2463
2509
  source: "cli",
2464
- value: commandLine[cliFlag40]
2510
+ value: commandLine[cliFlag41]
2465
2511
  };
2466
2512
  }
2467
2513
  if (currentScale !== null) {
@@ -2482,16 +2528,16 @@ var scaleOption = {
2482
2528
 
2483
2529
  // src/options/throw-if-site-exists.tsx
2484
2530
  var DEFAULT5 = false;
2485
- var cliFlag41 = "throw-if-site-exists";
2531
+ var cliFlag42 = "throw-if-site-exists";
2486
2532
  var throwIfSiteExistsOption = {
2487
- cliFlag: cliFlag41,
2533
+ cliFlag: cliFlag42,
2488
2534
  description: () => `Prevents accidential update of an existing site. If there are any files in the subfolder where the site should be placed, the function will throw.`,
2489
2535
  docLink: "https://remotion.dev/docs/lambda/deploy-site",
2490
2536
  getValue: ({ commandLine }) => {
2491
- if (commandLine[cliFlag41]) {
2537
+ if (commandLine[cliFlag42]) {
2492
2538
  return {
2493
2539
  source: "cli",
2494
- value: commandLine[cliFlag41]
2540
+ value: commandLine[cliFlag42]
2495
2541
  };
2496
2542
  }
2497
2543
  return {
@@ -2508,37 +2554,37 @@ var throwIfSiteExistsOption = {
2508
2554
  };
2509
2555
 
2510
2556
  // src/options/timeout.tsx
2511
- import { jsx as jsx37, jsxs as jsxs30, Fragment as Fragment37 } from "react/jsx-runtime";
2557
+ import { jsx as jsx38, jsxs as jsxs31, Fragment as Fragment38 } from "react/jsx-runtime";
2512
2558
  var currentTimeout = DEFAULT_TIMEOUT;
2513
2559
  var validate3 = (value3) => {
2514
2560
  if (typeof value3 !== "number") {
2515
2561
  throw new Error("--timeout flag / setDelayRenderTimeoutInMilliseconds() must be a number, but got " + JSON.stringify(value3));
2516
2562
  }
2517
2563
  };
2518
- var cliFlag42 = "timeout";
2564
+ var cliFlag43 = "timeout";
2519
2565
  var delayRenderTimeoutInMillisecondsOption = {
2520
2566
  name: "delayRender() timeout",
2521
- cliFlag: cliFlag42,
2522
- description: () => /* @__PURE__ */ jsxs30(Fragment37, {
2567
+ cliFlag: cliFlag43,
2568
+ description: () => /* @__PURE__ */ jsxs31(Fragment38, {
2523
2569
  children: [
2524
2570
  "A number describing how long the render may take to resolve all",
2525
2571
  " ",
2526
- /* @__PURE__ */ jsx37("a", {
2572
+ /* @__PURE__ */ jsx38("a", {
2527
2573
  href: "https://remotion.dev/docs/delay-render",
2528
- children: /* @__PURE__ */ jsx37("code", {
2574
+ children: /* @__PURE__ */ jsx38("code", {
2529
2575
  children: "delayRender()"
2530
2576
  })
2531
2577
  }),
2532
2578
  " ",
2533
2579
  "calls",
2534
2580
  " ",
2535
- /* @__PURE__ */ jsx37("a", {
2581
+ /* @__PURE__ */ jsx38("a", {
2536
2582
  style: { fontSize: "inherit" },
2537
2583
  href: "https://remotion.dev/docs/timeout",
2538
2584
  children: "before it times out"
2539
2585
  }),
2540
2586
  ". Default: ",
2541
- /* @__PURE__ */ jsx37("code", {
2587
+ /* @__PURE__ */ jsx38("code", {
2542
2588
  children: "30000"
2543
2589
  })
2544
2590
  ]
@@ -2547,10 +2593,10 @@ var delayRenderTimeoutInMillisecondsOption = {
2547
2593
  docLink: "https://www.remotion.dev/docs/timeout",
2548
2594
  type: 0,
2549
2595
  getValue: ({ commandLine }) => {
2550
- if (commandLine[cliFlag42] !== undefined) {
2596
+ if (commandLine[cliFlag43] !== undefined) {
2551
2597
  return {
2552
2598
  source: "cli",
2553
- value: commandLine[cliFlag42]
2599
+ value: commandLine[cliFlag43]
2554
2600
  };
2555
2601
  }
2556
2602
  if (currentTimeout !== null) {
@@ -2572,26 +2618,26 @@ var delayRenderTimeoutInMillisecondsOption = {
2572
2618
  };
2573
2619
 
2574
2620
  // src/options/video-bitrate.tsx
2575
- import { jsx as jsx38, jsxs as jsxs31, Fragment as Fragment38 } from "react/jsx-runtime";
2621
+ import { jsx as jsx39, jsxs as jsxs32, Fragment as Fragment39 } from "react/jsx-runtime";
2576
2622
  var videoBitrate = null;
2577
- var cliFlag43 = "video-bitrate";
2623
+ var cliFlag44 = "video-bitrate";
2578
2624
  var videoBitrateOption = {
2579
2625
  name: "Video Bitrate",
2580
- cliFlag: cliFlag43,
2581
- description: () => /* @__PURE__ */ jsxs31(Fragment38, {
2626
+ cliFlag: cliFlag44,
2627
+ description: () => /* @__PURE__ */ jsxs32(Fragment39, {
2582
2628
  children: [
2583
2629
  "Specify the target bitrate for the generated video. The syntax for FFmpeg",
2584
2630
  "'",
2585
2631
  "s",
2586
- /* @__PURE__ */ jsx38("code", {
2632
+ /* @__PURE__ */ jsx39("code", {
2587
2633
  children: "-b:v"
2588
2634
  }),
2589
2635
  " parameter should be used. FFmpeg may encode the video in a way that will not result in the exact video bitrate specified. Example values: ",
2590
- /* @__PURE__ */ jsx38("code", {
2636
+ /* @__PURE__ */ jsx39("code", {
2591
2637
  children: "512K"
2592
2638
  }),
2593
2639
  " for 512 kbps, ",
2594
- /* @__PURE__ */ jsx38("code", {
2640
+ /* @__PURE__ */ jsx39("code", {
2595
2641
  children: "1M"
2596
2642
  }),
2597
2643
  " for 1 Mbps."
@@ -2601,10 +2647,10 @@ var videoBitrateOption = {
2601
2647
  docLink: "https://www.remotion.dev/docs/renderer/render-media#videobitrate",
2602
2648
  type: "",
2603
2649
  getValue: ({ commandLine }) => {
2604
- if (commandLine[cliFlag43] !== undefined) {
2650
+ if (commandLine[cliFlag44] !== undefined) {
2605
2651
  return {
2606
2652
  source: "cli",
2607
- value: commandLine[cliFlag43]
2653
+ value: commandLine[cliFlag44]
2608
2654
  };
2609
2655
  }
2610
2656
  if (videoBitrate !== null) {
@@ -2624,29 +2670,29 @@ var videoBitrateOption = {
2624
2670
  };
2625
2671
 
2626
2672
  // src/options/video-cache-size.tsx
2627
- import { jsx as jsx39, jsxs as jsxs32, Fragment as Fragment39 } from "react/jsx-runtime";
2673
+ import { jsx as jsx40, jsxs as jsxs33, Fragment as Fragment40 } from "react/jsx-runtime";
2628
2674
  var mediaCacheSizeInBytes = null;
2629
- var cliFlag44 = "media-cache-size-in-bytes";
2675
+ var cliFlag45 = "media-cache-size-in-bytes";
2630
2676
  var mediaCacheSizeInBytesOption = {
2631
2677
  name: "@remotion/media cache size",
2632
- cliFlag: cliFlag44,
2633
- description: () => /* @__PURE__ */ jsxs32(Fragment39, {
2678
+ cliFlag: cliFlag45,
2679
+ description: () => /* @__PURE__ */ jsxs33(Fragment40, {
2634
2680
  children: [
2635
2681
  "Specify the maximum size of the cache that ",
2636
- /* @__PURE__ */ jsx39("code", {
2682
+ /* @__PURE__ */ jsx40("code", {
2637
2683
  children: "<Video>"
2638
2684
  }),
2639
2685
  " and",
2640
2686
  " ",
2641
- /* @__PURE__ */ jsx39("code", {
2687
+ /* @__PURE__ */ jsx40("code", {
2642
2688
  children: "<Audio>"
2643
2689
  }),
2644
2690
  " from ",
2645
- /* @__PURE__ */ jsx39("code", {
2691
+ /* @__PURE__ */ jsx40("code", {
2646
2692
  children: "@remotion/media"
2647
2693
  }),
2648
2694
  " may use combined, in bytes. ",
2649
- /* @__PURE__ */ jsx39("br", {}),
2695
+ /* @__PURE__ */ jsx40("br", {}),
2650
2696
  "The default is half of the available system memory when the render starts."
2651
2697
  ]
2652
2698
  }),
@@ -2654,10 +2700,10 @@ var mediaCacheSizeInBytesOption = {
2654
2700
  docLink: "https://www.remotion.dev/docs/media/video#setting-the-cache-size",
2655
2701
  type: 0,
2656
2702
  getValue: ({ commandLine }) => {
2657
- if (commandLine[cliFlag44] !== undefined) {
2703
+ if (commandLine[cliFlag45] !== undefined) {
2658
2704
  return {
2659
2705
  source: "cli",
2660
- value: commandLine[cliFlag44]
2706
+ value: commandLine[cliFlag45]
2661
2707
  };
2662
2708
  }
2663
2709
  if (mediaCacheSizeInBytes !== null) {
@@ -2792,7 +2838,7 @@ var getExtensionOfFilename = (filename) => {
2792
2838
  };
2793
2839
 
2794
2840
  // src/options/video-codec.tsx
2795
- import { jsx as jsx40, Fragment as Fragment40 } from "react/jsx-runtime";
2841
+ import { jsx as jsx41, Fragment as Fragment41 } from "react/jsx-runtime";
2796
2842
  var codec;
2797
2843
  var setCodec = (newCodec) => {
2798
2844
  if (newCodec === undefined) {
@@ -2816,11 +2862,11 @@ var deriveCodecsFromFilename = (extension) => {
2816
2862
  possible: makeFileExtensionMap()[extension] ?? []
2817
2863
  };
2818
2864
  };
2819
- var cliFlag45 = "codec";
2865
+ var cliFlag46 = "codec";
2820
2866
  var videoCodecOption = {
2821
2867
  name: "Codec",
2822
- cliFlag: cliFlag45,
2823
- description: () => /* @__PURE__ */ jsx40(Fragment40, {
2868
+ cliFlag: cliFlag46,
2869
+ description: () => /* @__PURE__ */ jsx41(Fragment41, {
2824
2870
  children: "H264 works well in most cases, but sometimes it's worth going for a different codec. WebM achieves higher compression but is slower to render. WebM, GIF and ProRes support transparency."
2825
2871
  }),
2826
2872
  ssrName: "codec",
@@ -2843,7 +2889,7 @@ var videoCodecOption = {
2843
2889
  if (derivedDownloadCodecs.possible.length > 0 && derivedOutNameCodecs.possible.length > 0 && derivedDownloadCodecs.possible.join("") !== derivedOutNameCodecs.possible.join("")) {
2844
2890
  throw new TypeError(`The download name is ${downloadName} but the output name is ${outName}. The file extensions must match`);
2845
2891
  }
2846
- const cliArgument = commandLine[cliFlag45];
2892
+ const cliArgument = commandLine[cliFlag46];
2847
2893
  if (cliArgument) {
2848
2894
  if (derivedDownloadCodecs.possible.length > 0 && derivedDownloadCodecs.possible.indexOf(cliArgument) === -1) {
2849
2895
  throw new TypeError(`The download name is ${downloadName} but --codec=${cliArgument} was passed. The download name implies a codec of ${derivedDownloadCodecs.possible.join(" or ")} which does not align with the --codec flag.`);
@@ -2892,12 +2938,12 @@ var videoCodecOption = {
2892
2938
  };
2893
2939
 
2894
2940
  // src/options/webhook-custom-data.tsx
2895
- import { jsxs as jsxs33, Fragment as Fragment41 } from "react/jsx-runtime";
2896
- var cliFlag46 = "webhook-custom-data";
2941
+ import { jsxs as jsxs34, Fragment as Fragment42 } from "react/jsx-runtime";
2942
+ var cliFlag47 = "webhook-custom-data";
2897
2943
  var webhookCustomDataOption = {
2898
2944
  name: "Webhook custom data",
2899
- cliFlag: cliFlag46,
2900
- description: (type) => /* @__PURE__ */ jsxs33(Fragment41, {
2945
+ cliFlag: cliFlag47,
2946
+ description: (type) => /* @__PURE__ */ jsxs34(Fragment42, {
2901
2947
  children: [
2902
2948
  "Pass up to 1,024 bytes of a JSON-serializable object to the webhook. This data will be included in the webhook payload.",
2903
2949
  " ",
@@ -2916,7 +2962,7 @@ var webhookCustomDataOption = {
2916
2962
  };
2917
2963
 
2918
2964
  // src/options/x264-preset.tsx
2919
- import { jsx as jsx41, jsxs as jsxs34, Fragment as Fragment42 } from "react/jsx-runtime";
2965
+ import { jsx as jsx42, jsxs as jsxs35, Fragment as Fragment43 } from "react/jsx-runtime";
2920
2966
  var x264PresetOptions = [
2921
2967
  "ultrafast",
2922
2968
  "superfast",
@@ -2930,63 +2976,63 @@ var x264PresetOptions = [
2930
2976
  "placebo"
2931
2977
  ];
2932
2978
  var preset = null;
2933
- var cliFlag47 = "x264-preset";
2979
+ var cliFlag48 = "x264-preset";
2934
2980
  var DEFAULT_PRESET = "medium";
2935
2981
  var x264Option = {
2936
2982
  name: "x264 Preset",
2937
- cliFlag: cliFlag47,
2938
- description: () => /* @__PURE__ */ jsxs34(Fragment42, {
2983
+ cliFlag: cliFlag48,
2984
+ description: () => /* @__PURE__ */ jsxs35(Fragment43, {
2939
2985
  children: [
2940
2986
  "Sets a x264 preset profile. Only applies to videos rendered with",
2941
2987
  " ",
2942
- /* @__PURE__ */ jsx41("code", {
2988
+ /* @__PURE__ */ jsx42("code", {
2943
2989
  children: "h264"
2944
2990
  }),
2945
2991
  " codec.",
2946
- /* @__PURE__ */ jsx41("br", {}),
2992
+ /* @__PURE__ */ jsx42("br", {}),
2947
2993
  "Possible values: ",
2948
- /* @__PURE__ */ jsx41("code", {
2994
+ /* @__PURE__ */ jsx42("code", {
2949
2995
  children: "superfast"
2950
2996
  }),
2951
2997
  ", ",
2952
- /* @__PURE__ */ jsx41("code", {
2998
+ /* @__PURE__ */ jsx42("code", {
2953
2999
  children: "veryfast"
2954
3000
  }),
2955
3001
  ",",
2956
3002
  " ",
2957
- /* @__PURE__ */ jsx41("code", {
3003
+ /* @__PURE__ */ jsx42("code", {
2958
3004
  children: "faster"
2959
3005
  }),
2960
3006
  ", ",
2961
- /* @__PURE__ */ jsx41("code", {
3007
+ /* @__PURE__ */ jsx42("code", {
2962
3008
  children: "fast"
2963
3009
  }),
2964
3010
  ", ",
2965
- /* @__PURE__ */ jsx41("code", {
3011
+ /* @__PURE__ */ jsx42("code", {
2966
3012
  children: "medium"
2967
3013
  }),
2968
3014
  ",",
2969
3015
  " ",
2970
- /* @__PURE__ */ jsx41("code", {
3016
+ /* @__PURE__ */ jsx42("code", {
2971
3017
  children: "slow"
2972
3018
  }),
2973
3019
  ", ",
2974
- /* @__PURE__ */ jsx41("code", {
3020
+ /* @__PURE__ */ jsx42("code", {
2975
3021
  children: "slower"
2976
3022
  }),
2977
3023
  ", ",
2978
- /* @__PURE__ */ jsx41("code", {
3024
+ /* @__PURE__ */ jsx42("code", {
2979
3025
  children: "veryslow"
2980
3026
  }),
2981
3027
  ",",
2982
3028
  " ",
2983
- /* @__PURE__ */ jsx41("code", {
3029
+ /* @__PURE__ */ jsx42("code", {
2984
3030
  children: "placebo"
2985
3031
  }),
2986
3032
  ".",
2987
- /* @__PURE__ */ jsx41("br", {}),
3033
+ /* @__PURE__ */ jsx42("br", {}),
2988
3034
  "Default: ",
2989
- /* @__PURE__ */ jsx41("code", {
3035
+ /* @__PURE__ */ jsx42("code", {
2990
3036
  children: DEFAULT_PRESET
2991
3037
  })
2992
3038
  ]
@@ -2995,7 +3041,7 @@ var x264Option = {
2995
3041
  docLink: "https://www.remotion.dev/docs/renderer/render-media",
2996
3042
  type: "fast",
2997
3043
  getValue: ({ commandLine }) => {
2998
- const value3 = commandLine[cliFlag47];
3044
+ const value3 = commandLine[cliFlag48];
2999
3045
  if (typeof value3 !== "undefined") {
3000
3046
  return { value: value3, source: "cli" };
3001
3047
  }
@@ -3057,7 +3103,8 @@ var allOptions = {
3057
3103
  enableCrossSiteIsolationOption,
3058
3104
  imageSequencePatternOption,
3059
3105
  mediaCacheSizeInBytesOption,
3060
- darkModeOption
3106
+ darkModeOption,
3107
+ publicLicenseKeyOption
3061
3108
  };
3062
3109
 
3063
3110
  // src/options/options-map.ts
@@ -757,6 +757,21 @@ export declare const allOptions: {
757
757
  };
758
758
  setConfig: (value: boolean) => void;
759
759
  };
760
+ publicLicenseKeyOption: {
761
+ name: string;
762
+ cliFlag: "public-license-key";
763
+ description: () => import("react/jsx-runtime").JSX.Element;
764
+ ssrName: "publicLicenseKey";
765
+ docLink: string;
766
+ getValue: ({ commandLine }: {
767
+ commandLine: Record<string, unknown>;
768
+ }) => {
769
+ source: string;
770
+ value: string | null;
771
+ };
772
+ setConfig: (value: string | null) => void;
773
+ type: string | null;
774
+ };
760
775
  };
761
776
  export type AvailableOptions = keyof typeof allOptions;
762
777
  export type TypeOfOption<Type> = Type extends AnyRemotionOption<infer X> ? X : never;
@@ -37,6 +37,7 @@ const on_browser_download_1 = require("./on-browser-download");
37
37
  const overwrite_1 = require("./overwrite");
38
38
  const prefer_lossless_1 = require("./prefer-lossless");
39
39
  const public_dir_1 = require("./public-dir");
40
+ const public_license_key_1 = require("./public-license-key");
40
41
  const public_path_1 = require("./public-path");
41
42
  const repro_1 = require("./repro");
42
43
  const scale_1 = require("./scale");
@@ -96,4 +97,5 @@ exports.allOptions = {
96
97
  imageSequencePatternOption: image_sequence_pattern_1.imageSequencePatternOption,
97
98
  mediaCacheSizeInBytesOption: video_cache_size_1.mediaCacheSizeInBytesOption,
98
99
  darkModeOption: dark_mode_1.darkModeOption,
100
+ publicLicenseKeyOption: public_license_key_1.publicLicenseKeyOption,
99
101
  };
@@ -0,0 +1,15 @@
1
+ export declare const publicLicenseKeyOption: {
2
+ name: string;
3
+ cliFlag: "public-license-key";
4
+ description: () => import("react/jsx-runtime").JSX.Element;
5
+ ssrName: "publicLicenseKey";
6
+ docLink: string;
7
+ getValue: ({ commandLine }: {
8
+ commandLine: Record<string, unknown>;
9
+ }) => {
10
+ source: string;
11
+ value: string | null;
12
+ };
13
+ setConfig: (value: string | null) => void;
14
+ type: string | null;
15
+ };
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.publicLicenseKeyOption = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const cliFlag = 'public-license-key';
6
+ let currentPublicLicenseKey = null;
7
+ exports.publicLicenseKeyOption = {
8
+ name: 'Public License Key',
9
+ cliFlag,
10
+ description: () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["The public license key for your company license, obtained from the \"Usage\" tab on ", (0, jsx_runtime_1.jsx)("a", { href: "https://remotion.pro/dashboard", children: "remotion.pro" }), ". If you are eligible for the free license, pass \"free-license\"."] })),
11
+ ssrName: 'publicLicenseKey',
12
+ docLink: 'https://www.remotion.dev/docs/licensing',
13
+ getValue: ({ commandLine }) => {
14
+ if (commandLine[cliFlag] !== undefined) {
15
+ return {
16
+ source: 'cli',
17
+ value: commandLine[cliFlag],
18
+ };
19
+ }
20
+ if (currentPublicLicenseKey !== null) {
21
+ return {
22
+ source: 'config',
23
+ value: currentPublicLicenseKey,
24
+ };
25
+ }
26
+ return {
27
+ source: 'default',
28
+ value: null,
29
+ };
30
+ },
31
+ setConfig: (value) => {
32
+ if (value && value !== 'free-license' && !value.startsWith('rm_pub_')) {
33
+ throw new Error('Invalid public license key. It must start with "rm_pub_" or be "free-license".');
34
+ }
35
+ currentPublicLicenseKey = value;
36
+ },
37
+ type: null,
38
+ };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/renderer"
4
4
  },
5
5
  "name": "@remotion/renderer",
6
- "version": "4.0.396",
6
+ "version": "4.0.398",
7
7
  "description": "Render Remotion videos using Node.js or Bun",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
@@ -22,11 +22,11 @@
22
22
  "dependencies": {
23
23
  "execa": "5.1.1",
24
24
  "extract-zip": "2.0.1",
25
- "remotion": "4.0.396",
26
- "@remotion/streaming": "4.0.396",
25
+ "remotion": "4.0.398",
26
+ "@remotion/streaming": "4.0.398",
27
27
  "source-map": "^0.8.0-beta.0",
28
28
  "ws": "8.17.1",
29
- "@remotion/licensing": "4.0.396"
29
+ "@remotion/licensing": "4.0.398"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "react": ">=16.8.0",
@@ -39,19 +39,19 @@
39
39
  "react": "19.2.3",
40
40
  "react-dom": "19.2.3",
41
41
  "@types/ws": "8.5.10",
42
- "@remotion/example-videos": "4.0.396",
43
- "@remotion/eslint-config-internal": "4.0.396",
42
+ "@remotion/example-videos": "4.0.398",
43
+ "@remotion/eslint-config-internal": "4.0.398",
44
44
  "eslint": "9.19.0",
45
45
  "@types/node": "20.12.14"
46
46
  },
47
47
  "optionalDependencies": {
48
- "@remotion/compositor-darwin-arm64": "4.0.396",
49
- "@remotion/compositor-darwin-x64": "4.0.396",
50
- "@remotion/compositor-linux-arm64-gnu": "4.0.396",
51
- "@remotion/compositor-linux-arm64-musl": "4.0.396",
52
- "@remotion/compositor-linux-x64-gnu": "4.0.396",
53
- "@remotion/compositor-linux-x64-musl": "4.0.396",
54
- "@remotion/compositor-win32-x64-msvc": "4.0.396"
48
+ "@remotion/compositor-darwin-arm64": "4.0.398",
49
+ "@remotion/compositor-darwin-x64": "4.0.398",
50
+ "@remotion/compositor-linux-arm64-gnu": "4.0.398",
51
+ "@remotion/compositor-linux-arm64-musl": "4.0.398",
52
+ "@remotion/compositor-linux-x64-gnu": "4.0.398",
53
+ "@remotion/compositor-linux-x64-musl": "4.0.398",
54
+ "@remotion/compositor-win32-x64-msvc": "4.0.398"
55
55
  },
56
56
  "keywords": [
57
57
  "remotion",