@remotion/renderer 4.0.423 → 4.0.425

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.
Files changed (159) hide show
  1. package/dist/client.d.ts +448 -13
  2. package/dist/combine-chunks.js +3 -0
  3. package/dist/ensure-browser.d.ts +3 -0
  4. package/dist/esm/client.mjs +1262 -516
  5. package/dist/esm/index.mjs +14 -7
  6. package/dist/esm/pure.mjs +4 -2
  7. package/dist/ffmpeg-args.d.ts +1 -1
  8. package/dist/ffmpeg-args.js +1 -1
  9. package/dist/index.d.ts +45 -0
  10. package/dist/mux-video-and-audio.d.ts +2 -1
  11. package/dist/mux-video-and-audio.js +6 -1
  12. package/dist/options/api-key.d.ts +1 -0
  13. package/dist/options/api-key.js +1 -0
  14. package/dist/options/ask-ai.d.ts +1 -0
  15. package/dist/options/ask-ai.js +1 -0
  16. package/dist/options/audio-bitrate.d.ts +1 -0
  17. package/dist/options/audio-bitrate.js +1 -0
  18. package/dist/options/audio-codec.d.ts +1 -0
  19. package/dist/options/audio-codec.js +1 -0
  20. package/dist/options/beep-on-finish.d.ts +1 -0
  21. package/dist/options/beep-on-finish.js +1 -0
  22. package/dist/options/binaries-directory.d.ts +1 -0
  23. package/dist/options/binaries-directory.js +1 -0
  24. package/dist/options/browser-executable.d.ts +17 -0
  25. package/dist/options/browser-executable.js +36 -0
  26. package/dist/options/chrome-mode.d.ts +1 -0
  27. package/dist/options/chrome-mode.js +1 -0
  28. package/dist/options/color-space.d.ts +5 -4
  29. package/dist/options/color-space.js +4 -2
  30. package/dist/options/concurrency.d.ts +17 -0
  31. package/dist/options/concurrency.js +40 -0
  32. package/dist/options/crf.d.ts +1 -0
  33. package/dist/options/crf.js +1 -0
  34. package/dist/options/cross-site-isolation.d.ts +1 -0
  35. package/dist/options/cross-site-isolation.js +1 -0
  36. package/dist/options/dark-mode.d.ts +1 -0
  37. package/dist/options/dark-mode.js +1 -0
  38. package/dist/options/delete-after.d.ts +1 -0
  39. package/dist/options/delete-after.js +1 -0
  40. package/dist/options/disable-git-source.d.ts +1 -0
  41. package/dist/options/disable-git-source.js +1 -0
  42. package/dist/options/disable-web-security.d.ts +16 -0
  43. package/dist/options/disable-web-security.js +36 -0
  44. package/dist/options/disallow-parallel-encoding.d.ts +1 -0
  45. package/dist/options/disallow-parallel-encoding.js +1 -0
  46. package/dist/options/enable-lambda-insights.d.ts +1 -0
  47. package/dist/options/enable-lambda-insights.js +1 -0
  48. package/dist/options/enable-multiprocess-on-linux.d.ts +1 -0
  49. package/dist/options/enable-multiprocess-on-linux.js +1 -0
  50. package/dist/options/encoding-buffer-size.d.ts +1 -0
  51. package/dist/options/encoding-buffer-size.js +1 -0
  52. package/dist/options/encoding-max-rate.d.ts +1 -0
  53. package/dist/options/encoding-max-rate.js +1 -0
  54. package/dist/options/enforce-audio.d.ts +1 -0
  55. package/dist/options/enforce-audio.js +1 -0
  56. package/dist/options/every-nth-frame.d.ts +16 -0
  57. package/dist/options/every-nth-frame.js +42 -0
  58. package/dist/options/experimental-client-side-rendering.d.ts +1 -0
  59. package/dist/options/experimental-client-side-rendering.js +1 -0
  60. package/dist/options/folder-expiry.d.ts +1 -0
  61. package/dist/options/folder-expiry.js +1 -0
  62. package/dist/options/for-seamless-aac-concatenation.d.ts +1 -0
  63. package/dist/options/for-seamless-aac-concatenation.js +1 -0
  64. package/dist/options/force-new-studio.d.ts +1 -0
  65. package/dist/options/force-new-studio.js +1 -0
  66. package/dist/options/gl.d.ts +1 -0
  67. package/dist/options/gl.js +1 -0
  68. package/dist/options/hardware-acceleration.d.ts +1 -0
  69. package/dist/options/hardware-acceleration.js +1 -0
  70. package/dist/options/headless.d.ts +1 -0
  71. package/dist/options/headless.js +1 -0
  72. package/dist/options/ignore-certificate-errors.d.ts +16 -0
  73. package/dist/options/ignore-certificate-errors.js +36 -0
  74. package/dist/options/image-format-option.d.ts +18 -0
  75. package/dist/options/image-format-option.js +33 -0
  76. package/dist/options/image-sequence-pattern.d.ts +1 -0
  77. package/dist/options/image-sequence-pattern.js +1 -0
  78. package/dist/options/index.d.ts +307 -3
  79. package/dist/options/index.js +28 -0
  80. package/dist/options/ipv4.d.ts +1 -0
  81. package/dist/options/ipv4.js +1 -0
  82. package/dist/options/is-production.d.ts +1 -0
  83. package/dist/options/is-production.js +1 -0
  84. package/dist/options/jpeg-quality.d.ts +1 -0
  85. package/dist/options/jpeg-quality.js +1 -0
  86. package/dist/options/keyboard-shortcuts.d.ts +1 -0
  87. package/dist/options/keyboard-shortcuts.js +1 -0
  88. package/dist/options/latency-hint.d.ts +1 -0
  89. package/dist/options/latency-hint.js +1 -0
  90. package/dist/options/license-key.d.ts +1 -0
  91. package/dist/options/license-key.js +1 -0
  92. package/dist/options/log-level.d.ts +1 -0
  93. package/dist/options/log-level.js +1 -0
  94. package/dist/options/metadata.d.ts +1 -0
  95. package/dist/options/metadata.js +1 -0
  96. package/dist/options/mute.d.ts +1 -0
  97. package/dist/options/mute.js +1 -0
  98. package/dist/options/number-of-gif-loops.d.ts +1 -0
  99. package/dist/options/number-of-gif-loops.js +1 -0
  100. package/dist/options/number-of-shared-audio-tags.d.ts +1 -0
  101. package/dist/options/number-of-shared-audio-tags.js +1 -0
  102. package/dist/options/offthreadvideo-cache-size.d.ts +1 -0
  103. package/dist/options/offthreadvideo-cache-size.js +1 -0
  104. package/dist/options/offthreadvideo-threads.d.ts +1 -0
  105. package/dist/options/offthreadvideo-threads.js +1 -0
  106. package/dist/options/on-browser-download.d.ts +1 -0
  107. package/dist/options/on-browser-download.js +1 -0
  108. package/dist/options/option.d.ts +1 -0
  109. package/dist/options/options-map.d.ts +139 -9
  110. package/dist/options/override-duration.d.ts +19 -0
  111. package/dist/options/override-duration.js +46 -0
  112. package/dist/options/override-fps.d.ts +19 -0
  113. package/dist/options/override-fps.js +40 -0
  114. package/dist/options/override-height.d.ts +19 -0
  115. package/dist/options/override-height.js +40 -0
  116. package/dist/options/override-width.d.ts +19 -0
  117. package/dist/options/override-width.js +40 -0
  118. package/dist/options/overwrite.d.ts +1 -0
  119. package/dist/options/overwrite.js +1 -0
  120. package/dist/options/pixel-format.d.ts +16 -0
  121. package/dist/options/pixel-format.js +41 -0
  122. package/dist/options/prefer-lossless.d.ts +1 -0
  123. package/dist/options/prefer-lossless.js +1 -0
  124. package/dist/options/prores-profile.d.ts +20 -0
  125. package/dist/options/prores-profile.js +48 -0
  126. package/dist/options/public-dir.d.ts +1 -0
  127. package/dist/options/public-dir.js +1 -0
  128. package/dist/options/public-license-key.d.ts +1 -0
  129. package/dist/options/public-license-key.js +1 -0
  130. package/dist/options/public-path.d.ts +1 -0
  131. package/dist/options/public-path.js +1 -0
  132. package/dist/options/repro.d.ts +1 -0
  133. package/dist/options/repro.js +1 -0
  134. package/dist/options/scale.d.ts +1 -0
  135. package/dist/options/scale.js +1 -0
  136. package/dist/options/separate-audio.d.ts +1 -0
  137. package/dist/options/separate-audio.js +1 -0
  138. package/dist/options/still-image-format.d.ts +19 -0
  139. package/dist/options/still-image-format.js +55 -0
  140. package/dist/options/throw-if-site-exists.d.ts +1 -0
  141. package/dist/options/throw-if-site-exists.js +1 -0
  142. package/dist/options/timeout.d.ts +1 -0
  143. package/dist/options/timeout.js +1 -0
  144. package/dist/options/user-agent.d.ts +19 -0
  145. package/dist/options/user-agent.js +36 -0
  146. package/dist/options/video-bitrate.d.ts +1 -0
  147. package/dist/options/video-bitrate.js +1 -0
  148. package/dist/options/video-cache-size.d.ts +1 -0
  149. package/dist/options/video-cache-size.js +1 -0
  150. package/dist/options/video-codec.d.ts +1 -0
  151. package/dist/options/video-codec.js +1 -0
  152. package/dist/options/video-image-format.d.ts +19 -0
  153. package/dist/options/video-image-format.js +55 -0
  154. package/dist/options/webhook-custom-data.d.ts +1 -0
  155. package/dist/options/webhook-custom-data.js +1 -0
  156. package/dist/options/x264-preset.d.ts +1 -0
  157. package/dist/options/x264-preset.js +1 -0
  158. package/dist/validate-number-of-gif-loops.js +1 -1
  159. package/package.json +15 -15
@@ -1,5 +1,5 @@
1
1
  // src/client.ts
2
- import { NoReactInternals as NoReactInternals2 } from "remotion/no-react";
2
+ import { NoReactInternals as NoReactInternals3 } from "remotion/no-react";
3
3
 
4
4
  // src/browser/TimeoutSettings.ts
5
5
  var DEFAULT_TIMEOUT = 30000;
@@ -320,7 +320,8 @@ var apiKeyOption = {
320
320
  },
321
321
  setConfig: (value) => {
322
322
  currentApiKey = value;
323
- }
323
+ },
324
+ id: cliFlag
324
325
  };
325
326
 
326
327
  // src/options/ask-ai.tsx
@@ -351,7 +352,8 @@ var askAIOption = {
351
352
  },
352
353
  setConfig(value) {
353
354
  askAIEnabled = value;
354
- }
355
+ },
356
+ id: cliFlag2
355
357
  };
356
358
 
357
359
  // src/options/audio-bitrate.tsx
@@ -406,7 +408,8 @@ var audioBitrateOption = {
406
408
  },
407
409
  setConfig: (value) => {
408
410
  audioBitrate = value;
409
- }
411
+ },
412
+ id: cliFlag3
410
413
  };
411
414
 
412
415
  // src/options/separate-audio.tsx
@@ -433,7 +436,8 @@ var separateAudioOption = {
433
436
  throw new Error("Not implemented");
434
437
  },
435
438
  ssrName: "separateAudioTo",
436
- type: "string"
439
+ type: "string",
440
+ id: cliFlag4
437
441
  };
438
442
 
439
443
  // src/options/audio-codec.tsx
@@ -595,7 +599,8 @@ var audioCodecOption = {
595
599
  docLink: "https://www.remotion.dev/docs/encoding/#audio-codec",
596
600
  name: "Audio Codec",
597
601
  ssrName,
598
- type: "aac"
602
+ type: "aac",
603
+ id: cliFlag5
599
604
  };
600
605
 
601
606
  // src/options/beep-on-finish.tsx
@@ -631,7 +636,8 @@ var beepOnFinishOption = {
631
636
  },
632
637
  setConfig(value) {
633
638
  beepOnFinish = value;
634
- }
639
+ },
640
+ id: cliFlag6
635
641
  };
636
642
 
637
643
  // src/options/binaries-directory.tsx
@@ -689,23 +695,61 @@ var binariesDirectoryOption = {
689
695
  },
690
696
  setConfig: (value) => {
691
697
  currentDirectory = value;
692
- }
698
+ },
699
+ id: cliFlag7
700
+ };
701
+
702
+ // src/options/browser-executable.tsx
703
+ import { jsx as jsx6, Fragment as Fragment6 } from "react/jsx-runtime";
704
+ var currentBrowserExecutablePath = null;
705
+ var cliFlag8 = "browser-executable";
706
+ var browserExecutableOption = {
707
+ name: "Browser executable",
708
+ cliFlag: cliFlag8,
709
+ description: () => /* @__PURE__ */ jsx6(Fragment6, {
710
+ children: "Set a custom Chrome or Chromium executable path. By default Remotion will try to find an existing version of Chrome on your system and if not found, it will download one. This flag is useful if you don't have Chrome installed in a standard location and you want to prevent downloading an additional browser or need support for the H264 codec."
711
+ }),
712
+ ssrName: "browserExecutable",
713
+ docLink: "https://www.remotion.dev/docs/config#setbrowserexecutable",
714
+ type: null,
715
+ getValue: ({ commandLine }) => {
716
+ if (commandLine[cliFlag8] !== undefined) {
717
+ return {
718
+ source: "cli",
719
+ value: commandLine[cliFlag8]
720
+ };
721
+ }
722
+ if (currentBrowserExecutablePath !== null) {
723
+ return {
724
+ source: "config",
725
+ value: currentBrowserExecutablePath
726
+ };
727
+ }
728
+ return {
729
+ source: "default",
730
+ value: null
731
+ };
732
+ },
733
+ setConfig: (value) => {
734
+ currentBrowserExecutablePath = value;
735
+ },
736
+ id: cliFlag8
693
737
  };
694
738
 
695
739
  // src/options/chrome-mode.tsx
696
- import { jsx as jsx6, jsxs as jsxs4, Fragment as Fragment6 } from "react/jsx-runtime";
740
+ import { jsx as jsx7, jsxs as jsxs4, Fragment as Fragment7 } from "react/jsx-runtime";
697
741
  var validChromeModeOptions = [
698
742
  "headless-shell",
699
743
  "chrome-for-testing"
700
744
  ];
701
- var cliFlag8 = "chrome-mode";
745
+ var cliFlag9 = "chrome-mode";
702
746
  var configSelection = null;
703
747
  var chromeModeOption = {
704
- cliFlag: cliFlag8,
748
+ cliFlag: cliFlag9,
705
749
  name: "Chrome Mode",
706
750
  ssrName: "chromeMode",
707
751
  description: () => {
708
- return /* @__PURE__ */ jsxs4(Fragment6, {
752
+ return /* @__PURE__ */ jsxs4(Fragment7, {
709
753
  children: [
710
754
  "One of",
711
755
  " ",
@@ -716,7 +760,7 @@ var chromeModeOption = {
716
760
  ]
717
761
  }, option)),
718
762
  ". Default ",
719
- /* @__PURE__ */ jsx6("code", {
763
+ /* @__PURE__ */ jsx7("code", {
720
764
  children: "headless-shell"
721
765
  }),
722
766
  ".",
@@ -725,7 +769,7 @@ var chromeModeOption = {
725
769
  href: "https://remotion.dev/docs/miscellaneous/chrome-headless-shell",
726
770
  children: [
727
771
  "Use ",
728
- /* @__PURE__ */ jsx6("code", {
772
+ /* @__PURE__ */ jsx7("code", {
729
773
  children: "chrome-for-testing"
730
774
  }),
731
775
  " to take advantage of GPU drivers on Linux."
@@ -736,12 +780,12 @@ var chromeModeOption = {
736
780
  },
737
781
  docLink: "https://www.remotion.dev/chrome-for-testing",
738
782
  getValue: ({ commandLine }) => {
739
- if (commandLine[cliFlag8]) {
740
- if (!validChromeModeOptions.includes(commandLine[cliFlag8])) {
741
- throw new Error(`Invalid \`--${cliFlag8}\` value passed. Accepted values: ${validChromeModeOptions.map((l) => `'${l}'`).join(", ")}.`);
783
+ if (commandLine[cliFlag9]) {
784
+ if (!validChromeModeOptions.includes(commandLine[cliFlag9])) {
785
+ throw new Error(`Invalid \`--${cliFlag9}\` value passed. Accepted values: ${validChromeModeOptions.map((l) => `'${l}'`).join(", ")}.`);
742
786
  }
743
787
  return {
744
- value: commandLine[cliFlag8],
788
+ value: commandLine[cliFlag9],
745
789
  source: "cli"
746
790
  };
747
791
  }
@@ -759,22 +803,23 @@ var chromeModeOption = {
759
803
  setConfig: (newChromeMode) => {
760
804
  configSelection = newChromeMode;
761
805
  },
762
- type: "headless-shell"
806
+ type: "headless-shell",
807
+ id: cliFlag9
763
808
  };
764
809
 
765
810
  // src/options/color-space.tsx
766
811
  import { NoReactInternals } from "remotion/no-react";
767
- import { jsx as jsx7, jsxs as jsxs5, Fragment as Fragment7 } from "react/jsx-runtime";
768
- var validV4ColorSpaces = ["default", "bt709", "bt2020-ncl"];
812
+ import { jsx as jsx8, jsxs as jsxs5, Fragment as Fragment8 } from "react/jsx-runtime";
813
+ var validV4ColorSpaces = ["default", "bt601", "bt709", "bt2020-ncl"];
769
814
  var validV5ColorSpaces = ["bt601", "bt709", "bt2020-ncl"];
770
815
  var validColorSpaces = NoReactInternals.ENABLE_V5_BREAKING_CHANGES ? validV5ColorSpaces : validV4ColorSpaces;
771
816
  var DEFAULT_COLOR_SPACE = NoReactInternals.ENABLE_V5_BREAKING_CHANGES ? "bt709" : "default";
772
817
  var colorSpace = DEFAULT_COLOR_SPACE;
773
- var cliFlag9 = "color-space";
818
+ var cliFlag10 = "color-space";
774
819
  var colorSpaceOption = {
775
820
  name: "Color space",
776
821
  cliFlag: "color-space",
777
- description: () => /* @__PURE__ */ jsxs5(Fragment7, {
822
+ description: () => /* @__PURE__ */ jsxs5(Fragment8, {
778
823
  children: [
779
824
  "Color space to use for the video. Acceptable values:",
780
825
  " ",
@@ -794,8 +839,27 @@ var colorSpaceOption = {
794
839
  '"',
795
840
  ", "
796
841
  ]
797
- }) : /* @__PURE__ */ jsxs5(Fragment7, {
842
+ }) : /* @__PURE__ */ jsxs5(Fragment8, {
798
843
  children: [
844
+ /* @__PURE__ */ jsxs5("code", {
845
+ children: [
846
+ '"',
847
+ "bt601",
848
+ '"'
849
+ ]
850
+ }),
851
+ " ",
852
+ "(same as",
853
+ " ",
854
+ /* @__PURE__ */ jsxs5("code", {
855
+ children: [
856
+ '"',
857
+ "default",
858
+ '"'
859
+ ]
860
+ }),
861
+ ", since v4.0.424),",
862
+ " ",
799
863
  /* @__PURE__ */ jsxs5("code", {
800
864
  children: [
801
865
  '"',
@@ -827,7 +891,7 @@ var colorSpaceOption = {
827
891
  }),
828
892
  " ",
829
893
  "(since v4.0.88), .",
830
- /* @__PURE__ */ jsx7("br", {}),
894
+ /* @__PURE__ */ jsx8("br", {}),
831
895
  "For best color accuracy, it is recommended to also use",
832
896
  " ",
833
897
  /* @__PURE__ */ jsxs5("code", {
@@ -839,7 +903,7 @@ var colorSpaceOption = {
839
903
  }),
840
904
  " ",
841
905
  "as the image format to have accurate color transformations throughout.",
842
- /* @__PURE__ */ jsx7("br", {}),
906
+ /* @__PURE__ */ jsx8("br", {}),
843
907
  "Only since v4.0.83, colorspace conversion is actually performed, previously it would only tag the metadata of the video."
844
908
  ]
845
909
  }),
@@ -847,10 +911,10 @@ var colorSpaceOption = {
847
911
  ssrName: "colorSpace",
848
912
  type: DEFAULT_COLOR_SPACE,
849
913
  getValue: ({ commandLine }) => {
850
- if (commandLine[cliFlag9] !== undefined) {
914
+ if (commandLine[cliFlag10] !== undefined) {
851
915
  return {
852
916
  source: "cli",
853
- value: commandLine[cliFlag9]
917
+ value: commandLine[cliFlag10]
854
918
  };
855
919
  }
856
920
  if (colorSpace !== DEFAULT_COLOR_SPACE) {
@@ -866,33 +930,81 @@ var colorSpaceOption = {
866
930
  },
867
931
  setConfig: (value) => {
868
932
  colorSpace = value ?? DEFAULT_COLOR_SPACE;
869
- }
933
+ },
934
+ id: cliFlag10
935
+ };
936
+
937
+ // src/options/concurrency.tsx
938
+ import { jsx as jsx9, jsxs as jsxs6, Fragment as Fragment9 } from "react/jsx-runtime";
939
+ var currentConcurrency = null;
940
+ var cliFlag11 = "concurrency";
941
+ var concurrencyOption = {
942
+ name: "Concurrency",
943
+ cliFlag: cliFlag11,
944
+ description: () => /* @__PURE__ */ jsxs6(Fragment9, {
945
+ children: [
946
+ "How many CPU threads to use. Minimum 1. The maximum is the amount of threads you have (In Node.JS ",
947
+ /* @__PURE__ */ jsx9("code", {
948
+ children: "os.cpus().length"
949
+ }),
950
+ "). You can also provide a percentage value (e.g. ",
951
+ /* @__PURE__ */ jsx9("code", {
952
+ children: "50%"
953
+ }),
954
+ ")."
955
+ ]
956
+ }),
957
+ ssrName: "concurrency",
958
+ docLink: "https://www.remotion.dev/docs/config#setconcurrency",
959
+ type: null,
960
+ getValue: ({ commandLine }) => {
961
+ if (commandLine[cliFlag11] !== undefined) {
962
+ return {
963
+ source: "cli",
964
+ value: commandLine[cliFlag11]
965
+ };
966
+ }
967
+ if (currentConcurrency !== null) {
968
+ return {
969
+ source: "config",
970
+ value: currentConcurrency
971
+ };
972
+ }
973
+ return {
974
+ source: "default",
975
+ value: null
976
+ };
977
+ },
978
+ setConfig: (value) => {
979
+ currentConcurrency = value;
980
+ },
981
+ id: cliFlag11
870
982
  };
871
983
 
872
984
  // src/options/crf.tsx
873
- import { jsx as jsx8, Fragment as Fragment8 } from "react/jsx-runtime";
985
+ import { jsx as jsx10, Fragment as Fragment10 } from "react/jsx-runtime";
874
986
  var currentCrf;
875
987
  var validateCrf = (newCrf) => {
876
988
  if (typeof newCrf !== "number" && newCrf !== undefined) {
877
989
  throw new TypeError("The CRF must be a number or undefined.");
878
990
  }
879
991
  };
880
- var cliFlag10 = "crf";
992
+ var cliFlag12 = "crf";
881
993
  var crfOption = {
882
994
  name: "CRF",
883
- cliFlag: cliFlag10,
884
- description: () => /* @__PURE__ */ jsx8(Fragment8, {
995
+ cliFlag: cliFlag12,
996
+ description: () => /* @__PURE__ */ jsx10(Fragment10, {
885
997
  children: "No matter which codec you end up using, there's always a tradeoff between file size and video quality. You can control it by setting the CRF (Constant Rate Factor). The lower the number, the better the quality, the higher the number, the smaller the file is – of course at the cost of quality."
886
998
  }),
887
999
  ssrName: "crf",
888
1000
  docLink: "https://www.remotion.dev/docs/encoding/#controlling-quality-using-the-crf-setting",
889
1001
  type: 0,
890
1002
  getValue: ({ commandLine }) => {
891
- if (commandLine[cliFlag10] !== undefined) {
892
- validateCrf(commandLine[cliFlag10]);
1003
+ if (commandLine[cliFlag12] !== undefined) {
1004
+ validateCrf(commandLine[cliFlag12]);
893
1005
  return {
894
1006
  source: "cli",
895
- value: commandLine[cliFlag10]
1007
+ value: commandLine[cliFlag12]
896
1008
  };
897
1009
  }
898
1010
  if (currentCrf !== null) {
@@ -909,21 +1021,22 @@ var crfOption = {
909
1021
  setConfig: (crf) => {
910
1022
  validateCrf(crf);
911
1023
  currentCrf = crf;
912
- }
1024
+ },
1025
+ id: cliFlag12
913
1026
  };
914
1027
 
915
1028
  // src/options/cross-site-isolation.tsx
916
- import { jsx as jsx9, jsxs as jsxs6, Fragment as Fragment9 } from "react/jsx-runtime";
1029
+ import { jsx as jsx11, jsxs as jsxs7, Fragment as Fragment11 } from "react/jsx-runtime";
917
1030
  var enableCrossSiteIsolation = false;
918
- var cliFlag11 = "cross-site-isolation";
1031
+ var cliFlag13 = "cross-site-isolation";
919
1032
  var enableCrossSiteIsolationOption = {
920
1033
  name: "Enable Cross-Site Isolation",
921
- cliFlag: cliFlag11,
922
- description: () => /* @__PURE__ */ jsxs6(Fragment9, {
1034
+ cliFlag: cliFlag13,
1035
+ description: () => /* @__PURE__ */ jsxs7(Fragment11, {
923
1036
  children: [
924
1037
  "Enable Cross-Site Isolation in the Studio (sets Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy HTTP headers, required for",
925
1038
  " ",
926
- /* @__PURE__ */ jsx9("code", {
1039
+ /* @__PURE__ */ jsx11("code", {
927
1040
  children: "@remotion/whisper-web"
928
1041
  }),
929
1042
  ")."
@@ -933,9 +1046,9 @@ var enableCrossSiteIsolationOption = {
933
1046
  docLink: "https://www.remotion.dev/docs/config#setenablecrosssiteisolation",
934
1047
  type: false,
935
1048
  getValue: ({ commandLine }) => {
936
- if (commandLine[cliFlag11] !== undefined) {
1049
+ if (commandLine[cliFlag13] !== undefined) {
937
1050
  return {
938
- value: commandLine[cliFlag11],
1051
+ value: commandLine[cliFlag13],
939
1052
  source: "cli"
940
1053
  };
941
1054
  }
@@ -946,22 +1059,23 @@ var enableCrossSiteIsolationOption = {
946
1059
  },
947
1060
  setConfig(value) {
948
1061
  enableCrossSiteIsolation = value;
949
- }
1062
+ },
1063
+ id: cliFlag13
950
1064
  };
951
1065
 
952
1066
  // src/options/dark-mode.tsx
953
- import { jsx as jsx10, jsxs as jsxs7, Fragment as Fragment10 } from "react/jsx-runtime";
1067
+ import { jsx as jsx12, jsxs as jsxs8, Fragment as Fragment12 } from "react/jsx-runtime";
954
1068
  var DEFAULT_VALUE = false;
955
1069
  var darkMode = DEFAULT_VALUE;
956
- var cliFlag12 = "dark-mode";
1070
+ var cliFlag14 = "dark-mode";
957
1071
  var darkModeOption = {
958
1072
  name: "Dark Mode",
959
- cliFlag: cliFlag12,
960
- description: () => /* @__PURE__ */ jsxs7(Fragment10, {
1073
+ cliFlag: cliFlag14,
1074
+ description: () => /* @__PURE__ */ jsxs8(Fragment12, {
961
1075
  children: [
962
1076
  "Whether Chromium should pretend to be in dark mode by emulating the media feature 'prefers-color-scheme: dark'. Default is",
963
1077
  " ",
964
- /* @__PURE__ */ jsx10("code", {
1078
+ /* @__PURE__ */ jsx12("code", {
965
1079
  children: String(DEFAULT_VALUE)
966
1080
  }),
967
1081
  "."
@@ -971,10 +1085,10 @@ var darkModeOption = {
971
1085
  docLink: "https://www.remotion.dev/docs/chromium-flags#--dark-mode",
972
1086
  type: false,
973
1087
  getValue: ({ commandLine }) => {
974
- if (commandLine[cliFlag12] !== undefined) {
1088
+ if (commandLine[cliFlag14] !== undefined) {
975
1089
  return {
976
1090
  source: "cli",
977
- value: commandLine[cliFlag12]
1091
+ value: commandLine[cliFlag14]
978
1092
  };
979
1093
  }
980
1094
  if (darkMode !== DEFAULT_VALUE) {
@@ -990,41 +1104,42 @@ var darkModeOption = {
990
1104
  },
991
1105
  setConfig: (value) => {
992
1106
  darkMode = value;
993
- }
1107
+ },
1108
+ id: cliFlag14
994
1109
  };
995
1110
 
996
1111
  // src/options/delete-after.tsx
997
- import { jsx as jsx11, jsxs as jsxs8, Fragment as Fragment11 } from "react/jsx-runtime";
998
- var cliFlag13 = "delete-after";
1112
+ import { jsx as jsx13, jsxs as jsxs9, Fragment as Fragment13 } from "react/jsx-runtime";
1113
+ var cliFlag15 = "delete-after";
999
1114
  var deleteAfter = null;
1000
1115
  var deleteAfterOption = {
1001
1116
  name: "Lambda render expiration",
1002
- cliFlag: cliFlag13,
1117
+ cliFlag: cliFlag15,
1003
1118
  description: () => {
1004
- return /* @__PURE__ */ jsxs8(Fragment11, {
1119
+ return /* @__PURE__ */ jsxs9(Fragment13, {
1005
1120
  children: [
1006
1121
  "Automatically delete the render after a certain period. Accepted values are ",
1007
- /* @__PURE__ */ jsx11("code", {
1122
+ /* @__PURE__ */ jsx13("code", {
1008
1123
  children: "1-day"
1009
1124
  }),
1010
1125
  ", ",
1011
- /* @__PURE__ */ jsx11("code", {
1126
+ /* @__PURE__ */ jsx13("code", {
1012
1127
  children: "3-days"
1013
1128
  }),
1014
1129
  ", ",
1015
- /* @__PURE__ */ jsx11("code", {
1130
+ /* @__PURE__ */ jsx13("code", {
1016
1131
  children: "7-days"
1017
1132
  }),
1018
1133
  " and",
1019
1134
  " ",
1020
- /* @__PURE__ */ jsx11("code", {
1135
+ /* @__PURE__ */ jsx13("code", {
1021
1136
  children: "30-days"
1022
1137
  }),
1023
1138
  ".",
1024
- /* @__PURE__ */ jsx11("br", {}),
1139
+ /* @__PURE__ */ jsx13("br", {}),
1025
1140
  " For this to work, your bucket needs to have",
1026
1141
  " ",
1027
- /* @__PURE__ */ jsx11("a", {
1142
+ /* @__PURE__ */ jsx13("a", {
1028
1143
  href: "/docs/lambda/autodelete",
1029
1144
  children: "lifecycles enabled"
1030
1145
  }),
@@ -1036,10 +1151,10 @@ var deleteAfterOption = {
1036
1151
  docLink: "https://www.remotion.dev/docs/lambda/autodelete",
1037
1152
  type: "1-day",
1038
1153
  getValue: ({ commandLine }) => {
1039
- if (commandLine[cliFlag13] !== undefined) {
1154
+ if (commandLine[cliFlag15] !== undefined) {
1040
1155
  return {
1041
1156
  source: "cli",
1042
- value: commandLine[cliFlag13]
1157
+ value: commandLine[cliFlag15]
1043
1158
  };
1044
1159
  }
1045
1160
  if (deleteAfter !== null) {
@@ -1055,21 +1170,22 @@ var deleteAfterOption = {
1055
1170
  },
1056
1171
  setConfig: (value) => {
1057
1172
  deleteAfter = value;
1058
- }
1173
+ },
1174
+ id: cliFlag15
1059
1175
  };
1060
1176
 
1061
1177
  // src/options/disable-git-source.tsx
1062
1178
  var DEFAULT2 = false;
1063
- var cliFlag14 = "disable-git-source";
1179
+ var cliFlag16 = "disable-git-source";
1064
1180
  var disableGitSourceOption = {
1065
- cliFlag: cliFlag14,
1181
+ cliFlag: cliFlag16,
1066
1182
  description: () => `Disables the Git Source being connected to the Remotion Studio. Clicking on stack traces and certain menu items will be disabled.`,
1067
1183
  docLink: "https://remotion.dev/docs/bundle",
1068
1184
  getValue: ({ commandLine }) => {
1069
- if (commandLine[cliFlag14]) {
1185
+ if (commandLine[cliFlag16]) {
1070
1186
  return {
1071
1187
  source: "cli",
1072
- value: commandLine[cliFlag14]
1188
+ value: commandLine[cliFlag16]
1073
1189
  };
1074
1190
  }
1075
1191
  return {
@@ -1082,26 +1198,64 @@ var disableGitSourceOption = {
1082
1198
  throw new Error("Not implemented");
1083
1199
  },
1084
1200
  ssrName: "disableGitSource",
1085
- type: false
1201
+ type: false,
1202
+ id: cliFlag16
1203
+ };
1204
+
1205
+ // src/options/disable-web-security.tsx
1206
+ import { jsx as jsx14, Fragment as Fragment14 } from "react/jsx-runtime";
1207
+ var disableWebSecurity = false;
1208
+ var cliFlag17 = "disable-web-security";
1209
+ var disableWebSecurityOption = {
1210
+ name: "Disable web security",
1211
+ cliFlag: cliFlag17,
1212
+ description: () => /* @__PURE__ */ jsx14(Fragment14, {
1213
+ children: "This will most notably disable CORS in Chrome among other security features."
1214
+ }),
1215
+ ssrName: "disableWebSecurity",
1216
+ docLink: "https://www.remotion.dev/docs/chromium-flags#--disable-web-security",
1217
+ type: false,
1218
+ getValue: ({ commandLine }) => {
1219
+ if (commandLine[cliFlag17] !== undefined) {
1220
+ return {
1221
+ source: "cli",
1222
+ value: Boolean(commandLine[cliFlag17])
1223
+ };
1224
+ }
1225
+ if (disableWebSecurity) {
1226
+ return {
1227
+ source: "config",
1228
+ value: disableWebSecurity
1229
+ };
1230
+ }
1231
+ return {
1232
+ source: "default",
1233
+ value: false
1234
+ };
1235
+ },
1236
+ setConfig: (value) => {
1237
+ disableWebSecurity = value;
1238
+ },
1239
+ id: cliFlag17
1086
1240
  };
1087
1241
 
1088
1242
  // src/options/disallow-parallel-encoding.tsx
1089
- import { jsx as jsx12, Fragment as Fragment12 } from "react/jsx-runtime";
1243
+ import { jsx as jsx15, Fragment as Fragment15 } from "react/jsx-runtime";
1090
1244
  var disallowParallelEncoding = false;
1091
- var cliFlag15 = "disallow-parallel-encoding";
1245
+ var cliFlag18 = "disallow-parallel-encoding";
1092
1246
  var disallowParallelEncodingOption = {
1093
1247
  name: "Disallow parallel encoding",
1094
- cliFlag: cliFlag15,
1095
- description: () => /* @__PURE__ */ jsx12(Fragment12, {
1248
+ cliFlag: cliFlag18,
1249
+ description: () => /* @__PURE__ */ jsx15(Fragment15, {
1096
1250
  children: "Disallows the renderer from doing rendering frames and encoding at the same time. This makes the rendering process more memory-efficient, but possibly slower."
1097
1251
  }),
1098
1252
  ssrName: "disallowParallelEncoding",
1099
1253
  docLink: "https://www.remotion.dev/docs/config#setdisallowparallelencoding",
1100
1254
  type: false,
1101
1255
  getValue: ({ commandLine }) => {
1102
- if (commandLine[cliFlag15] !== undefined) {
1256
+ if (commandLine[cliFlag18] !== undefined) {
1103
1257
  return {
1104
- value: commandLine[cliFlag15],
1258
+ value: commandLine[cliFlag18],
1105
1259
  source: "cli"
1106
1260
  };
1107
1261
  }
@@ -1118,21 +1272,22 @@ var disallowParallelEncodingOption = {
1118
1272
  },
1119
1273
  setConfig(value) {
1120
1274
  disallowParallelEncoding = value;
1121
- }
1275
+ },
1276
+ id: cliFlag18
1122
1277
  };
1123
1278
 
1124
1279
  // src/options/enable-lambda-insights.tsx
1125
- import { jsx as jsx13, jsxs as jsxs9, Fragment as Fragment13 } from "react/jsx-runtime";
1126
- var cliFlag16 = "enable-lambda-insights";
1280
+ import { jsx as jsx16, jsxs as jsxs10, Fragment as Fragment16 } from "react/jsx-runtime";
1281
+ var cliFlag19 = "enable-lambda-insights";
1127
1282
  var option = false;
1128
1283
  var enableLambdaInsights = {
1129
1284
  name: "Enable Lambda Insights",
1130
- cliFlag: cliFlag16,
1131
- description: () => /* @__PURE__ */ jsxs9(Fragment13, {
1285
+ cliFlag: cliFlag19,
1286
+ description: () => /* @__PURE__ */ jsxs10(Fragment16, {
1132
1287
  children: [
1133
1288
  "Enable",
1134
1289
  " ",
1135
- /* @__PURE__ */ jsx13("a", {
1290
+ /* @__PURE__ */ jsx16("a", {
1136
1291
  href: "https://remotion.dev/docs/lambda/insights",
1137
1292
  children: "Lambda Insights in AWS CloudWatch"
1138
1293
  }),
@@ -1146,9 +1301,9 @@ var enableLambdaInsights = {
1146
1301
  option = value;
1147
1302
  },
1148
1303
  getValue: ({ commandLine }) => {
1149
- if (commandLine[cliFlag16] !== undefined) {
1304
+ if (commandLine[cliFlag19] !== undefined) {
1150
1305
  return {
1151
- value: commandLine[cliFlag16],
1306
+ value: commandLine[cliFlag19],
1152
1307
  source: "cli"
1153
1308
  };
1154
1309
  }
@@ -1162,41 +1317,42 @@ var enableLambdaInsights = {
1162
1317
  value: false,
1163
1318
  source: "default"
1164
1319
  };
1165
- }
1320
+ },
1321
+ id: cliFlag19
1166
1322
  };
1167
1323
 
1168
1324
  // src/options/enable-multiprocess-on-linux.tsx
1169
- import { jsx as jsx14, jsxs as jsxs10, Fragment as Fragment14 } from "react/jsx-runtime";
1325
+ import { jsx as jsx17, jsxs as jsxs11, Fragment as Fragment17 } from "react/jsx-runtime";
1170
1326
  var DEFAULT_VALUE2 = true;
1171
1327
  var multiProcessOnLinux = DEFAULT_VALUE2;
1172
- var cliFlag17 = "enable-multiprocess-on-linux";
1328
+ var cliFlag20 = "enable-multiprocess-on-linux";
1173
1329
  var enableMultiprocessOnLinuxOption = {
1174
1330
  name: "Enable Multiprocess on Linux",
1175
- cliFlag: cliFlag17,
1176
- description: () => /* @__PURE__ */ jsxs10(Fragment14, {
1331
+ cliFlag: cliFlag20,
1332
+ description: () => /* @__PURE__ */ jsxs11(Fragment17, {
1177
1333
  children: [
1178
1334
  "Removes the ",
1179
- /* @__PURE__ */ jsx14("code", {
1335
+ /* @__PURE__ */ jsx17("code", {
1180
1336
  children: "--single-process"
1181
1337
  }),
1182
1338
  " flag that gets passed to Chromium on Linux by default. This will make the render faster because multiple processes can be used, but may cause issues with some Linux distributions or if window server libraries are missing.",
1183
- /* @__PURE__ */ jsx14("br", {}),
1339
+ /* @__PURE__ */ jsx17("br", {}),
1184
1340
  "Default: ",
1185
- /* @__PURE__ */ jsx14("code", {
1341
+ /* @__PURE__ */ jsx17("code", {
1186
1342
  children: "false"
1187
1343
  }),
1188
1344
  " until v4.0.136, then ",
1189
- /* @__PURE__ */ jsx14("code", {
1345
+ /* @__PURE__ */ jsx17("code", {
1190
1346
  children: "true"
1191
1347
  }),
1192
1348
  " from v4.0.137 on because newer Chrome versions ",
1193
1349
  "don't",
1194
1350
  " allow rendering with the ",
1195
- /* @__PURE__ */ jsx14("code", {
1351
+ /* @__PURE__ */ jsx17("code", {
1196
1352
  children: "--single-process"
1197
1353
  }),
1198
1354
  " flag. ",
1199
- /* @__PURE__ */ jsx14("br", {}),
1355
+ /* @__PURE__ */ jsx17("br", {}),
1200
1356
  "This flag will be removed in Remotion v5.0."
1201
1357
  ]
1202
1358
  }),
@@ -1204,10 +1360,10 @@ var enableMultiprocessOnLinuxOption = {
1204
1360
  docLink: "https://www.remotion.dev/docs/chromium-flags",
1205
1361
  type: false,
1206
1362
  getValue: ({ commandLine }) => {
1207
- if (commandLine[cliFlag17] !== undefined) {
1363
+ if (commandLine[cliFlag20] !== undefined) {
1208
1364
  return {
1209
1365
  source: "cli",
1210
- value: commandLine[cliFlag17]
1366
+ value: commandLine[cliFlag20]
1211
1367
  };
1212
1368
  }
1213
1369
  if (multiProcessOnLinux !== false) {
@@ -1223,23 +1379,24 @@ var enableMultiprocessOnLinuxOption = {
1223
1379
  },
1224
1380
  setConfig: (value) => {
1225
1381
  multiProcessOnLinux = value;
1226
- }
1382
+ },
1383
+ id: cliFlag20
1227
1384
  };
1228
1385
 
1229
1386
  // src/options/encoding-buffer-size.tsx
1230
- import { jsx as jsx15, jsxs as jsxs11, Fragment as Fragment15 } from "react/jsx-runtime";
1387
+ import { jsx as jsx18, jsxs as jsxs12, Fragment as Fragment18 } from "react/jsx-runtime";
1231
1388
  var encodingBufferSize = null;
1232
1389
  var setEncodingBufferSize = (bitrate) => {
1233
1390
  encodingBufferSize = bitrate;
1234
1391
  };
1235
- var cliFlag18 = "buffer-size";
1392
+ var cliFlag21 = "buffer-size";
1236
1393
  var encodingBufferSizeOption = {
1237
1394
  name: "FFmpeg -bufsize flag",
1238
- cliFlag: cliFlag18,
1239
- description: () => /* @__PURE__ */ jsxs11(Fragment15, {
1395
+ cliFlag: cliFlag21,
1396
+ description: () => /* @__PURE__ */ jsxs12(Fragment18, {
1240
1397
  children: [
1241
1398
  "The value for the ",
1242
- /* @__PURE__ */ jsx15("code", {
1399
+ /* @__PURE__ */ jsx18("code", {
1243
1400
  children: "-bufsize"
1244
1401
  }),
1245
1402
  " flag of FFmpeg. Should be used in conjunction with the encoding max rate flag."
@@ -1249,9 +1406,9 @@ var encodingBufferSizeOption = {
1249
1406
  docLink: "https://www.remotion.dev/docs/renderer/render-media#encodingbuffersize",
1250
1407
  type: "",
1251
1408
  getValue: ({ commandLine }) => {
1252
- if (commandLine[cliFlag18] !== undefined) {
1409
+ if (commandLine[cliFlag21] !== undefined) {
1253
1410
  return {
1254
- value: commandLine[cliFlag18],
1411
+ value: commandLine[cliFlag21],
1255
1412
  source: "cli"
1256
1413
  };
1257
1414
  }
@@ -1266,20 +1423,21 @@ var encodingBufferSizeOption = {
1266
1423
  source: "default"
1267
1424
  };
1268
1425
  },
1269
- setConfig: setEncodingBufferSize
1426
+ setConfig: setEncodingBufferSize,
1427
+ id: cliFlag21
1270
1428
  };
1271
1429
 
1272
1430
  // src/options/encoding-max-rate.tsx
1273
- import { jsx as jsx16, jsxs as jsxs12, Fragment as Fragment16 } from "react/jsx-runtime";
1431
+ import { jsx as jsx19, jsxs as jsxs13, Fragment as Fragment19 } from "react/jsx-runtime";
1274
1432
  var encodingMaxRate = null;
1275
- var cliFlag19 = "max-rate";
1433
+ var cliFlag22 = "max-rate";
1276
1434
  var encodingMaxRateOption = {
1277
1435
  name: "FFmpeg -maxrate flag",
1278
- cliFlag: cliFlag19,
1279
- description: () => /* @__PURE__ */ jsxs12(Fragment16, {
1436
+ cliFlag: cliFlag22,
1437
+ description: () => /* @__PURE__ */ jsxs13(Fragment19, {
1280
1438
  children: [
1281
1439
  "The value for the ",
1282
- /* @__PURE__ */ jsx16("code", {
1440
+ /* @__PURE__ */ jsx19("code", {
1283
1441
  children: "-maxrate"
1284
1442
  }),
1285
1443
  " flag of FFmpeg. Should be used in conjunction with the encoding buffer size flag."
@@ -1289,9 +1447,9 @@ var encodingMaxRateOption = {
1289
1447
  docLink: "https://www.remotion.dev/docs/renderer/render-media#encodingmaxrate",
1290
1448
  type: "",
1291
1449
  getValue: ({ commandLine }) => {
1292
- if (commandLine[cliFlag19] !== undefined) {
1450
+ if (commandLine[cliFlag22] !== undefined) {
1293
1451
  return {
1294
- value: commandLine[cliFlag19],
1452
+ value: commandLine[cliFlag22],
1295
1453
  source: "cli"
1296
1454
  };
1297
1455
  }
@@ -1308,25 +1466,26 @@ var encodingMaxRateOption = {
1308
1466
  },
1309
1467
  setConfig: (newMaxRate) => {
1310
1468
  encodingMaxRate = newMaxRate;
1311
- }
1469
+ },
1470
+ id: cliFlag22
1312
1471
  };
1313
1472
 
1314
1473
  // src/options/enforce-audio.tsx
1315
- import { jsx as jsx17, Fragment as Fragment17 } from "react/jsx-runtime";
1474
+ import { jsx as jsx20, Fragment as Fragment20 } from "react/jsx-runtime";
1316
1475
  var DEFAULT_ENFORCE_AUDIO_TRACK = false;
1317
1476
  var enforceAudioTrackState = DEFAULT_ENFORCE_AUDIO_TRACK;
1318
- var cliFlag20 = "enforce-audio-track";
1477
+ var cliFlag23 = "enforce-audio-track";
1319
1478
  var enforceAudioOption = {
1320
1479
  name: "Enforce Audio Track",
1321
- cliFlag: cliFlag20,
1322
- description: () => /* @__PURE__ */ jsx17(Fragment17, {
1480
+ cliFlag: cliFlag23,
1481
+ description: () => /* @__PURE__ */ jsx20(Fragment20, {
1323
1482
  children: "Render a silent audio track if there would be none otherwise."
1324
1483
  }),
1325
1484
  ssrName: "enforceAudioTrack",
1326
1485
  docLink: "https://www.remotion.dev/docs/config#setenforceaudiotrack-",
1327
1486
  type: false,
1328
1487
  getValue: ({ commandLine }) => {
1329
- if (commandLine[cliFlag20]) {
1488
+ if (commandLine[cliFlag23]) {
1330
1489
  return {
1331
1490
  source: "cli",
1332
1491
  value: true
@@ -1345,24 +1504,78 @@ var enforceAudioOption = {
1345
1504
  },
1346
1505
  setConfig: (value) => {
1347
1506
  enforceAudioTrackState = value;
1348
- }
1507
+ },
1508
+ id: cliFlag23
1509
+ };
1510
+
1511
+ // src/options/every-nth-frame.tsx
1512
+ import { jsx as jsx21, jsxs as jsxs14, Fragment as Fragment21 } from "react/jsx-runtime";
1513
+ var DEFAULT_EVERY_NTH_FRAME = 1;
1514
+ var everyNthFrame = DEFAULT_EVERY_NTH_FRAME;
1515
+ var cliFlag24 = "every-nth-frame";
1516
+ var everyNthFrameOption = {
1517
+ name: "Every nth frame",
1518
+ cliFlag: cliFlag24,
1519
+ description: () => /* @__PURE__ */ jsxs14(Fragment21, {
1520
+ children: [
1521
+ "This option may only be set when rendering GIFs. It determines how many frames are rendered, while the other ones get skipped in order to lower the FPS of the GIF. For example, if the ",
1522
+ /* @__PURE__ */ jsx21("code", {
1523
+ children: "fps"
1524
+ }),
1525
+ " is 30, and",
1526
+ " ",
1527
+ /* @__PURE__ */ jsx21("code", {
1528
+ children: "everyNthFrame"
1529
+ }),
1530
+ " is 2, the FPS of the GIF is ",
1531
+ /* @__PURE__ */ jsx21("code", {
1532
+ children: "15"
1533
+ }),
1534
+ "."
1535
+ ]
1536
+ }),
1537
+ ssrName: "everyNthFrame",
1538
+ docLink: "https://www.remotion.dev/docs/config#seteverynthframe",
1539
+ type: DEFAULT_EVERY_NTH_FRAME,
1540
+ getValue: ({ commandLine }) => {
1541
+ if (commandLine[cliFlag24] !== undefined) {
1542
+ return {
1543
+ source: "cli",
1544
+ value: commandLine[cliFlag24]
1545
+ };
1546
+ }
1547
+ if (everyNthFrame !== DEFAULT_EVERY_NTH_FRAME) {
1548
+ return {
1549
+ source: "config",
1550
+ value: everyNthFrame
1551
+ };
1552
+ }
1553
+ return {
1554
+ source: "default",
1555
+ value: DEFAULT_EVERY_NTH_FRAME
1556
+ };
1557
+ },
1558
+ setConfig: (value) => {
1559
+ everyNthFrame = value;
1560
+ },
1561
+ id: cliFlag24
1349
1562
  };
1350
1563
 
1351
1564
  // src/options/experimental-client-side-rendering.tsx
1352
- import { jsx as jsx18, Fragment as Fragment18 } from "react/jsx-runtime";
1565
+ import { jsx as jsx22, Fragment as Fragment22 } from "react/jsx-runtime";
1353
1566
  var experimentalClientSideRenderingEnabled = false;
1354
- var cliFlag21 = "enable-experimental-client-side-rendering";
1567
+ var cliFlag25 = "enable-experimental-client-side-rendering";
1355
1568
  var experimentalClientSideRenderingOption = {
1356
1569
  name: "Enable Experimental Client-Side Rendering",
1357
- cliFlag: cliFlag21,
1358
- description: () => /* @__PURE__ */ jsx18(Fragment18, {
1570
+ cliFlag: cliFlag25,
1571
+ description: () => /* @__PURE__ */ jsx22(Fragment22, {
1359
1572
  children: "Enable WIP client-side rendering in the Remotion Studio. See https://www.remotion.dev/docs/client-side-rendering/ for notes."
1360
1573
  }),
1361
1574
  ssrName: null,
1362
1575
  docLink: "https://www.remotion.dev/docs/client-side-rendering",
1363
1576
  type: false,
1364
1577
  getValue: ({ commandLine }) => {
1365
- if (commandLine[cliFlag21] !== undefined) {
1578
+ if (commandLine[cliFlag25] !== undefined) {
1366
1579
  experimentalClientSideRenderingEnabled = true;
1367
1580
  return {
1368
1581
  value: experimentalClientSideRenderingEnabled,
@@ -1376,26 +1589,27 @@ var experimentalClientSideRenderingOption = {
1376
1589
  },
1377
1590
  setConfig(value) {
1378
1591
  experimentalClientSideRenderingEnabled = value;
1379
- }
1592
+ },
1593
+ id: cliFlag25
1380
1594
  };
1381
1595
 
1382
1596
  // src/options/folder-expiry.tsx
1383
- import { jsx as jsx19, jsxs as jsxs13, Fragment as Fragment19 } from "react/jsx-runtime";
1597
+ import { jsx as jsx23, jsxs as jsxs15, Fragment as Fragment23 } from "react/jsx-runtime";
1384
1598
  var enableFolderExpiry = null;
1385
- var cliFlag22 = "enable-folder-expiry";
1599
+ var cliFlag26 = "enable-folder-expiry";
1386
1600
  var folderExpiryOption = {
1387
1601
  name: "Lambda render expiration",
1388
- cliFlag: cliFlag22,
1602
+ cliFlag: cliFlag26,
1389
1603
  description: () => {
1390
- return /* @__PURE__ */ jsxs13(Fragment19, {
1604
+ return /* @__PURE__ */ jsxs15(Fragment23, {
1391
1605
  children: [
1392
1606
  "When deploying sites, enable or disable S3 Lifecycle policies which allow for renders to auto-delete after a certain time. Default is",
1393
1607
  " ",
1394
- /* @__PURE__ */ jsx19("code", {
1608
+ /* @__PURE__ */ jsx23("code", {
1395
1609
  children: "null"
1396
1610
  }),
1397
1611
  ", which does not change any lifecycle policies of the S3 bucket. See: ",
1398
- /* @__PURE__ */ jsx19("a", {
1612
+ /* @__PURE__ */ jsx23("a", {
1399
1613
  href: "/docs/lambda/autodelete",
1400
1614
  children: "Lambda autodelete"
1401
1615
  }),
@@ -1407,10 +1621,10 @@ var folderExpiryOption = {
1407
1621
  docLink: "https://www.remotion.dev/docs/lambda/autodelete",
1408
1622
  type: false,
1409
1623
  getValue: ({ commandLine }) => {
1410
- if (commandLine[cliFlag22] !== undefined) {
1624
+ if (commandLine[cliFlag26] !== undefined) {
1411
1625
  return {
1412
1626
  source: "cli",
1413
- value: commandLine[cliFlag22]
1627
+ value: commandLine[cliFlag26]
1414
1628
  };
1415
1629
  }
1416
1630
  if (enableFolderExpiry !== null) {
@@ -1426,28 +1640,29 @@ var folderExpiryOption = {
1426
1640
  },
1427
1641
  setConfig: (value) => {
1428
1642
  enableFolderExpiry = value;
1429
- }
1643
+ },
1644
+ id: cliFlag26
1430
1645
  };
1431
1646
 
1432
1647
  // src/options/for-seamless-aac-concatenation.tsx
1433
- import { jsx as jsx20, jsxs as jsxs14, Fragment as Fragment20 } from "react/jsx-runtime";
1648
+ import { jsx as jsx24, jsxs as jsxs16, Fragment as Fragment24 } from "react/jsx-runtime";
1434
1649
  var DEFAULT3 = false;
1435
1650
  var forSeamlessAacConcatenation = DEFAULT3;
1436
- var cliFlag23 = "for-seamless-aac-concatenation";
1651
+ var cliFlag27 = "for-seamless-aac-concatenation";
1437
1652
  var forSeamlessAacConcatenationOption = {
1438
1653
  name: "For seamless AAC concatenation",
1439
- cliFlag: cliFlag23,
1440
- description: () => /* @__PURE__ */ jsxs14(Fragment20, {
1654
+ cliFlag: cliFlag27,
1655
+ description: () => /* @__PURE__ */ jsxs16(Fragment24, {
1441
1656
  children: [
1442
1657
  "If enabled, the audio is trimmed to the nearest AAC frame, which is required for seamless concatenation of AAC files. This is a requirement if you later want to combine multiple video snippets seamlessly.",
1443
- /* @__PURE__ */ jsx20("br", {}),
1444
- /* @__PURE__ */ jsx20("br", {}),
1658
+ /* @__PURE__ */ jsx24("br", {}),
1659
+ /* @__PURE__ */ jsx24("br", {}),
1445
1660
  " This option is used internally. There is currently no documentation yet for to concatenate the audio chunks."
1446
1661
  ]
1447
1662
  }),
1448
1663
  docLink: "https://remotion.dev/docs/renderer",
1449
1664
  getValue: ({ commandLine }) => {
1450
- if (commandLine[cliFlag23]) {
1665
+ if (commandLine[cliFlag27]) {
1451
1666
  return {
1452
1667
  source: "cli",
1453
1668
  value: true
@@ -1468,26 +1683,27 @@ var forSeamlessAacConcatenationOption = {
1468
1683
  forSeamlessAacConcatenation = value;
1469
1684
  },
1470
1685
  ssrName: "forSeamlessAacConcatenation",
1471
- type: false
1686
+ type: false,
1687
+ id: cliFlag27
1472
1688
  };
1473
1689
 
1474
1690
  // src/options/force-new-studio.tsx
1475
- import { jsx as jsx21, Fragment as Fragment21 } from "react/jsx-runtime";
1691
+ import { jsx as jsx25, Fragment as Fragment25 } from "react/jsx-runtime";
1476
1692
  var forceNewEnabled = false;
1477
- var cliFlag24 = "force-new";
1693
+ var cliFlag28 = "force-new";
1478
1694
  var forceNewStudioOption = {
1479
1695
  name: "Force New Studio",
1480
- cliFlag: cliFlag24,
1481
- description: () => /* @__PURE__ */ jsx21(Fragment21, {
1696
+ cliFlag: cliFlag28,
1697
+ description: () => /* @__PURE__ */ jsx25(Fragment25, {
1482
1698
  children: "Forces starting a new Studio instance even if one is already running on the same port for the same project."
1483
1699
  }),
1484
1700
  ssrName: null,
1485
1701
  docLink: "https://www.remotion.dev/docs/config#setforcenewstudioenabled",
1486
1702
  type: false,
1487
1703
  getValue: ({ commandLine }) => {
1488
- if (commandLine[cliFlag24] !== undefined) {
1704
+ if (commandLine[cliFlag28] !== undefined) {
1489
1705
  return {
1490
- value: commandLine[cliFlag24],
1706
+ value: commandLine[cliFlag28],
1491
1707
  source: "cli"
1492
1708
  };
1493
1709
  }
@@ -1498,11 +1714,12 @@ var forceNewStudioOption = {
1498
1714
  },
1499
1715
  setConfig(value) {
1500
1716
  forceNewEnabled = value;
1501
- }
1717
+ },
1718
+ id: cliFlag28
1502
1719
  };
1503
1720
 
1504
1721
  // src/options/gl.tsx
1505
- import { jsx as jsx22, jsxs as jsxs15, Fragment as Fragment22 } from "react/jsx-runtime";
1722
+ import { jsx as jsx26, jsxs as jsxs17, Fragment as Fragment26 } from "react/jsx-runtime";
1506
1723
  var validOpenGlRenderers = [
1507
1724
  "swangle",
1508
1725
  "angle",
@@ -1514,33 +1731,33 @@ var validOpenGlRenderers = [
1514
1731
  var DEFAULT_OPENGL_RENDERER = null;
1515
1732
  var openGlRenderer = DEFAULT_OPENGL_RENDERER;
1516
1733
  var AngleChangelog = () => {
1517
- return /* @__PURE__ */ jsxs15("details", {
1734
+ return /* @__PURE__ */ jsxs17("details", {
1518
1735
  style: { fontSize: "0.9em", marginBottom: "1em" },
1519
1736
  children: [
1520
- /* @__PURE__ */ jsx22("summary", {
1737
+ /* @__PURE__ */ jsx26("summary", {
1521
1738
  children: "Changelog"
1522
1739
  }),
1523
- /* @__PURE__ */ jsxs15("ul", {
1740
+ /* @__PURE__ */ jsxs17("ul", {
1524
1741
  children: [
1525
- /* @__PURE__ */ jsxs15("li", {
1742
+ /* @__PURE__ */ jsxs17("li", {
1526
1743
  children: [
1527
1744
  "From Remotion v2.6.7 until v3.0.7, the default for Remotion Lambda was",
1528
1745
  " ",
1529
- /* @__PURE__ */ jsx22("code", {
1746
+ /* @__PURE__ */ jsx26("code", {
1530
1747
  children: "swiftshader"
1531
1748
  }),
1532
1749
  ", but from v3.0.8 the default is",
1533
1750
  " ",
1534
- /* @__PURE__ */ jsx22("code", {
1751
+ /* @__PURE__ */ jsx26("code", {
1535
1752
  children: "swangle"
1536
1753
  }),
1537
1754
  " (Swiftshader on Angle) since Chrome 101 added support for it."
1538
1755
  ]
1539
1756
  }),
1540
- /* @__PURE__ */ jsxs15("li", {
1757
+ /* @__PURE__ */ jsxs17("li", {
1541
1758
  children: [
1542
1759
  "From Remotion v2.4.3 until v2.6.6, the default was ",
1543
- /* @__PURE__ */ jsx22("code", {
1760
+ /* @__PURE__ */ jsx26("code", {
1544
1761
  children: "angle"
1545
1762
  }),
1546
1763
  ", however it turns out to have a small memory leak that could crash long Remotion renders."
@@ -1551,65 +1768,65 @@ var AngleChangelog = () => {
1551
1768
  ]
1552
1769
  });
1553
1770
  };
1554
- var cliFlag25 = "gl";
1771
+ var cliFlag29 = "gl";
1555
1772
  var glOption = {
1556
- cliFlag: cliFlag25,
1773
+ cliFlag: cliFlag29,
1557
1774
  docLink: "https://www.remotion.dev/docs/chromium-flags#--gl",
1558
1775
  name: "OpenGL renderer",
1559
1776
  type: "angle",
1560
1777
  ssrName: "gl",
1561
1778
  description: () => {
1562
- return /* @__PURE__ */ jsxs15(Fragment22, {
1779
+ return /* @__PURE__ */ jsxs17(Fragment26, {
1563
1780
  children: [
1564
- /* @__PURE__ */ jsx22(AngleChangelog, {}),
1565
- /* @__PURE__ */ jsxs15("p", {
1781
+ /* @__PURE__ */ jsx26(AngleChangelog, {}),
1782
+ /* @__PURE__ */ jsxs17("p", {
1566
1783
  children: [
1567
1784
  "Select the OpenGL renderer backend for Chromium. ",
1568
- /* @__PURE__ */ jsx22("br", {}),
1785
+ /* @__PURE__ */ jsx26("br", {}),
1569
1786
  "Accepted values:"
1570
1787
  ]
1571
1788
  }),
1572
- /* @__PURE__ */ jsxs15("ul", {
1789
+ /* @__PURE__ */ jsxs17("ul", {
1573
1790
  children: [
1574
- /* @__PURE__ */ jsx22("li", {
1575
- children: /* @__PURE__ */ jsx22("code", {
1791
+ /* @__PURE__ */ jsx26("li", {
1792
+ children: /* @__PURE__ */ jsx26("code", {
1576
1793
  children: '"angle"'
1577
1794
  })
1578
1795
  }),
1579
- /* @__PURE__ */ jsx22("li", {
1580
- children: /* @__PURE__ */ jsx22("code", {
1796
+ /* @__PURE__ */ jsx26("li", {
1797
+ children: /* @__PURE__ */ jsx26("code", {
1581
1798
  children: '"egl"'
1582
1799
  })
1583
1800
  }),
1584
- /* @__PURE__ */ jsx22("li", {
1585
- children: /* @__PURE__ */ jsx22("code", {
1801
+ /* @__PURE__ */ jsx26("li", {
1802
+ children: /* @__PURE__ */ jsx26("code", {
1586
1803
  children: '"swiftshader"'
1587
1804
  })
1588
1805
  }),
1589
- /* @__PURE__ */ jsx22("li", {
1590
- children: /* @__PURE__ */ jsx22("code", {
1806
+ /* @__PURE__ */ jsx26("li", {
1807
+ children: /* @__PURE__ */ jsx26("code", {
1591
1808
  children: '"swangle"'
1592
1809
  })
1593
1810
  }),
1594
- /* @__PURE__ */ jsxs15("li", {
1811
+ /* @__PURE__ */ jsxs17("li", {
1595
1812
  children: [
1596
- /* @__PURE__ */ jsx22("code", {
1813
+ /* @__PURE__ */ jsx26("code", {
1597
1814
  children: '"vulkan"'
1598
1815
  }),
1599
1816
  " (",
1600
- /* @__PURE__ */ jsx22("em", {
1817
+ /* @__PURE__ */ jsx26("em", {
1601
1818
  children: "from Remotion v4.0.41"
1602
1819
  }),
1603
1820
  ")"
1604
1821
  ]
1605
1822
  }),
1606
- /* @__PURE__ */ jsxs15("li", {
1823
+ /* @__PURE__ */ jsxs17("li", {
1607
1824
  children: [
1608
- /* @__PURE__ */ jsx22("code", {
1825
+ /* @__PURE__ */ jsx26("code", {
1609
1826
  children: '"angle-egl"'
1610
1827
  }),
1611
1828
  " (",
1612
- /* @__PURE__ */ jsx22("em", {
1829
+ /* @__PURE__ */ jsx26("em", {
1613
1830
  children: "from Remotion v4.0.51"
1614
1831
  }),
1615
1832
  ")"
@@ -1617,14 +1834,14 @@ var glOption = {
1617
1834
  })
1618
1835
  ]
1619
1836
  }),
1620
- /* @__PURE__ */ jsxs15("p", {
1837
+ /* @__PURE__ */ jsxs17("p", {
1621
1838
  children: [
1622
1839
  "The default is ",
1623
- /* @__PURE__ */ jsx22("code", {
1840
+ /* @__PURE__ */ jsx26("code", {
1624
1841
  children: "null"
1625
1842
  }),
1626
1843
  ", letting Chrome decide, except on Lambda where the default is ",
1627
- /* @__PURE__ */ jsx22("code", {
1844
+ /* @__PURE__ */ jsx26("code", {
1628
1845
  children: '"swangle"'
1629
1846
  })
1630
1847
  ]
@@ -1633,10 +1850,10 @@ var glOption = {
1633
1850
  });
1634
1851
  },
1635
1852
  getValue: ({ commandLine }) => {
1636
- if (commandLine[cliFlag25]) {
1637
- validateOpenGlRenderer(commandLine[cliFlag25]);
1853
+ if (commandLine[cliFlag29]) {
1854
+ validateOpenGlRenderer(commandLine[cliFlag29]);
1638
1855
  return {
1639
- value: commandLine[cliFlag25],
1856
+ value: commandLine[cliFlag29],
1640
1857
  source: "cli"
1641
1858
  };
1642
1859
  }
@@ -1654,7 +1871,8 @@ var glOption = {
1654
1871
  setConfig: (value) => {
1655
1872
  validateOpenGlRenderer(value);
1656
1873
  openGlRenderer = value;
1657
- }
1874
+ },
1875
+ id: cliFlag29
1658
1876
  };
1659
1877
  var validateOpenGlRenderer = (option2) => {
1660
1878
  if (option2 === null) {
@@ -1672,11 +1890,11 @@ var hardwareAccelerationOptions = [
1672
1890
  "if-possible",
1673
1891
  "required"
1674
1892
  ];
1675
- var cliFlag26 = "hardware-acceleration";
1893
+ var cliFlag30 = "hardware-acceleration";
1676
1894
  var currentValue = null;
1677
1895
  var hardwareAccelerationOption = {
1678
1896
  name: "Hardware Acceleration",
1679
- cliFlag: cliFlag26,
1897
+ cliFlag: cliFlag30,
1680
1898
  description: () => `
1681
1899
  One of
1682
1900
  ${new Intl.ListFormat("en", { type: "disjunction" }).format(hardwareAccelerationOptions.map((a) => JSON.stringify(a)))}
@@ -1688,10 +1906,10 @@ var hardwareAccelerationOption = {
1688
1906
  docLink: "https://www.remotion.dev/docs/encoding",
1689
1907
  type: "disable",
1690
1908
  getValue: ({ commandLine }) => {
1691
- if (commandLine[cliFlag26] !== undefined) {
1692
- const value = commandLine[cliFlag26];
1909
+ if (commandLine[cliFlag30] !== undefined) {
1910
+ const value = commandLine[cliFlag30];
1693
1911
  if (!hardwareAccelerationOptions.includes(value)) {
1694
- throw new Error(`Invalid value for --${cliFlag26}: ${value}`);
1912
+ throw new Error(`Invalid value for --${cliFlag30}: ${value}`);
1695
1913
  }
1696
1914
  return {
1697
1915
  source: "cli",
@@ -1711,31 +1929,32 @@ var hardwareAccelerationOption = {
1711
1929
  },
1712
1930
  setConfig: (value) => {
1713
1931
  if (!hardwareAccelerationOptions.includes(value)) {
1714
- throw new Error(`Invalid value for --${cliFlag26}: ${value}`);
1932
+ throw new Error(`Invalid value for --${cliFlag30}: ${value}`);
1715
1933
  }
1716
1934
  currentValue = value;
1717
- }
1935
+ },
1936
+ id: cliFlag30
1718
1937
  };
1719
1938
 
1720
1939
  // src/options/headless.tsx
1721
- import { jsx as jsx23, jsxs as jsxs16, Fragment as Fragment23 } from "react/jsx-runtime";
1940
+ import { jsx as jsx27, jsxs as jsxs18, Fragment as Fragment27 } from "react/jsx-runtime";
1722
1941
  var DEFAULT4 = true;
1723
1942
  var headlessMode = DEFAULT4;
1724
- var cliFlag27 = "disable-headless";
1943
+ var cliFlag31 = "disable-headless";
1725
1944
  var headlessOption = {
1726
1945
  name: "Disable Headless Mode",
1727
- cliFlag: cliFlag27,
1728
- description: () => /* @__PURE__ */ jsxs16(Fragment23, {
1946
+ cliFlag: cliFlag31,
1947
+ description: () => /* @__PURE__ */ jsxs18(Fragment27, {
1729
1948
  children: [
1730
1949
  "Deprecated - will be removed in 5.0.0. With the migration to",
1731
1950
  " ",
1732
- /* @__PURE__ */ jsx23("a", {
1951
+ /* @__PURE__ */ jsx27("a", {
1733
1952
  href: "/docs/miscellaneous/chrome-headless-shell",
1734
1953
  children: "Chrome Headless Shell"
1735
1954
  }),
1736
1955
  ", this option is not functional anymore.",
1737
- /* @__PURE__ */ jsx23("br", {}),
1738
- /* @__PURE__ */ jsx23("br", {}),
1956
+ /* @__PURE__ */ jsx27("br", {}),
1957
+ /* @__PURE__ */ jsx27("br", {}),
1739
1958
  " If disabled, the render will open an actual Chrome window where you can see the render happen. The default is headless mode."
1740
1959
  ]
1741
1960
  }),
@@ -1743,10 +1962,10 @@ var headlessOption = {
1743
1962
  docLink: "https://www.remotion.dev/docs/chromium-flags#--disable-headless",
1744
1963
  type: false,
1745
1964
  getValue: ({ commandLine }) => {
1746
- if (commandLine[cliFlag27] !== undefined) {
1965
+ if (commandLine[cliFlag31] !== undefined) {
1747
1966
  return {
1748
1967
  source: "cli",
1749
- value: !commandLine[cliFlag27]
1968
+ value: !commandLine[cliFlag31]
1750
1969
  };
1751
1970
  }
1752
1971
  if (headlessMode !== DEFAULT4) {
@@ -1762,28 +1981,66 @@ var headlessOption = {
1762
1981
  },
1763
1982
  setConfig: (value) => {
1764
1983
  headlessMode = value;
1765
- }
1984
+ },
1985
+ id: cliFlag31
1766
1986
  };
1767
1987
 
1768
- // src/options/image-sequence-pattern.tsx
1769
- import { jsx as jsx24, jsxs as jsxs17, Fragment as Fragment24 } from "react/jsx-runtime";
1770
- var cliFlag28 = "image-sequence-pattern";
1771
- var currentImageSequencePattern = null;
1772
- var imageSequencePatternOption = {
1773
- name: "Image Sequence Pattern",
1774
- cliFlag: cliFlag28,
1775
- ssrName: "imageSequencePattern",
1776
- description: () => /* @__PURE__ */ jsxs17(Fragment24, {
1777
- children: [
1778
- "Pattern for naming image sequence files. Supports ",
1779
- /* @__PURE__ */ jsx24("code", {
1780
- children: "[frame]"
1781
- }),
1782
- " for the zero-padded frame number and ",
1783
- /* @__PURE__ */ jsx24("code", {
1784
- children: "[ext]"
1785
- }),
1786
- " for the file extension."
1988
+ // src/options/ignore-certificate-errors.tsx
1989
+ import { jsx as jsx28, Fragment as Fragment28 } from "react/jsx-runtime";
1990
+ var ignoreCertificateErrors = false;
1991
+ var cliFlag32 = "ignore-certificate-errors";
1992
+ var ignoreCertificateErrorsOption = {
1993
+ name: "Ignore certificate errors",
1994
+ cliFlag: cliFlag32,
1995
+ description: () => /* @__PURE__ */ jsx28(Fragment28, {
1996
+ children: "Results in invalid SSL certificates in Chrome, such as self-signed ones, being ignored."
1997
+ }),
1998
+ ssrName: "ignoreCertificateErrors",
1999
+ docLink: "https://www.remotion.dev/docs/chromium-flags#--ignore-certificate-errors",
2000
+ type: false,
2001
+ getValue: ({ commandLine }) => {
2002
+ if (commandLine[cliFlag32] !== undefined) {
2003
+ return {
2004
+ source: "cli",
2005
+ value: Boolean(commandLine[cliFlag32])
2006
+ };
2007
+ }
2008
+ if (ignoreCertificateErrors) {
2009
+ return {
2010
+ source: "config",
2011
+ value: ignoreCertificateErrors
2012
+ };
2013
+ }
2014
+ return {
2015
+ source: "default",
2016
+ value: false
2017
+ };
2018
+ },
2019
+ setConfig: (value) => {
2020
+ ignoreCertificateErrors = value;
2021
+ },
2022
+ id: cliFlag32
2023
+ };
2024
+
2025
+ // src/options/image-sequence-pattern.tsx
2026
+ import { jsx as jsx29, jsxs as jsxs19, Fragment as Fragment29 } from "react/jsx-runtime";
2027
+ var cliFlag33 = "image-sequence-pattern";
2028
+ var currentImageSequencePattern = null;
2029
+ var imageSequencePatternOption = {
2030
+ name: "Image Sequence Pattern",
2031
+ cliFlag: cliFlag33,
2032
+ ssrName: "imageSequencePattern",
2033
+ description: () => /* @__PURE__ */ jsxs19(Fragment29, {
2034
+ children: [
2035
+ "Pattern for naming image sequence files. Supports ",
2036
+ /* @__PURE__ */ jsx29("code", {
2037
+ children: "[frame]"
2038
+ }),
2039
+ " for the zero-padded frame number and ",
2040
+ /* @__PURE__ */ jsx29("code", {
2041
+ children: "[ext]"
2042
+ }),
2043
+ " for the file extension."
1787
2044
  ]
1788
2045
  }),
1789
2046
  docLink: null,
@@ -1796,32 +2053,33 @@ var imageSequencePatternOption = {
1796
2053
  };
1797
2054
  }
1798
2055
  return {
1799
- value: commandLine[cliFlag28],
2056
+ value: commandLine[cliFlag33],
1800
2057
  source: "cli"
1801
2058
  };
1802
2059
  },
1803
2060
  setConfig: (pattern) => {
1804
2061
  currentImageSequencePattern = pattern;
1805
- }
2062
+ },
2063
+ id: cliFlag33
1806
2064
  };
1807
2065
 
1808
2066
  // src/options/ipv4.tsx
1809
- import { jsx as jsx25, Fragment as Fragment25 } from "react/jsx-runtime";
2067
+ import { jsx as jsx30, Fragment as Fragment30 } from "react/jsx-runtime";
1810
2068
  var forceIPv4 = false;
1811
- var cliFlag29 = "ipv4";
2069
+ var cliFlag34 = "ipv4";
1812
2070
  var ipv4Option = {
1813
2071
  name: "IPv4",
1814
- cliFlag: cliFlag29,
1815
- description: () => /* @__PURE__ */ jsx25(Fragment25, {
2072
+ cliFlag: cliFlag34,
2073
+ description: () => /* @__PURE__ */ jsx30(Fragment30, {
1816
2074
  children: "Forces Remotion to bind to an IPv4 interface for the Studio server."
1817
2075
  }),
1818
2076
  ssrName: null,
1819
2077
  docLink: "https://www.remotion.dev/docs/cli/studio",
1820
2078
  type: false,
1821
2079
  getValue: ({ commandLine }) => {
1822
- if (commandLine[cliFlag29] !== undefined) {
2080
+ if (commandLine[cliFlag34] !== undefined) {
1823
2081
  return {
1824
- value: commandLine[cliFlag29],
2082
+ value: commandLine[cliFlag34],
1825
2083
  source: "cli"
1826
2084
  };
1827
2085
  }
@@ -1832,25 +2090,26 @@ var ipv4Option = {
1832
2090
  },
1833
2091
  setConfig(value) {
1834
2092
  forceIPv4 = value;
1835
- }
2093
+ },
2094
+ id: cliFlag34
1836
2095
  };
1837
2096
 
1838
2097
  // src/options/is-production.tsx
1839
- import { jsx as jsx26, jsxs as jsxs18, Fragment as Fragment26 } from "react/jsx-runtime";
1840
- var cliFlag30 = "is-production";
2098
+ import { jsx as jsx31, jsxs as jsxs20, Fragment as Fragment31 } from "react/jsx-runtime";
2099
+ var cliFlag35 = "is-production";
1841
2100
  var currentIsProductionKey = null;
1842
2101
  var isProductionOption = {
1843
2102
  name: "Is Production",
1844
- cliFlag: cliFlag30,
1845
- description: () => /* @__PURE__ */ jsxs18(Fragment26, {
2103
+ cliFlag: cliFlag35,
2104
+ description: () => /* @__PURE__ */ jsxs20(Fragment31, {
1846
2105
  children: [
1847
2106
  "Pass ",
1848
- /* @__PURE__ */ jsx26("code", {
2107
+ /* @__PURE__ */ jsx31("code", {
1849
2108
  children: "false"
1850
2109
  }),
1851
2110
  " if this a development render to not count it as a billable render on remotion.pro. Only can be used in conjuction with",
1852
2111
  " ",
1853
- /* @__PURE__ */ jsx26("code", {
2112
+ /* @__PURE__ */ jsx31("code", {
1854
2113
  children: "licenseKey"
1855
2114
  }),
1856
2115
  "."
@@ -1859,10 +2118,10 @@ var isProductionOption = {
1859
2118
  ssrName: "isProduction",
1860
2119
  docLink: "https://www.remotion.dev/docs/licensing",
1861
2120
  getValue: ({ commandLine }) => {
1862
- if (commandLine[cliFlag30] !== undefined) {
2121
+ if (commandLine[cliFlag35] !== undefined) {
1863
2122
  return {
1864
2123
  source: "cli",
1865
- value: commandLine[cliFlag30]
2124
+ value: commandLine[cliFlag35]
1866
2125
  };
1867
2126
  }
1868
2127
  if (currentIsProductionKey !== null) {
@@ -1879,11 +2138,12 @@ var isProductionOption = {
1879
2138
  setConfig: (value) => {
1880
2139
  currentIsProductionKey = value;
1881
2140
  },
1882
- type: false
2141
+ type: false,
2142
+ id: cliFlag35
1883
2143
  };
1884
2144
 
1885
2145
  // src/options/jpeg-quality.tsx
1886
- import { jsx as jsx27, Fragment as Fragment27 } from "react/jsx-runtime";
2146
+ import { jsx as jsx32, Fragment as Fragment32 } from "react/jsx-runtime";
1887
2147
  var defaultValue = DEFAULT_JPEG_QUALITY;
1888
2148
  var quality = defaultValue;
1889
2149
  var setJpegQuality = (q) => {
@@ -1894,11 +2154,11 @@ var setJpegQuality = (q) => {
1894
2154
  }
1895
2155
  quality = q;
1896
2156
  };
1897
- var cliFlag31 = "jpeg-quality";
2157
+ var cliFlag36 = "jpeg-quality";
1898
2158
  var jpegQualityOption = {
1899
2159
  name: "JPEG Quality",
1900
- cliFlag: cliFlag31,
1901
- description: () => /* @__PURE__ */ jsx27(Fragment27, {
2160
+ cliFlag: cliFlag36,
2161
+ description: () => /* @__PURE__ */ jsx32(Fragment32, {
1902
2162
  children: "Sets the quality of the generated JPEG images. Must be an integer between 0 and 100. Default: 80."
1903
2163
  }),
1904
2164
  ssrName: "jpegQuality",
@@ -1906,11 +2166,11 @@ var jpegQualityOption = {
1906
2166
  type: 0,
1907
2167
  setConfig: setJpegQuality,
1908
2168
  getValue: ({ commandLine }) => {
1909
- if (commandLine[cliFlag31] !== undefined) {
1910
- validateJpegQuality(commandLine[cliFlag31]);
2169
+ if (commandLine[cliFlag36] !== undefined) {
2170
+ validateJpegQuality(commandLine[cliFlag36]);
1911
2171
  return {
1912
2172
  source: "cli",
1913
- value: commandLine[cliFlag31]
2173
+ value: commandLine[cliFlag36]
1914
2174
  };
1915
2175
  }
1916
2176
  if (quality !== defaultValue) {
@@ -1923,25 +2183,26 @@ var jpegQualityOption = {
1923
2183
  source: "default",
1924
2184
  value: defaultValue
1925
2185
  };
1926
- }
2186
+ },
2187
+ id: cliFlag36
1927
2188
  };
1928
2189
 
1929
2190
  // src/options/keyboard-shortcuts.tsx
1930
- import { jsx as jsx28, Fragment as Fragment28 } from "react/jsx-runtime";
2191
+ import { jsx as jsx33, Fragment as Fragment33 } from "react/jsx-runtime";
1931
2192
  var keyboardShortcutsEnabled = true;
1932
- var cliFlag32 = "disable-keyboard-shortcuts";
2193
+ var cliFlag37 = "disable-keyboard-shortcuts";
1933
2194
  var keyboardShortcutsOption = {
1934
2195
  name: "Disable or Enable keyboard shortcuts",
1935
- cliFlag: cliFlag32,
1936
- description: () => /* @__PURE__ */ jsx28(Fragment28, {
2196
+ cliFlag: cliFlag37,
2197
+ description: () => /* @__PURE__ */ jsx33(Fragment33, {
1937
2198
  children: "Enable or disable keyboard shortcuts in the Remotion Studio."
1938
2199
  }),
1939
2200
  ssrName: null,
1940
2201
  docLink: "https://www.remotion.dev/docs/config#setkeyboardshortcutsenabled",
1941
2202
  type: false,
1942
2203
  getValue: ({ commandLine }) => {
1943
- if (commandLine[cliFlag32] !== undefined) {
1944
- keyboardShortcutsEnabled = commandLine[cliFlag32] === false;
2204
+ if (commandLine[cliFlag37] !== undefined) {
2205
+ keyboardShortcutsEnabled = commandLine[cliFlag37] === false;
1945
2206
  return {
1946
2207
  value: keyboardShortcutsEnabled,
1947
2208
  source: "cli"
@@ -1954,42 +2215,43 @@ var keyboardShortcutsOption = {
1954
2215
  },
1955
2216
  setConfig(value) {
1956
2217
  keyboardShortcutsEnabled = value;
1957
- }
2218
+ },
2219
+ id: cliFlag37
1958
2220
  };
1959
2221
 
1960
2222
  // src/options/latency-hint.tsx
1961
- import { jsx as jsx29, jsxs as jsxs19, Fragment as Fragment29 } from "react/jsx-runtime";
1962
- var cliFlag33 = "audio-latency-hint";
2223
+ import { jsx as jsx34, jsxs as jsxs21, Fragment as Fragment34 } from "react/jsx-runtime";
2224
+ var cliFlag38 = "audio-latency-hint";
1963
2225
  var value = null;
1964
2226
  var audioLatencyHintOption = {
1965
2227
  name: "Audio Latency Hint",
1966
- cliFlag: cliFlag33,
1967
- description: () => /* @__PURE__ */ jsxs19(Fragment29, {
2228
+ cliFlag: cliFlag38,
2229
+ description: () => /* @__PURE__ */ jsxs21(Fragment34, {
1968
2230
  children: [
1969
2231
  "Sets the",
1970
2232
  " ",
1971
- /* @__PURE__ */ jsx29("a", {
2233
+ /* @__PURE__ */ jsx34("a", {
1972
2234
  href: "https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/AudioContext",
1973
2235
  children: "audio latency"
1974
2236
  }),
1975
2237
  " ",
1976
2238
  "hint for the global ",
1977
- /* @__PURE__ */ jsx29("code", {
2239
+ /* @__PURE__ */ jsx34("code", {
1978
2240
  children: "AudioContext"
1979
2241
  }),
1980
2242
  " context that Remotion uses to play audio.",
1981
- /* @__PURE__ */ jsx29("br", {}),
2243
+ /* @__PURE__ */ jsx34("br", {}),
1982
2244
  "Possible values: ",
1983
- /* @__PURE__ */ jsx29("code", {
2245
+ /* @__PURE__ */ jsx34("code", {
1984
2246
  children: "interactive"
1985
2247
  }),
1986
2248
  ", ",
1987
- /* @__PURE__ */ jsx29("code", {
2249
+ /* @__PURE__ */ jsx34("code", {
1988
2250
  children: "balanced"
1989
2251
  }),
1990
2252
  ",",
1991
2253
  " ",
1992
- /* @__PURE__ */ jsx29("code", {
2254
+ /* @__PURE__ */ jsx34("code", {
1993
2255
  children: "playback"
1994
2256
  })
1995
2257
  ]
@@ -1998,7 +2260,7 @@ var audioLatencyHintOption = {
1998
2260
  docLink: "https://www.remotion.dev/docs/renderer/render-media",
1999
2261
  type: "interactive",
2000
2262
  getValue: ({ commandLine }) => {
2001
- const val = commandLine[cliFlag33];
2263
+ const val = commandLine[cliFlag38];
2002
2264
  if (typeof val !== "undefined") {
2003
2265
  return { value: val, source: "cli" };
2004
2266
  }
@@ -2009,21 +2271,22 @@ var audioLatencyHintOption = {
2009
2271
  },
2010
2272
  setConfig: (profile) => {
2011
2273
  value = profile;
2012
- }
2274
+ },
2275
+ id: cliFlag38
2013
2276
  };
2014
2277
 
2015
2278
  // src/options/license-key.tsx
2016
- import { jsx as jsx30, jsxs as jsxs20, Fragment as Fragment30 } from "react/jsx-runtime";
2279
+ import { jsx as jsx35, jsxs as jsxs22, Fragment as Fragment35 } from "react/jsx-runtime";
2017
2280
  var currentLicenseKey = null;
2018
- var cliFlag34 = "license-key";
2281
+ var cliFlag39 = "license-key";
2019
2282
  var licenseKeyOption = {
2020
2283
  name: "License key",
2021
- cliFlag: cliFlag34,
2022
- description: () => /* @__PURE__ */ jsxs20(Fragment30, {
2284
+ cliFlag: cliFlag39,
2285
+ description: () => /* @__PURE__ */ jsxs22(Fragment35, {
2023
2286
  children: [
2024
2287
  "License key for sending a usage event using",
2025
2288
  " ",
2026
- /* @__PURE__ */ jsx30("code", {
2289
+ /* @__PURE__ */ jsx35("code", {
2027
2290
  children: "@remotion/licensing"
2028
2291
  }),
2029
2292
  "."
@@ -2033,10 +2296,10 @@ var licenseKeyOption = {
2033
2296
  docLink: "https://www.remotion.dev/docs/licensing",
2034
2297
  type: null,
2035
2298
  getValue: ({ commandLine }) => {
2036
- if (commandLine[cliFlag34] !== undefined) {
2299
+ if (commandLine[cliFlag39] !== undefined) {
2037
2300
  return {
2038
2301
  source: "cli",
2039
- value: commandLine[cliFlag34]
2302
+ value: commandLine[cliFlag39]
2040
2303
  };
2041
2304
  }
2042
2305
  return {
@@ -2046,47 +2309,48 @@ var licenseKeyOption = {
2046
2309
  },
2047
2310
  setConfig: (value2) => {
2048
2311
  currentLicenseKey = value2;
2049
- }
2312
+ },
2313
+ id: cliFlag39
2050
2314
  };
2051
2315
 
2052
2316
  // src/options/log-level.tsx
2053
- import { jsx as jsx31, jsxs as jsxs21, Fragment as Fragment31 } from "react/jsx-runtime";
2317
+ import { jsx as jsx36, jsxs as jsxs23, Fragment as Fragment36 } from "react/jsx-runtime";
2054
2318
  var logLevel = "info";
2055
- var cliFlag35 = "log";
2319
+ var cliFlag40 = "log";
2056
2320
  var logLevelOption = {
2057
- cliFlag: cliFlag35,
2321
+ cliFlag: cliFlag40,
2058
2322
  name: "Log Level",
2059
2323
  ssrName: "logLevel",
2060
- description: () => /* @__PURE__ */ jsxs21(Fragment31, {
2324
+ description: () => /* @__PURE__ */ jsxs23(Fragment36, {
2061
2325
  children: [
2062
2326
  "One of ",
2063
- /* @__PURE__ */ jsx31("code", {
2327
+ /* @__PURE__ */ jsx36("code", {
2064
2328
  children: "trace"
2065
2329
  }),
2066
2330
  ", ",
2067
- /* @__PURE__ */ jsx31("code", {
2331
+ /* @__PURE__ */ jsx36("code", {
2068
2332
  children: "verbose"
2069
2333
  }),
2070
2334
  ", ",
2071
- /* @__PURE__ */ jsx31("code", {
2335
+ /* @__PURE__ */ jsx36("code", {
2072
2336
  children: "info"
2073
2337
  }),
2074
2338
  ",",
2075
2339
  " ",
2076
- /* @__PURE__ */ jsx31("code", {
2340
+ /* @__PURE__ */ jsx36("code", {
2077
2341
  children: "warn"
2078
2342
  }),
2079
2343
  ", ",
2080
- /* @__PURE__ */ jsx31("code", {
2344
+ /* @__PURE__ */ jsx36("code", {
2081
2345
  children: "error"
2082
2346
  }),
2083
2347
  ".",
2084
- /* @__PURE__ */ jsx31("br", {}),
2348
+ /* @__PURE__ */ jsx36("br", {}),
2085
2349
  " Determines how much info is being logged to the console.",
2086
- /* @__PURE__ */ jsx31("br", {}),
2087
- /* @__PURE__ */ jsx31("br", {}),
2350
+ /* @__PURE__ */ jsx36("br", {}),
2351
+ /* @__PURE__ */ jsx36("br", {}),
2088
2352
  " Default ",
2089
- /* @__PURE__ */ jsx31("code", {
2353
+ /* @__PURE__ */ jsx36("code", {
2090
2354
  children: "info"
2091
2355
  }),
2092
2356
  "."
@@ -2094,11 +2358,11 @@ var logLevelOption = {
2094
2358
  }),
2095
2359
  docLink: "https://www.remotion.dev/docs/troubleshooting/debug-failed-render",
2096
2360
  getValue: ({ commandLine }) => {
2097
- if (commandLine[cliFlag35]) {
2098
- if (!isValidLogLevel(commandLine[cliFlag35])) {
2361
+ if (commandLine[cliFlag40]) {
2362
+ if (!isValidLogLevel(commandLine[cliFlag40])) {
2099
2363
  throw new Error(`Invalid \`--log\` value passed. Accepted values: ${logLevels.map((l) => `'${l}'`).join(", ")}.`);
2100
2364
  }
2101
- return { value: commandLine[cliFlag35], source: "cli" };
2365
+ return { value: commandLine[cliFlag40], source: "cli" };
2102
2366
  }
2103
2367
  if (logLevel !== "info") {
2104
2368
  return { value: logLevel, source: "config" };
@@ -2108,23 +2372,24 @@ var logLevelOption = {
2108
2372
  setConfig: (newLogLevel) => {
2109
2373
  logLevel = newLogLevel;
2110
2374
  },
2111
- type: "error"
2375
+ type: "error",
2376
+ id: cliFlag40
2112
2377
  };
2113
2378
 
2114
2379
  // src/options/metadata.tsx
2115
- import { jsx as jsx32, jsxs as jsxs22, Fragment as Fragment32 } from "react/jsx-runtime";
2380
+ import { jsx as jsx37, jsxs as jsxs24, Fragment as Fragment37 } from "react/jsx-runtime";
2116
2381
  var metadata = {};
2117
- var cliFlag36 = "metadata";
2382
+ var cliFlag41 = "metadata";
2118
2383
  var metadataOption = {
2119
2384
  name: "Metadata",
2120
- cliFlag: cliFlag36,
2385
+ cliFlag: cliFlag41,
2121
2386
  description: (mode) => {
2122
2387
  if (mode === "ssr") {
2123
- return /* @__PURE__ */ jsxs22(Fragment32, {
2388
+ return /* @__PURE__ */ jsxs24(Fragment37, {
2124
2389
  children: [
2125
2390
  "An object containing metadata to be embedded in the video. See",
2126
2391
  " ",
2127
- /* @__PURE__ */ jsx32("a", {
2392
+ /* @__PURE__ */ jsx37("a", {
2128
2393
  href: "/docs/metadata",
2129
2394
  children: "here"
2130
2395
  }),
@@ -2132,18 +2397,18 @@ var metadataOption = {
2132
2397
  ]
2133
2398
  });
2134
2399
  }
2135
- return /* @__PURE__ */ jsxs22(Fragment32, {
2400
+ return /* @__PURE__ */ jsxs24(Fragment37, {
2136
2401
  children: [
2137
2402
  "Metadata to be embedded in the video. See",
2138
2403
  " ",
2139
- /* @__PURE__ */ jsx32("a", {
2404
+ /* @__PURE__ */ jsx37("a", {
2140
2405
  href: "/docs/metadata",
2141
2406
  children: "here"
2142
2407
  }),
2143
2408
  " for which metadata is accepted.",
2144
- /* @__PURE__ */ jsx32("br", {}),
2409
+ /* @__PURE__ */ jsx37("br", {}),
2145
2410
  "The parameter must be in the format of ",
2146
- /* @__PURE__ */ jsx32("code", {
2411
+ /* @__PURE__ */ jsx37("code", {
2147
2412
  children: "--metadata key=value"
2148
2413
  }),
2149
2414
  " ",
@@ -2154,8 +2419,8 @@ var metadataOption = {
2154
2419
  docLink: "https://www.remotion.dev/docs/metadata",
2155
2420
  type: {},
2156
2421
  getValue: ({ commandLine }) => {
2157
- if (commandLine[cliFlag36] !== undefined) {
2158
- const val = commandLine[cliFlag36];
2422
+ if (commandLine[cliFlag41] !== undefined) {
2423
+ const val = commandLine[cliFlag41];
2159
2424
  const array = typeof val === "string" ? [val] : val;
2160
2425
  const keyValues = array.map((a) => {
2161
2426
  if (!a.includes("=")) {
@@ -2181,28 +2446,29 @@ var metadataOption = {
2181
2446
  setConfig: (newMetadata) => {
2182
2447
  metadata = newMetadata;
2183
2448
  },
2184
- ssrName: "metadata"
2449
+ ssrName: "metadata",
2450
+ id: cliFlag41
2185
2451
  };
2186
2452
 
2187
2453
  // src/options/mute.tsx
2188
- import { jsx as jsx33, Fragment as Fragment33 } from "react/jsx-runtime";
2454
+ import { jsx as jsx38, Fragment as Fragment38 } from "react/jsx-runtime";
2189
2455
  var DEFAULT_MUTED_STATE = false;
2190
2456
  var mutedState = DEFAULT_MUTED_STATE;
2191
- var cliFlag37 = "muted";
2457
+ var cliFlag42 = "muted";
2192
2458
  var mutedOption = {
2193
2459
  name: "Muted",
2194
- cliFlag: cliFlag37,
2195
- description: () => /* @__PURE__ */ jsx33(Fragment33, {
2460
+ cliFlag: cliFlag42,
2461
+ description: () => /* @__PURE__ */ jsx38(Fragment38, {
2196
2462
  children: "The Audio of the video will be omitted."
2197
2463
  }),
2198
2464
  ssrName: "muted",
2199
2465
  docLink: "https://www.remotion.dev/docs/audio/muting",
2200
2466
  type: false,
2201
2467
  getValue: ({ commandLine }) => {
2202
- if (commandLine[cliFlag37] !== null) {
2468
+ if (commandLine[cliFlag42] !== null) {
2203
2469
  return {
2204
2470
  source: "cli",
2205
- value: commandLine[cliFlag37]
2471
+ value: commandLine[cliFlag42]
2206
2472
  };
2207
2473
  }
2208
2474
  if (mutedState !== DEFAULT_MUTED_STATE) {
@@ -2218,54 +2484,55 @@ var mutedOption = {
2218
2484
  },
2219
2485
  setConfig: () => {
2220
2486
  mutedState = true;
2221
- }
2487
+ },
2488
+ id: cliFlag42
2222
2489
  };
2223
2490
 
2224
2491
  // src/options/number-of-gif-loops.tsx
2225
- import { jsx as jsx34, jsxs as jsxs23, Fragment as Fragment34 } from "react/jsx-runtime";
2492
+ import { jsx as jsx39, jsxs as jsxs25, Fragment as Fragment39 } from "react/jsx-runtime";
2226
2493
  var currentLoop = null;
2227
2494
  var validate = (newLoop) => {
2228
2495
  if (newLoop !== null && typeof newLoop !== "number") {
2229
2496
  throw new Error("--number-of-gif-loops flag must be a number.");
2230
2497
  }
2231
2498
  };
2232
- var cliFlag38 = "number-of-gif-loops";
2499
+ var cliFlag43 = "number-of-gif-loops";
2233
2500
  var numberOfGifLoopsOption = {
2234
2501
  name: "Number of GIF loops",
2235
- cliFlag: cliFlag38,
2502
+ cliFlag: cliFlag43,
2236
2503
  description: () => {
2237
- return /* @__PURE__ */ jsxs23(Fragment34, {
2504
+ return /* @__PURE__ */ jsxs25(Fragment39, {
2238
2505
  children: [
2239
2506
  "Allows you to set the number of loops as follows:",
2240
- /* @__PURE__ */ jsxs23("ul", {
2507
+ /* @__PURE__ */ jsxs25("ul", {
2241
2508
  children: [
2242
- /* @__PURE__ */ jsxs23("li", {
2509
+ /* @__PURE__ */ jsxs25("li", {
2243
2510
  children: [
2244
- /* @__PURE__ */ jsx34("code", {
2511
+ /* @__PURE__ */ jsx39("code", {
2245
2512
  children: "null"
2246
2513
  }),
2247
2514
  " (or omitting in the CLI) plays the GIF indefinitely."
2248
2515
  ]
2249
2516
  }),
2250
- /* @__PURE__ */ jsxs23("li", {
2517
+ /* @__PURE__ */ jsxs25("li", {
2251
2518
  children: [
2252
- /* @__PURE__ */ jsx34("code", {
2519
+ /* @__PURE__ */ jsx39("code", {
2253
2520
  children: "0"
2254
2521
  }),
2255
2522
  " disables looping"
2256
2523
  ]
2257
2524
  }),
2258
- /* @__PURE__ */ jsxs23("li", {
2525
+ /* @__PURE__ */ jsxs25("li", {
2259
2526
  children: [
2260
- /* @__PURE__ */ jsx34("code", {
2527
+ /* @__PURE__ */ jsx39("code", {
2261
2528
  children: "1"
2262
2529
  }),
2263
2530
  " loops the GIF once (plays twice in total)"
2264
2531
  ]
2265
2532
  }),
2266
- /* @__PURE__ */ jsxs23("li", {
2533
+ /* @__PURE__ */ jsxs25("li", {
2267
2534
  children: [
2268
- /* @__PURE__ */ jsx34("code", {
2535
+ /* @__PURE__ */ jsx39("code", {
2269
2536
  children: "2"
2270
2537
  }),
2271
2538
  " loops the GIF twice (plays three times in total) and so on."
@@ -2280,10 +2547,10 @@ var numberOfGifLoopsOption = {
2280
2547
  docLink: "https://www.remotion.dev/docs/render-as-gif#changing-the-number-of-loops",
2281
2548
  type: 0,
2282
2549
  getValue: ({ commandLine }) => {
2283
- if (commandLine[cliFlag38] !== undefined) {
2284
- validate(commandLine[cliFlag38]);
2550
+ if (commandLine[cliFlag43] !== undefined) {
2551
+ validate(commandLine[cliFlag43]);
2285
2552
  return {
2286
- value: commandLine[cliFlag38],
2553
+ value: commandLine[cliFlag43],
2287
2554
  source: "cli"
2288
2555
  };
2289
2556
  }
@@ -2301,21 +2568,22 @@ var numberOfGifLoopsOption = {
2301
2568
  setConfig: (newLoop) => {
2302
2569
  validate(newLoop);
2303
2570
  currentLoop = newLoop;
2304
- }
2571
+ },
2572
+ id: cliFlag43
2305
2573
  };
2306
2574
 
2307
2575
  // src/options/number-of-shared-audio-tags.tsx
2308
- import { jsx as jsx35, jsxs as jsxs24, Fragment as Fragment35 } from "react/jsx-runtime";
2576
+ import { jsx as jsx40, jsxs as jsxs26, Fragment as Fragment40 } from "react/jsx-runtime";
2309
2577
  var numberOfSharedAudioTags = 0;
2310
- var cliFlag39 = "number-of-shared-audio-tags";
2578
+ var cliFlag44 = "number-of-shared-audio-tags";
2311
2579
  var numberOfSharedAudioTagsOption = {
2312
2580
  name: "Number of shared audio tags",
2313
- cliFlag: cliFlag39,
2314
- description: () => /* @__PURE__ */ jsxs24(Fragment35, {
2581
+ cliFlag: cliFlag44,
2582
+ description: () => /* @__PURE__ */ jsxs26(Fragment40, {
2315
2583
  children: [
2316
2584
  "Set number of shared audio tags. See",
2317
2585
  " ",
2318
- /* @__PURE__ */ jsx35("a", {
2586
+ /* @__PURE__ */ jsx40("a", {
2319
2587
  href: "https://www.remotion.dev/docs/player/autoplay#using-the-numberofsharedaudiotags-prop",
2320
2588
  children: "Using the numberOfSharedAudioTags prop"
2321
2589
  }),
@@ -2327,9 +2595,9 @@ var numberOfSharedAudioTagsOption = {
2327
2595
  docLink: "https://www.remotion.dev/docs/config#setnumberofsharedaudiotags",
2328
2596
  type: 0,
2329
2597
  getValue: ({ commandLine }) => {
2330
- if (commandLine[cliFlag39] !== undefined) {
2598
+ if (commandLine[cliFlag44] !== undefined) {
2331
2599
  return {
2332
- value: commandLine[cliFlag39],
2600
+ value: commandLine[cliFlag44],
2333
2601
  source: "cli"
2334
2602
  };
2335
2603
  }
@@ -2340,39 +2608,40 @@ var numberOfSharedAudioTagsOption = {
2340
2608
  },
2341
2609
  setConfig(value2) {
2342
2610
  numberOfSharedAudioTags = value2;
2343
- }
2611
+ },
2612
+ id: cliFlag44
2344
2613
  };
2345
2614
 
2346
2615
  // src/options/offthreadvideo-cache-size.tsx
2347
- import { jsx as jsx36, jsxs as jsxs25, Fragment as Fragment36 } from "react/jsx-runtime";
2616
+ import { jsx as jsx41, jsxs as jsxs27, Fragment as Fragment41 } from "react/jsx-runtime";
2348
2617
  var offthreadVideoCacheSizeInBytes = null;
2349
- var cliFlag40 = "offthreadvideo-cache-size-in-bytes";
2618
+ var cliFlag45 = "offthreadvideo-cache-size-in-bytes";
2350
2619
  var offthreadVideoCacheSizeInBytesOption = {
2351
2620
  name: "OffthreadVideo cache size",
2352
- cliFlag: cliFlag40,
2353
- description: () => /* @__PURE__ */ jsxs25(Fragment36, {
2621
+ cliFlag: cliFlag45,
2622
+ description: () => /* @__PURE__ */ jsxs27(Fragment41, {
2354
2623
  children: [
2355
2624
  "From v4.0, Remotion has a cache for",
2356
2625
  " ",
2357
- /* @__PURE__ */ jsx36("a", {
2626
+ /* @__PURE__ */ jsx41("a", {
2358
2627
  href: "https://remotion.dev/docs/offthreadvideo",
2359
- children: /* @__PURE__ */ jsx36("code", {
2628
+ children: /* @__PURE__ */ jsx41("code", {
2360
2629
  children: "<OffthreadVideo>"
2361
2630
  })
2362
2631
  }),
2363
2632
  " ",
2364
2633
  "frames. The default is ",
2365
- /* @__PURE__ */ jsx36("code", {
2634
+ /* @__PURE__ */ jsx41("code", {
2366
2635
  children: "null"
2367
2636
  }),
2368
2637
  ", corresponding to half of the system memory available when the render starts.",
2369
- /* @__PURE__ */ jsx36("br", {}),
2638
+ /* @__PURE__ */ jsx41("br", {}),
2370
2639
  " This option allows to override the size of the cache. The higher it is, the faster the render will be, but the more memory will be used.",
2371
- /* @__PURE__ */ jsx36("br", {}),
2640
+ /* @__PURE__ */ jsx41("br", {}),
2372
2641
  "The used value will be printed when running in verbose mode.",
2373
- /* @__PURE__ */ jsx36("br", {}),
2642
+ /* @__PURE__ */ jsx41("br", {}),
2374
2643
  "Default: ",
2375
- /* @__PURE__ */ jsx36("code", {
2644
+ /* @__PURE__ */ jsx41("code", {
2376
2645
  children: "null"
2377
2646
  })
2378
2647
  ]
@@ -2381,10 +2650,10 @@ var offthreadVideoCacheSizeInBytesOption = {
2381
2650
  docLink: "https://www.remotion.dev/docs/offthreadvideo",
2382
2651
  type: 0,
2383
2652
  getValue: ({ commandLine }) => {
2384
- if (commandLine[cliFlag40] !== undefined) {
2653
+ if (commandLine[cliFlag45] !== undefined) {
2385
2654
  return {
2386
2655
  source: "cli",
2387
- value: commandLine[cliFlag40]
2656
+ value: commandLine[cliFlag45]
2388
2657
  };
2389
2658
  }
2390
2659
  if (offthreadVideoCacheSizeInBytes !== null) {
@@ -2400,22 +2669,23 @@ var offthreadVideoCacheSizeInBytesOption = {
2400
2669
  },
2401
2670
  setConfig: (size) => {
2402
2671
  offthreadVideoCacheSizeInBytes = size ?? null;
2403
- }
2672
+ },
2673
+ id: cliFlag45
2404
2674
  };
2405
2675
 
2406
2676
  // src/options/offthreadvideo-threads.tsx
2407
- import { jsx as jsx37, jsxs as jsxs26, Fragment as Fragment37 } from "react/jsx-runtime";
2677
+ import { jsx as jsx42, jsxs as jsxs28, Fragment as Fragment42 } from "react/jsx-runtime";
2408
2678
  var value2 = null;
2409
- var cliFlag41 = "offthreadvideo-video-threads";
2679
+ var cliFlag46 = "offthreadvideo-video-threads";
2410
2680
  var offthreadVideoThreadsOption = {
2411
2681
  name: "OffthreadVideo threads",
2412
- cliFlag: cliFlag41,
2413
- description: () => /* @__PURE__ */ jsxs26(Fragment37, {
2682
+ cliFlag: cliFlag46,
2683
+ description: () => /* @__PURE__ */ jsxs28(Fragment42, {
2414
2684
  children: [
2415
2685
  "The number of threads that",
2416
- /* @__PURE__ */ jsx37("a", {
2686
+ /* @__PURE__ */ jsx42("a", {
2417
2687
  href: "https://remotion.dev/docs/offthreadvideo",
2418
- children: /* @__PURE__ */ jsx37("code", {
2688
+ children: /* @__PURE__ */ jsx42("code", {
2419
2689
  children: "<OffthreadVideo>"
2420
2690
  })
2421
2691
  }),
@@ -2430,10 +2700,10 @@ var offthreadVideoThreadsOption = {
2430
2700
  docLink: "https://www.remotion.dev/docs/offthreadvideo",
2431
2701
  type: 0,
2432
2702
  getValue: ({ commandLine }) => {
2433
- if (commandLine[cliFlag41] !== undefined) {
2703
+ if (commandLine[cliFlag46] !== undefined) {
2434
2704
  return {
2435
2705
  source: "cli",
2436
- value: commandLine[cliFlag41]
2706
+ value: commandLine[cliFlag46]
2437
2707
  };
2438
2708
  }
2439
2709
  if (value2 !== null) {
@@ -2449,21 +2719,22 @@ var offthreadVideoThreadsOption = {
2449
2719
  },
2450
2720
  setConfig: (size) => {
2451
2721
  value2 = size ?? null;
2452
- }
2722
+ },
2723
+ id: cliFlag46
2453
2724
  };
2454
2725
  var DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS = 2;
2455
2726
 
2456
2727
  // src/options/on-browser-download.tsx
2457
- import { jsx as jsx38, jsxs as jsxs27, Fragment as Fragment38 } from "react/jsx-runtime";
2458
- var cliFlag42 = "on-browser-download";
2728
+ import { jsx as jsx43, jsxs as jsxs29, Fragment as Fragment43 } from "react/jsx-runtime";
2729
+ var cliFlag47 = "on-browser-download";
2459
2730
  var onBrowserDownloadOption = {
2460
2731
  name: "Browser download callback function",
2461
- cliFlag: cliFlag42,
2462
- description: () => /* @__PURE__ */ jsxs27(Fragment38, {
2732
+ cliFlag: cliFlag47,
2733
+ description: () => /* @__PURE__ */ jsxs29(Fragment43, {
2463
2734
  children: [
2464
2735
  "Gets called when no compatible local browser is detected on the system and this API needs to download a browser. Return a callback to observe progress.",
2465
2736
  " ",
2466
- /* @__PURE__ */ jsx38("a", {
2737
+ /* @__PURE__ */ jsx43("a", {
2467
2738
  href: "/docs/renderer/ensure-browser#onbrowserdownload",
2468
2739
  children: "See here for how to use this option."
2469
2740
  })
@@ -2477,13 +2748,186 @@ var onBrowserDownloadOption = {
2477
2748
  },
2478
2749
  setConfig: () => {
2479
2750
  throw new Error("does not support config file");
2480
- }
2751
+ },
2752
+ id: cliFlag47
2753
+ };
2754
+
2755
+ // src/validate.ts
2756
+ import { NoReactInternals as NoReactInternals2 } from "remotion/no-react";
2757
+ var validateFps = NoReactInternals2.validateFps;
2758
+ var validateDimension = NoReactInternals2.validateDimension;
2759
+ var validateDurationInFrames = NoReactInternals2.validateDurationInFrames;
2760
+
2761
+ // src/options/override-duration.tsx
2762
+ import { jsx as jsx44, Fragment as Fragment44 } from "react/jsx-runtime";
2763
+ var currentDuration = null;
2764
+ var cliFlag48 = "duration";
2765
+ var overrideDurationOption = {
2766
+ name: "Override Duration",
2767
+ cliFlag: cliFlag48,
2768
+ description: () => /* @__PURE__ */ jsx44(Fragment44, {
2769
+ children: "Overrides the duration in frames of the composition."
2770
+ }),
2771
+ ssrName: null,
2772
+ docLink: "https://www.remotion.dev/docs/config#overrideduration",
2773
+ type: null,
2774
+ getValue: ({ commandLine }) => {
2775
+ if (commandLine[cliFlag48] !== undefined) {
2776
+ const value3 = commandLine[cliFlag48];
2777
+ validateDurationInFrames(value3, {
2778
+ component: "in --duration flag",
2779
+ allowFloats: false
2780
+ });
2781
+ return {
2782
+ source: "cli",
2783
+ value: value3
2784
+ };
2785
+ }
2786
+ if (currentDuration !== null) {
2787
+ return {
2788
+ source: "config",
2789
+ value: currentDuration
2790
+ };
2791
+ }
2792
+ return {
2793
+ source: "default",
2794
+ value: null
2795
+ };
2796
+ },
2797
+ setConfig: (duration) => {
2798
+ validateDurationInFrames(duration, {
2799
+ component: "in Config.overrideDuration()",
2800
+ allowFloats: false
2801
+ });
2802
+ currentDuration = duration;
2803
+ },
2804
+ id: cliFlag48
2805
+ };
2806
+
2807
+ // src/options/override-fps.tsx
2808
+ import { jsx as jsx45, Fragment as Fragment45 } from "react/jsx-runtime";
2809
+ var currentFps = null;
2810
+ var cliFlag49 = "fps";
2811
+ var overrideFpsOption = {
2812
+ name: "Override FPS",
2813
+ cliFlag: cliFlag49,
2814
+ description: () => /* @__PURE__ */ jsx45(Fragment45, {
2815
+ children: "Overrides the frames per second of the composition."
2816
+ }),
2817
+ ssrName: null,
2818
+ docLink: "https://www.remotion.dev/docs/config#overridefps",
2819
+ type: null,
2820
+ getValue: ({ commandLine }) => {
2821
+ if (commandLine[cliFlag49] !== undefined) {
2822
+ const value3 = commandLine[cliFlag49];
2823
+ validateFps(value3, "in --fps flag", false);
2824
+ return {
2825
+ source: "cli",
2826
+ value: value3
2827
+ };
2828
+ }
2829
+ if (currentFps !== null) {
2830
+ return {
2831
+ source: "config",
2832
+ value: currentFps
2833
+ };
2834
+ }
2835
+ return {
2836
+ source: "default",
2837
+ value: null
2838
+ };
2839
+ },
2840
+ setConfig: (fps) => {
2841
+ validateFps(fps, "in Config.overrideFps()", false);
2842
+ currentFps = fps;
2843
+ },
2844
+ id: cliFlag49
2845
+ };
2846
+
2847
+ // src/options/override-height.tsx
2848
+ import { jsx as jsx46, Fragment as Fragment46 } from "react/jsx-runtime";
2849
+ var currentHeight = null;
2850
+ var cliFlag50 = "height";
2851
+ var overrideHeightOption = {
2852
+ name: "Override Height",
2853
+ cliFlag: cliFlag50,
2854
+ description: () => /* @__PURE__ */ jsx46(Fragment46, {
2855
+ children: "Overrides the height of the composition."
2856
+ }),
2857
+ ssrName: null,
2858
+ docLink: "https://www.remotion.dev/docs/config#overrideheight",
2859
+ type: null,
2860
+ getValue: ({ commandLine }) => {
2861
+ if (commandLine[cliFlag50] !== undefined) {
2862
+ const value3 = commandLine[cliFlag50];
2863
+ validateDimension(value3, "height", "in --height flag");
2864
+ return {
2865
+ source: "cli",
2866
+ value: value3
2867
+ };
2868
+ }
2869
+ if (currentHeight !== null) {
2870
+ return {
2871
+ source: "config",
2872
+ value: currentHeight
2873
+ };
2874
+ }
2875
+ return {
2876
+ source: "default",
2877
+ value: null
2878
+ };
2879
+ },
2880
+ setConfig: (height) => {
2881
+ validateDimension(height, "height", "in Config.overrideHeight()");
2882
+ currentHeight = height;
2883
+ },
2884
+ id: cliFlag50
2885
+ };
2886
+
2887
+ // src/options/override-width.tsx
2888
+ import { jsx as jsx47, Fragment as Fragment47 } from "react/jsx-runtime";
2889
+ var currentWidth = null;
2890
+ var cliFlag51 = "width";
2891
+ var overrideWidthOption = {
2892
+ name: "Override Width",
2893
+ cliFlag: cliFlag51,
2894
+ description: () => /* @__PURE__ */ jsx47(Fragment47, {
2895
+ children: "Overrides the width of the composition."
2896
+ }),
2897
+ ssrName: null,
2898
+ docLink: "https://www.remotion.dev/docs/config#overridewidth",
2899
+ type: null,
2900
+ getValue: ({ commandLine }) => {
2901
+ if (commandLine[cliFlag51] !== undefined) {
2902
+ const value3 = commandLine[cliFlag51];
2903
+ validateDimension(value3, "width", "in --width flag");
2904
+ return {
2905
+ source: "cli",
2906
+ value: value3
2907
+ };
2908
+ }
2909
+ if (currentWidth !== null) {
2910
+ return {
2911
+ source: "config",
2912
+ value: currentWidth
2913
+ };
2914
+ }
2915
+ return {
2916
+ source: "default",
2917
+ value: null
2918
+ };
2919
+ },
2920
+ setConfig: (width) => {
2921
+ validateDimension(width, "width", "in Config.overrideWidth()");
2922
+ currentWidth = width;
2923
+ },
2924
+ id: cliFlag51
2481
2925
  };
2482
2926
 
2483
2927
  // src/options/overwrite.tsx
2484
- import { jsx as jsx39, jsxs as jsxs28, Fragment as Fragment39 } from "react/jsx-runtime";
2928
+ import { jsx as jsx48, jsxs as jsxs30, Fragment as Fragment48 } from "react/jsx-runtime";
2485
2929
  var shouldOverwrite = null;
2486
- var cliFlag43 = "overwrite";
2930
+ var cliFlag52 = "overwrite";
2487
2931
  var validate2 = (value3) => {
2488
2932
  if (typeof value3 !== "boolean") {
2489
2933
  throw new Error(`overwriteExisting must be a boolean but got ${typeof value3} (${value3})`);
@@ -2491,15 +2935,15 @@ var validate2 = (value3) => {
2491
2935
  };
2492
2936
  var overwriteOption = {
2493
2937
  name: "Overwrite output",
2494
- cliFlag: cliFlag43,
2495
- description: () => /* @__PURE__ */ jsxs28(Fragment39, {
2938
+ cliFlag: cliFlag52,
2939
+ description: () => /* @__PURE__ */ jsxs30(Fragment48, {
2496
2940
  children: [
2497
2941
  "If set to ",
2498
- /* @__PURE__ */ jsx39("code", {
2942
+ /* @__PURE__ */ jsx48("code", {
2499
2943
  children: "false"
2500
2944
  }),
2501
2945
  ", will prevent rendering to a path that already exists. Default is ",
2502
- /* @__PURE__ */ jsx39("code", {
2946
+ /* @__PURE__ */ jsx48("code", {
2503
2947
  children: "true"
2504
2948
  }),
2505
2949
  "."
@@ -2509,11 +2953,11 @@ var overwriteOption = {
2509
2953
  docLink: "https://www.remotion.dev/docs/config#setoverwriteoutput",
2510
2954
  type: false,
2511
2955
  getValue: ({ commandLine }, defaultValue2) => {
2512
- if (commandLine[cliFlag43] !== undefined) {
2513
- validate2(commandLine[cliFlag43]);
2956
+ if (commandLine[cliFlag52] !== undefined) {
2957
+ validate2(commandLine[cliFlag52]);
2514
2958
  return {
2515
2959
  source: "cli",
2516
- value: commandLine[cliFlag43]
2960
+ value: commandLine[cliFlag52]
2517
2961
  };
2518
2962
  }
2519
2963
  if (shouldOverwrite !== null) {
@@ -2530,25 +2974,95 @@ var overwriteOption = {
2530
2974
  setConfig: (value3) => {
2531
2975
  validate2(value3);
2532
2976
  shouldOverwrite = value3;
2977
+ },
2978
+ id: cliFlag52
2979
+ };
2980
+
2981
+ // src/pixel-format.ts
2982
+ var validPixelFormats = [
2983
+ "yuv420p",
2984
+ "yuva420p",
2985
+ "yuv422p",
2986
+ "yuv444p",
2987
+ "yuv420p10le",
2988
+ "yuv422p10le",
2989
+ "yuv444p10le",
2990
+ "yuva444p10le"
2991
+ ];
2992
+ var DEFAULT_PIXEL_FORMAT = "yuv420p";
2993
+ var validPixelFormatsForCodec = (codec) => {
2994
+ if (codec === "vp8" || codec === "vp9") {
2995
+ return validPixelFormats;
2533
2996
  }
2997
+ return validPixelFormats.filter((format) => format !== "yuva420p");
2998
+ };
2999
+
3000
+ // src/options/pixel-format.tsx
3001
+ import { jsx as jsx49, jsxs as jsxs31, Fragment as Fragment49 } from "react/jsx-runtime";
3002
+ var currentPixelFormat = DEFAULT_PIXEL_FORMAT;
3003
+ var cliFlag53 = "pixel-format";
3004
+ var pixelFormatOption = {
3005
+ name: "Pixel format",
3006
+ cliFlag: cliFlag53,
3007
+ description: () => /* @__PURE__ */ jsxs31(Fragment49, {
3008
+ children: [
3009
+ "Sets the pixel format in FFmpeg. See",
3010
+ " ",
3011
+ /* @__PURE__ */ jsx49("a", {
3012
+ href: "https://trac.ffmpeg.org/wiki/Chroma%20Subsampling",
3013
+ children: "the FFmpeg docs for an explanation"
3014
+ }),
3015
+ ". Acceptable values: ",
3016
+ validPixelFormats.map((f) => `"${f}"`).join(", "),
3017
+ "."
3018
+ ]
3019
+ }),
3020
+ ssrName: "pixelFormat",
3021
+ docLink: "https://www.remotion.dev/docs/config#setpixelformat",
3022
+ type: DEFAULT_PIXEL_FORMAT,
3023
+ getValue: ({ commandLine }) => {
3024
+ if (commandLine[cliFlag53] !== undefined) {
3025
+ return {
3026
+ source: "cli",
3027
+ value: commandLine[cliFlag53]
3028
+ };
3029
+ }
3030
+ if (currentPixelFormat !== DEFAULT_PIXEL_FORMAT) {
3031
+ return {
3032
+ source: "config",
3033
+ value: currentPixelFormat
3034
+ };
3035
+ }
3036
+ return {
3037
+ source: "default",
3038
+ value: DEFAULT_PIXEL_FORMAT
3039
+ };
3040
+ },
3041
+ setConfig: (value3) => {
3042
+ if (!validPixelFormats.includes(value3)) {
3043
+ throw new TypeError(`Value ${value3} is not valid as a pixel format.`);
3044
+ }
3045
+ currentPixelFormat = value3;
3046
+ },
3047
+ id: cliFlag53
2534
3048
  };
2535
3049
 
2536
3050
  // src/options/prefer-lossless.tsx
2537
- import { jsx as jsx40, jsxs as jsxs29, Fragment as Fragment40 } from "react/jsx-runtime";
2538
- var cliFlag44 = "prefer-lossless";
3051
+ import { jsx as jsx50, jsxs as jsxs32, Fragment as Fragment50 } from "react/jsx-runtime";
3052
+ var cliFlag54 = "prefer-lossless";
2539
3053
  var input = false;
2540
3054
  var preferLosslessAudioOption = {
2541
3055
  name: "Prefer lossless",
2542
- cliFlag: cliFlag44,
2543
- description: () => /* @__PURE__ */ jsxs29(Fragment40, {
3056
+ cliFlag: cliFlag54,
3057
+ description: () => /* @__PURE__ */ jsxs32(Fragment50, {
2544
3058
  children: [
2545
3059
  "Uses a lossless audio codec, if one is available for the codec. If you set",
2546
- /* @__PURE__ */ jsx40("code", {
3060
+ /* @__PURE__ */ jsx50("code", {
2547
3061
  children: "audioCodec"
2548
3062
  }),
2549
3063
  ", it takes priority over",
2550
3064
  " ",
2551
- /* @__PURE__ */ jsx40("code", {
3065
+ /* @__PURE__ */ jsx50("code", {
2552
3066
  children: "preferLossless"
2553
3067
  }),
2554
3068
  "."
@@ -2558,7 +3072,7 @@ var preferLosslessAudioOption = {
2558
3072
  type: false,
2559
3073
  ssrName: "preferLossless",
2560
3074
  getValue: ({ commandLine }) => {
2561
- if (commandLine[cliFlag44]) {
3075
+ if (commandLine[cliFlag54]) {
2562
3076
  return { value: true, source: "cli" };
2563
3077
  }
2564
3078
  if (input === true) {
@@ -2568,24 +3082,90 @@ var preferLosslessAudioOption = {
2568
3082
  },
2569
3083
  setConfig: (val) => {
2570
3084
  input = val;
2571
- }
3085
+ },
3086
+ id: cliFlag54
3087
+ };
3088
+
3089
+ // src/options/prores-profile.tsx
3090
+ import { jsx as jsx51, jsxs as jsxs33, Fragment as Fragment51 } from "react/jsx-runtime";
3091
+ var validProResProfiles = [
3092
+ "4444-xq",
3093
+ "4444",
3094
+ "hq",
3095
+ "standard",
3096
+ "light",
3097
+ "proxy"
3098
+ ];
3099
+ var proResProfile;
3100
+ var cliFlag55 = "prores-profile";
3101
+ var proResProfileOption = {
3102
+ name: "ProRes profile",
3103
+ cliFlag: cliFlag55,
3104
+ description: () => /* @__PURE__ */ jsxs33(Fragment51, {
3105
+ children: [
3106
+ "Set the ProRes profile. This option is only valid if the codec has been set to ",
3107
+ /* @__PURE__ */ jsx51("code", {
3108
+ children: "prores"
3109
+ }),
3110
+ ". Possible values:",
3111
+ " ",
3112
+ validProResProfiles.map((p) => `"${p}"`).join(", "),
3113
+ ". Default:",
3114
+ " ",
3115
+ /* @__PURE__ */ jsx51("code", {
3116
+ children: '"hq"'
3117
+ }),
3118
+ ". See",
3119
+ " ",
3120
+ /* @__PURE__ */ jsx51("a", {
3121
+ href: "https://video.stackexchange.com/a/14715",
3122
+ children: "here"
3123
+ }),
3124
+ " for an explanation of possible values."
3125
+ ]
3126
+ }),
3127
+ ssrName: "proResProfile",
3128
+ docLink: "https://www.remotion.dev/docs/config#setproresprofile",
3129
+ type: undefined,
3130
+ getValue: ({ commandLine }) => {
3131
+ if (commandLine[cliFlag55] !== undefined) {
3132
+ return {
3133
+ source: "cli",
3134
+ value: String(commandLine[cliFlag55])
3135
+ };
3136
+ }
3137
+ if (proResProfile !== undefined) {
3138
+ return {
3139
+ source: "config",
3140
+ value: proResProfile
3141
+ };
3142
+ }
3143
+ return {
3144
+ source: "default",
3145
+ value: undefined
3146
+ };
3147
+ },
3148
+ setConfig: (value3) => {
3149
+ proResProfile = value3;
3150
+ },
3151
+ id: cliFlag55
2572
3152
  };
2573
3153
 
2574
3154
  // src/options/public-dir.tsx
2575
- import { jsx as jsx41, jsxs as jsxs30, Fragment as Fragment41 } from "react/jsx-runtime";
2576
- var cliFlag45 = "public-dir";
3155
+ import { jsx as jsx52, jsxs as jsxs34, Fragment as Fragment52 } from "react/jsx-runtime";
3156
+ var cliFlag56 = "public-dir";
2577
3157
  var currentPublicDir = null;
2578
3158
  var publicDirOption = {
2579
3159
  name: "Public Directory",
2580
- cliFlag: cliFlag45,
3160
+ cliFlag: cliFlag56,
2581
3161
  description: () => {
2582
- return /* @__PURE__ */ jsxs30(Fragment41, {
3162
+ return /* @__PURE__ */ jsxs34(Fragment52, {
2583
3163
  children: [
2584
3164
  "Define the location of the",
2585
3165
  " ",
2586
- /* @__PURE__ */ jsx41("a", {
3166
+ /* @__PURE__ */ jsx52("a", {
2587
3167
  href: "/docs/terminology/public-dir",
2588
- children: /* @__PURE__ */ jsx41("code", {
3168
+ children: /* @__PURE__ */ jsx52("code", {
2589
3169
  children: "public/ directory"
2590
3170
  })
2591
3171
  }),
@@ -2596,10 +3176,10 @@ var publicDirOption = {
2596
3176
  ssrName: "publicDir",
2597
3177
  docLink: "https://www.remotion.dev/docs/terminology/public-dir",
2598
3178
  getValue: ({ commandLine }) => {
2599
- if (commandLine[cliFlag45] !== undefined) {
3179
+ if (commandLine[cliFlag56] !== undefined) {
2600
3180
  return {
2601
3181
  source: "cli",
2602
- value: commandLine[cliFlag45]
3182
+ value: commandLine[cliFlag56]
2603
3183
  };
2604
3184
  }
2605
3185
  if (currentPublicDir !== null) {
@@ -2616,20 +3196,21 @@ var publicDirOption = {
2616
3196
  setConfig: (value3) => {
2617
3197
  currentPublicDir = value3;
2618
3198
  },
2619
- type: ""
3199
+ type: "",
3200
+ id: cliFlag56
2620
3201
  };
2621
3202
 
2622
3203
  // src/options/public-license-key.tsx
2623
- import { jsx as jsx42, jsxs as jsxs31, Fragment as Fragment42 } from "react/jsx-runtime";
2624
- var cliFlag46 = "public-license-key";
3204
+ import { jsx as jsx53, jsxs as jsxs35, Fragment as Fragment53 } from "react/jsx-runtime";
3205
+ var cliFlag57 = "public-license-key";
2625
3206
  var currentPublicLicenseKey = null;
2626
3207
  var publicLicenseKeyOption = {
2627
3208
  name: "Public License Key",
2628
- cliFlag: cliFlag46,
2629
- description: () => /* @__PURE__ */ jsxs31(Fragment42, {
3209
+ cliFlag: cliFlag57,
3210
+ description: () => /* @__PURE__ */ jsxs35(Fragment53, {
2630
3211
  children: [
2631
3212
  'The public license key for your company license, obtained from the "Usage" tab on ',
2632
- /* @__PURE__ */ jsx42("a", {
3213
+ /* @__PURE__ */ jsx53("a", {
2633
3214
  href: "https://remotion.pro/dashboard",
2634
3215
  children: "remotion.pro"
2635
3216
  }),
@@ -2639,10 +3220,10 @@ var publicLicenseKeyOption = {
2639
3220
  ssrName: "publicLicenseKey",
2640
3221
  docLink: "https://www.remotion.dev/docs/licensing",
2641
3222
  getValue: ({ commandLine }) => {
2642
- if (commandLine[cliFlag46] !== undefined) {
3223
+ if (commandLine[cliFlag57] !== undefined) {
2643
3224
  return {
2644
3225
  source: "cli",
2645
- value: commandLine[cliFlag46]
3226
+ value: commandLine[cliFlag57]
2646
3227
  };
2647
3228
  }
2648
3229
  if (currentPublicLicenseKey !== null) {
@@ -2662,29 +3243,30 @@ var publicLicenseKeyOption = {
2662
3243
  }
2663
3244
  currentPublicLicenseKey = value3;
2664
3245
  },
2665
- type: null
3246
+ type: null,
3247
+ id: cliFlag57
2666
3248
  };
2667
3249
 
2668
3250
  // src/options/public-path.tsx
2669
- import { jsx as jsx43, jsxs as jsxs32, Fragment as Fragment43 } from "react/jsx-runtime";
2670
- var cliFlag47 = "public-path";
3251
+ import { jsx as jsx54, jsxs as jsxs36, Fragment as Fragment54 } from "react/jsx-runtime";
3252
+ var cliFlag58 = "public-path";
2671
3253
  var currentPublicPath = null;
2672
3254
  var publicPathOption = {
2673
3255
  name: "Public Path",
2674
- cliFlag: cliFlag47,
3256
+ cliFlag: cliFlag58,
2675
3257
  description: () => {
2676
- return /* @__PURE__ */ jsxs32(Fragment43, {
3258
+ return /* @__PURE__ */ jsxs36(Fragment54, {
2677
3259
  children: [
2678
3260
  "The path of the URL where the bundle is going to be hosted. By default it is ",
2679
- /* @__PURE__ */ jsx43("code", {
3261
+ /* @__PURE__ */ jsx54("code", {
2680
3262
  children: "/"
2681
3263
  }),
2682
3264
  ", meaning that the bundle is going to be hosted at the root of the domain (e.g. ",
2683
- /* @__PURE__ */ jsx43("code", {
3265
+ /* @__PURE__ */ jsx54("code", {
2684
3266
  children: "https://localhost:3000/"
2685
3267
  }),
2686
3268
  "). If you are deploying to a subdirectory (e.g. ",
2687
- /* @__PURE__ */ jsx43("code", {
3269
+ /* @__PURE__ */ jsx54("code", {
2688
3270
  children: "/sites/my-site/"
2689
3271
  }),
2690
3272
  "), you should set this to the subdirectory."
@@ -2694,10 +3276,10 @@ var publicPathOption = {
2694
3276
  ssrName: "publicPath",
2695
3277
  docLink: "https://www.remotion.dev/docs/renderer",
2696
3278
  getValue: ({ commandLine }) => {
2697
- if (commandLine[cliFlag47] !== undefined) {
3279
+ if (commandLine[cliFlag58] !== undefined) {
2698
3280
  return {
2699
3281
  source: "cli",
2700
- value: commandLine[cliFlag47]
3282
+ value: commandLine[cliFlag58]
2701
3283
  };
2702
3284
  }
2703
3285
  if (currentPublicPath !== null) {
@@ -2714,29 +3296,30 @@ var publicPathOption = {
2714
3296
  setConfig: (value3) => {
2715
3297
  currentPublicPath = value3;
2716
3298
  },
2717
- type: ""
3299
+ type: "",
3300
+ id: cliFlag58
2718
3301
  };
2719
3302
 
2720
3303
  // src/options/repro.tsx
2721
- import { jsx as jsx44, Fragment as Fragment44 } from "react/jsx-runtime";
3304
+ import { jsx as jsx55, Fragment as Fragment55 } from "react/jsx-runtime";
2722
3305
  var enableRepro = false;
2723
3306
  var setRepro = (should) => {
2724
3307
  enableRepro = should;
2725
3308
  };
2726
- var cliFlag48 = "repro";
3309
+ var cliFlag59 = "repro";
2727
3310
  var reproOption = {
2728
3311
  name: "Create reproduction",
2729
- cliFlag: cliFlag48,
2730
- description: () => /* @__PURE__ */ jsx44(Fragment44, {
3312
+ cliFlag: cliFlag59,
3313
+ description: () => /* @__PURE__ */ jsx55(Fragment55, {
2731
3314
  children: "Create a ZIP that you can submit to Remotion if asked for a reproduction."
2732
3315
  }),
2733
3316
  ssrName: "repro",
2734
3317
  docLink: "https://www.remotion.dev/docs/render-media#repro",
2735
3318
  type: false,
2736
3319
  getValue: ({ commandLine }) => {
2737
- if (commandLine[cliFlag48] !== undefined) {
3320
+ if (commandLine[cliFlag59] !== undefined) {
2738
3321
  return {
2739
- value: commandLine[cliFlag48],
3322
+ value: commandLine[cliFlag59],
2740
3323
  source: "cli"
2741
3324
  };
2742
3325
  }
@@ -2751,13 +3334,14 @@ var reproOption = {
2751
3334
  source: "default"
2752
3335
  };
2753
3336
  },
2754
- setConfig: setRepro
3337
+ setConfig: setRepro,
3338
+ id: cliFlag59
2755
3339
  };
2756
3340
 
2757
3341
  // src/options/scale.tsx
2758
- import { jsx as jsx45, jsxs as jsxs33, Fragment as Fragment45 } from "react/jsx-runtime";
3342
+ import { jsx as jsx56, jsxs as jsxs37, Fragment as Fragment56 } from "react/jsx-runtime";
2759
3343
  var currentScale = 1;
2760
- var cliFlag49 = "scale";
3344
+ var cliFlag60 = "scale";
2761
3345
  var validateScale = (value3) => {
2762
3346
  if (typeof value3 !== "number") {
2763
3347
  throw new Error("scale must be a number.");
@@ -2765,15 +3349,15 @@ var validateScale = (value3) => {
2765
3349
  };
2766
3350
  var scaleOption = {
2767
3351
  name: "Scale",
2768
- cliFlag: cliFlag49,
2769
- description: () => /* @__PURE__ */ jsxs33(Fragment45, {
3352
+ cliFlag: cliFlag60,
3353
+ description: () => /* @__PURE__ */ jsxs37(Fragment56, {
2770
3354
  children: [
2771
3355
  "Scales the output dimensions by a factor. For example, a 1280x720px frame will become a 1920x1080px frame with a scale factor of ",
2772
- /* @__PURE__ */ jsx45("code", {
3356
+ /* @__PURE__ */ jsx56("code", {
2773
3357
  children: "1.5"
2774
3358
  }),
2775
3359
  ". See ",
2776
- /* @__PURE__ */ jsx45("a", {
3360
+ /* @__PURE__ */ jsx56("a", {
2777
3361
  href: "https://www.remotion.dev/docs/scaling",
2778
3362
  children: "Scaling"
2779
3363
  }),
@@ -2784,11 +3368,11 @@ var scaleOption = {
2784
3368
  docLink: "https://www.remotion.dev/docs/scaling",
2785
3369
  type: 0,
2786
3370
  getValue: ({ commandLine }) => {
2787
- if (commandLine[cliFlag49] !== undefined) {
2788
- validateScale(commandLine[cliFlag49]);
3371
+ if (commandLine[cliFlag60] !== undefined) {
3372
+ validateScale(commandLine[cliFlag60]);
2789
3373
  return {
2790
3374
  source: "cli",
2791
- value: commandLine[cliFlag49]
3375
+ value: commandLine[cliFlag60]
2792
3376
  };
2793
3377
  }
2794
3378
  if (currentScale !== null) {
@@ -2804,21 +3388,83 @@ var scaleOption = {
2804
3388
  },
2805
3389
  setConfig: (scale) => {
2806
3390
  currentScale = scale;
2807
- }
3391
+ },
3392
+ id: cliFlag60
3393
+ };
3394
+
3395
+ // src/options/still-image-format.tsx
3396
+ import { jsx as jsx57, jsxs as jsxs38, Fragment as Fragment57 } from "react/jsx-runtime";
3397
+ var currentStillImageFormat = null;
3398
+ var cliFlag61 = "image-format";
3399
+ var stillImageFormatOption = {
3400
+ name: "Still Image Format",
3401
+ cliFlag: cliFlag61,
3402
+ description: () => /* @__PURE__ */ jsxs38(Fragment57, {
3403
+ children: [
3404
+ "The image format to use when rendering a still. Must be one of",
3405
+ " ",
3406
+ validStillImageFormats.map((f) => `"${f}"`).join(", "),
3407
+ ". Default:",
3408
+ " ",
3409
+ /* @__PURE__ */ jsx57("code", {
3410
+ children: '"png"'
3411
+ }),
3412
+ "."
3413
+ ]
3414
+ }),
3415
+ ssrName: "imageFormat",
3416
+ docLink: "https://www.remotion.dev/docs/renderer/render-still#imageformat",
3417
+ type: null,
3418
+ getValue: ({ commandLine }) => {
3419
+ if (commandLine[cliFlag61] !== undefined) {
3420
+ const value3 = commandLine[cliFlag61];
3421
+ if (!validStillImageFormats.includes(value3)) {
3422
+ throw new Error(`Invalid still image format: ${value3}. Must be one of: ${validStillImageFormats.join(", ")}`);
3423
+ }
3424
+ return {
3425
+ source: "cli",
3426
+ value: value3
3427
+ };
3428
+ }
3429
+ if (currentStillImageFormat !== null) {
3430
+ return {
3431
+ source: "config",
3432
+ value: currentStillImageFormat
3433
+ };
3434
+ }
3435
+ return {
3436
+ source: "default",
3437
+ value: null
3438
+ };
3439
+ },
3440
+ setConfig: (value3) => {
3441
+ if (value3 === null) {
3442
+ currentStillImageFormat = null;
3443
+ return;
3444
+ }
3445
+ if (!validStillImageFormats.includes(value3)) {
3446
+ throw new TypeError([
3447
+ `Value ${value3} is not valid as a still image format.`,
3448
+ value3 === "jpg" ? 'Did you mean "jpeg"?' : null
3449
+ ].filter(Boolean).join(" "));
3450
+ }
3451
+ currentStillImageFormat = value3;
3452
+ },
3453
+ id: "still-image-format"
2808
3454
  };
2809
3455
 
2810
3456
  // src/options/throw-if-site-exists.tsx
2811
3457
  var DEFAULT5 = false;
2812
- var cliFlag50 = "throw-if-site-exists";
3458
+ var cliFlag62 = "throw-if-site-exists";
2813
3459
  var throwIfSiteExistsOption = {
2814
- cliFlag: cliFlag50,
3460
+ cliFlag: cliFlag62,
2815
3461
  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.`,
2816
3462
  docLink: "https://remotion.dev/docs/lambda/deploy-site",
2817
3463
  getValue: ({ commandLine }) => {
2818
- if (commandLine[cliFlag50]) {
3464
+ if (commandLine[cliFlag62]) {
2819
3465
  return {
2820
3466
  source: "cli",
2821
- value: commandLine[cliFlag50]
3467
+ value: commandLine[cliFlag62]
2822
3468
  };
2823
3469
  }
2824
3470
  return {
@@ -2831,41 +3477,42 @@ var throwIfSiteExistsOption = {
2831
3477
  throw new Error("Not implemented");
2832
3478
  },
2833
3479
  ssrName: "throwIfSiteExists",
2834
- type: false
3480
+ type: false,
3481
+ id: cliFlag62
2835
3482
  };
2836
3483
 
2837
3484
  // src/options/timeout.tsx
2838
- import { jsx as jsx46, jsxs as jsxs34, Fragment as Fragment46 } from "react/jsx-runtime";
3485
+ import { jsx as jsx58, jsxs as jsxs39, Fragment as Fragment58 } from "react/jsx-runtime";
2839
3486
  var currentTimeout = DEFAULT_TIMEOUT;
2840
3487
  var validate3 = (value3) => {
2841
3488
  if (typeof value3 !== "number") {
2842
3489
  throw new Error("--timeout flag / setDelayRenderTimeoutInMilliseconds() must be a number, but got " + JSON.stringify(value3));
2843
3490
  }
2844
3491
  };
2845
- var cliFlag51 = "timeout";
3492
+ var cliFlag63 = "timeout";
2846
3493
  var delayRenderTimeoutInMillisecondsOption = {
2847
3494
  name: "delayRender() timeout",
2848
- cliFlag: cliFlag51,
2849
- description: () => /* @__PURE__ */ jsxs34(Fragment46, {
3495
+ cliFlag: cliFlag63,
3496
+ description: () => /* @__PURE__ */ jsxs39(Fragment58, {
2850
3497
  children: [
2851
3498
  "A number describing how long the render may take to resolve all",
2852
3499
  " ",
2853
- /* @__PURE__ */ jsx46("a", {
3500
+ /* @__PURE__ */ jsx58("a", {
2854
3501
  href: "https://remotion.dev/docs/delay-render",
2855
- children: /* @__PURE__ */ jsx46("code", {
3502
+ children: /* @__PURE__ */ jsx58("code", {
2856
3503
  children: "delayRender()"
2857
3504
  })
2858
3505
  }),
2859
3506
  " ",
2860
3507
  "calls",
2861
3508
  " ",
2862
- /* @__PURE__ */ jsx46("a", {
3509
+ /* @__PURE__ */ jsx58("a", {
2863
3510
  style: { fontSize: "inherit" },
2864
3511
  href: "https://remotion.dev/docs/timeout",
2865
3512
  children: "before it times out"
2866
3513
  }),
2867
3514
  ". Default: ",
2868
- /* @__PURE__ */ jsx46("code", {
3515
+ /* @__PURE__ */ jsx58("code", {
2869
3516
  children: "30000"
2870
3517
  })
2871
3518
  ]
@@ -2874,10 +3521,10 @@ var delayRenderTimeoutInMillisecondsOption = {
2874
3521
  docLink: "https://www.remotion.dev/docs/timeout",
2875
3522
  type: 0,
2876
3523
  getValue: ({ commandLine }) => {
2877
- if (commandLine[cliFlag51] !== undefined) {
3524
+ if (commandLine[cliFlag63] !== undefined) {
2878
3525
  return {
2879
3526
  source: "cli",
2880
- value: commandLine[cliFlag51]
3527
+ value: commandLine[cliFlag63]
2881
3528
  };
2882
3529
  }
2883
3530
  if (currentTimeout !== null) {
@@ -2895,30 +3542,68 @@ var delayRenderTimeoutInMillisecondsOption = {
2895
3542
  setConfig: (value3) => {
2896
3543
  validate3(value3);
2897
3544
  currentTimeout = value3;
2898
- }
3545
+ },
3546
+ id: cliFlag63
3547
+ };
3548
+
3549
+ // src/options/user-agent.tsx
3550
+ import { jsx as jsx59, Fragment as Fragment59 } from "react/jsx-runtime";
3551
+ var userAgent = null;
3552
+ var cliFlag64 = "user-agent";
3553
+ var userAgentOption = {
3554
+ name: "User agent",
3555
+ cliFlag: cliFlag64,
3556
+ description: () => /* @__PURE__ */ jsx59(Fragment59, {
3557
+ children: "Lets you set a custom user agent that the headless Chrome browser assumes."
3558
+ }),
3559
+ ssrName: "userAgent",
3560
+ docLink: "https://www.remotion.dev/docs/chromium-flags#--user-agent",
3561
+ type: null,
3562
+ getValue: ({ commandLine }) => {
3563
+ if (commandLine[cliFlag64] !== undefined) {
3564
+ return {
3565
+ source: "cli",
3566
+ value: commandLine[cliFlag64]
3567
+ };
3568
+ }
3569
+ if (userAgent !== null) {
3570
+ return {
3571
+ source: "config",
3572
+ value: userAgent
3573
+ };
3574
+ }
3575
+ return {
3576
+ source: "default",
3577
+ value: null
3578
+ };
3579
+ },
3580
+ setConfig: (value3) => {
3581
+ userAgent = value3;
3582
+ },
3583
+ id: cliFlag64
2899
3584
  };
2900
3585
 
2901
3586
  // src/options/video-bitrate.tsx
2902
- import { jsx as jsx47, jsxs as jsxs35, Fragment as Fragment47 } from "react/jsx-runtime";
3587
+ import { jsx as jsx60, jsxs as jsxs40, Fragment as Fragment60 } from "react/jsx-runtime";
2903
3588
  var videoBitrate = null;
2904
- var cliFlag52 = "video-bitrate";
3589
+ var cliFlag65 = "video-bitrate";
2905
3590
  var videoBitrateOption = {
2906
3591
  name: "Video Bitrate",
2907
- cliFlag: cliFlag52,
2908
- description: () => /* @__PURE__ */ jsxs35(Fragment47, {
3592
+ cliFlag: cliFlag65,
3593
+ description: () => /* @__PURE__ */ jsxs40(Fragment60, {
2909
3594
  children: [
2910
3595
  "Specify the target bitrate for the generated video. The syntax for FFmpeg",
2911
3596
  "'",
2912
3597
  "s",
2913
- /* @__PURE__ */ jsx47("code", {
3598
+ /* @__PURE__ */ jsx60("code", {
2914
3599
  children: "-b:v"
2915
3600
  }),
2916
3601
  " parameter should be used. FFmpeg may encode the video in a way that will not result in the exact video bitrate specified. Example values: ",
2917
- /* @__PURE__ */ jsx47("code", {
3602
+ /* @__PURE__ */ jsx60("code", {
2918
3603
  children: "512K"
2919
3604
  }),
2920
3605
  " for 512 kbps, ",
2921
- /* @__PURE__ */ jsx47("code", {
3606
+ /* @__PURE__ */ jsx60("code", {
2922
3607
  children: "1M"
2923
3608
  }),
2924
3609
  " for 1 Mbps."
@@ -2928,10 +3613,10 @@ var videoBitrateOption = {
2928
3613
  docLink: "https://www.remotion.dev/docs/renderer/render-media#videobitrate",
2929
3614
  type: "",
2930
3615
  getValue: ({ commandLine }) => {
2931
- if (commandLine[cliFlag52] !== undefined) {
3616
+ if (commandLine[cliFlag65] !== undefined) {
2932
3617
  return {
2933
3618
  source: "cli",
2934
- value: commandLine[cliFlag52]
3619
+ value: commandLine[cliFlag65]
2935
3620
  };
2936
3621
  }
2937
3622
  if (videoBitrate !== null) {
@@ -2947,33 +3632,34 @@ var videoBitrateOption = {
2947
3632
  },
2948
3633
  setConfig: (bitrate) => {
2949
3634
  videoBitrate = bitrate;
2950
- }
3635
+ },
3636
+ id: cliFlag65
2951
3637
  };
2952
3638
 
2953
3639
  // src/options/video-cache-size.tsx
2954
- import { jsx as jsx48, jsxs as jsxs36, Fragment as Fragment48 } from "react/jsx-runtime";
3640
+ import { jsx as jsx61, jsxs as jsxs41, Fragment as Fragment61 } from "react/jsx-runtime";
2955
3641
  var mediaCacheSizeInBytes = null;
2956
- var cliFlag53 = "media-cache-size-in-bytes";
3642
+ var cliFlag66 = "media-cache-size-in-bytes";
2957
3643
  var mediaCacheSizeInBytesOption = {
2958
3644
  name: "@remotion/media cache size",
2959
- cliFlag: cliFlag53,
2960
- description: () => /* @__PURE__ */ jsxs36(Fragment48, {
3645
+ cliFlag: cliFlag66,
3646
+ description: () => /* @__PURE__ */ jsxs41(Fragment61, {
2961
3647
  children: [
2962
3648
  "Specify the maximum size of the cache that ",
2963
- /* @__PURE__ */ jsx48("code", {
3649
+ /* @__PURE__ */ jsx61("code", {
2964
3650
  children: "<Video>"
2965
3651
  }),
2966
3652
  " and",
2967
3653
  " ",
2968
- /* @__PURE__ */ jsx48("code", {
3654
+ /* @__PURE__ */ jsx61("code", {
2969
3655
  children: "<Audio>"
2970
3656
  }),
2971
3657
  " from ",
2972
- /* @__PURE__ */ jsx48("code", {
3658
+ /* @__PURE__ */ jsx61("code", {
2973
3659
  children: "@remotion/media"
2974
3660
  }),
2975
3661
  " may use combined, in bytes. ",
2976
- /* @__PURE__ */ jsx48("br", {}),
3662
+ /* @__PURE__ */ jsx61("br", {}),
2977
3663
  "The default is half of the available system memory when the render starts."
2978
3664
  ]
2979
3665
  }),
@@ -2981,10 +3667,10 @@ var mediaCacheSizeInBytesOption = {
2981
3667
  docLink: "https://www.remotion.dev/docs/media/video#setting-the-cache-size",
2982
3668
  type: 0,
2983
3669
  getValue: ({ commandLine }) => {
2984
- if (commandLine[cliFlag53] !== undefined) {
3670
+ if (commandLine[cliFlag66] !== undefined) {
2985
3671
  return {
2986
3672
  source: "cli",
2987
- value: commandLine[cliFlag53]
3673
+ value: commandLine[cliFlag66]
2988
3674
  };
2989
3675
  }
2990
3676
  if (mediaCacheSizeInBytes !== null) {
@@ -3000,7 +3686,8 @@ var mediaCacheSizeInBytesOption = {
3000
3686
  },
3001
3687
  setConfig: (size) => {
3002
3688
  mediaCacheSizeInBytes = size ?? null;
3003
- }
3689
+ },
3690
+ id: cliFlag66
3004
3691
  };
3005
3692
 
3006
3693
  // src/path-normalize.ts
@@ -3119,7 +3806,7 @@ var getExtensionOfFilename = (filename) => {
3119
3806
  };
3120
3807
 
3121
3808
  // src/options/video-codec.tsx
3122
- import { jsx as jsx49, Fragment as Fragment49 } from "react/jsx-runtime";
3809
+ import { jsx as jsx62, Fragment as Fragment62 } from "react/jsx-runtime";
3123
3810
  var codec;
3124
3811
  var setCodec = (newCodec) => {
3125
3812
  if (newCodec === undefined) {
@@ -3143,11 +3830,11 @@ var deriveCodecsFromFilename = (extension) => {
3143
3830
  possible: makeFileExtensionMap()[extension] ?? []
3144
3831
  };
3145
3832
  };
3146
- var cliFlag54 = "codec";
3833
+ var cliFlag67 = "codec";
3147
3834
  var videoCodecOption = {
3148
3835
  name: "Codec",
3149
- cliFlag: cliFlag54,
3150
- description: () => /* @__PURE__ */ jsx49(Fragment49, {
3836
+ cliFlag: cliFlag67,
3837
+ description: () => /* @__PURE__ */ jsx62(Fragment62, {
3151
3838
  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."
3152
3839
  }),
3153
3840
  ssrName: "codec",
@@ -3170,7 +3857,7 @@ var videoCodecOption = {
3170
3857
  if (derivedDownloadCodecs.possible.length > 0 && derivedOutNameCodecs.possible.length > 0 && derivedDownloadCodecs.possible.join("") !== derivedOutNameCodecs.possible.join("")) {
3171
3858
  throw new TypeError(`The download name is ${downloadName} but the output name is ${outName}. The file extensions must match`);
3172
3859
  }
3173
- const cliArgument = commandLine[cliFlag54];
3860
+ const cliArgument = commandLine[cliFlag67];
3174
3861
  if (cliArgument) {
3175
3862
  if (derivedDownloadCodecs.possible.length > 0 && derivedDownloadCodecs.possible.indexOf(cliArgument) === -1) {
3176
3863
  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.`);
@@ -3215,16 +3902,78 @@ var videoCodecOption = {
3215
3902
  }
3216
3903
  return { value: DEFAULT_CODEC, source: "default" };
3217
3904
  },
3218
- setConfig: setCodec
3905
+ setConfig: setCodec,
3906
+ id: cliFlag67
3907
+ };
3908
+
3909
+ // src/options/video-image-format.tsx
3910
+ import { jsx as jsx63, jsxs as jsxs42, Fragment as Fragment63 } from "react/jsx-runtime";
3911
+ var currentVideoImageFormat = null;
3912
+ var cliFlag68 = "image-format";
3913
+ var videoImageFormatOption = {
3914
+ name: "Video Image Format",
3915
+ cliFlag: cliFlag68,
3916
+ description: () => /* @__PURE__ */ jsxs42(Fragment63, {
3917
+ children: [
3918
+ "The image format to use when rendering frames for a video. Must be one of",
3919
+ " ",
3920
+ validVideoImageFormats.map((f) => `"${f}"`).join(", "),
3921
+ ". Default:",
3922
+ " ",
3923
+ /* @__PURE__ */ jsx63("code", {
3924
+ children: '"jpeg"'
3925
+ }),
3926
+ ". JPEG is faster, but does not support transparency."
3927
+ ]
3928
+ }),
3929
+ ssrName: "imageFormat",
3930
+ docLink: "https://www.remotion.dev/docs/renderer/render-media#imageformat",
3931
+ type: null,
3932
+ getValue: ({ commandLine }) => {
3933
+ if (commandLine[cliFlag68] !== undefined) {
3934
+ const value3 = commandLine[cliFlag68];
3935
+ if (!validVideoImageFormats.includes(value3)) {
3936
+ throw new Error(`Invalid video image format: ${value3}. Must be one of: ${validVideoImageFormats.join(", ")}`);
3937
+ }
3938
+ return {
3939
+ source: "cli",
3940
+ value: value3
3941
+ };
3942
+ }
3943
+ if (currentVideoImageFormat !== null) {
3944
+ return {
3945
+ source: "config",
3946
+ value: currentVideoImageFormat
3947
+ };
3948
+ }
3949
+ return {
3950
+ source: "default",
3951
+ value: null
3952
+ };
3953
+ },
3954
+ setConfig: (value3) => {
3955
+ if (value3 === null) {
3956
+ currentVideoImageFormat = null;
3957
+ return;
3958
+ }
3959
+ if (!validVideoImageFormats.includes(value3)) {
3960
+ throw new TypeError([
3961
+ `Value ${value3} is not valid as a video image format.`,
3962
+ value3 === "jpg" ? 'Did you mean "jpeg"?' : null
3963
+ ].filter(Boolean).join(" "));
3964
+ }
3965
+ currentVideoImageFormat = value3;
3966
+ },
3967
+ id: "video-image-format"
3219
3968
  };
3220
3969
 
3221
3970
  // src/options/webhook-custom-data.tsx
3222
- import { jsxs as jsxs37, Fragment as Fragment50 } from "react/jsx-runtime";
3223
- var cliFlag55 = "webhook-custom-data";
3971
+ import { jsxs as jsxs43, Fragment as Fragment64 } from "react/jsx-runtime";
3972
+ var cliFlag69 = "webhook-custom-data";
3224
3973
  var webhookCustomDataOption = {
3225
3974
  name: "Webhook custom data",
3226
- cliFlag: cliFlag55,
3227
- description: (type) => /* @__PURE__ */ jsxs37(Fragment50, {
3975
+ cliFlag: cliFlag69,
3976
+ description: (type) => /* @__PURE__ */ jsxs43(Fragment64, {
3228
3977
  children: [
3229
3978
  "Pass up to 1,024 bytes of a JSON-serializable object to the webhook. This data will be included in the webhook payload.",
3230
3979
  " ",
@@ -3239,11 +3988,12 @@ var webhookCustomDataOption = {
3239
3988
  },
3240
3989
  setConfig: () => {
3241
3990
  throw new Error("Not implemented");
3242
- }
3991
+ },
3992
+ id: cliFlag69
3243
3993
  };
3244
3994
 
3245
3995
  // src/options/x264-preset.tsx
3246
- import { jsx as jsx50, jsxs as jsxs38, Fragment as Fragment51 } from "react/jsx-runtime";
3996
+ import { jsx as jsx64, jsxs as jsxs44, Fragment as Fragment65 } from "react/jsx-runtime";
3247
3997
  var x264PresetOptions = [
3248
3998
  "ultrafast",
3249
3999
  "superfast",
@@ -3257,63 +4007,63 @@ var x264PresetOptions = [
3257
4007
  "placebo"
3258
4008
  ];
3259
4009
  var preset = null;
3260
- var cliFlag56 = "x264-preset";
4010
+ var cliFlag70 = "x264-preset";
3261
4011
  var DEFAULT_PRESET = "medium";
3262
4012
  var x264Option = {
3263
4013
  name: "x264 Preset",
3264
- cliFlag: cliFlag56,
3265
- description: () => /* @__PURE__ */ jsxs38(Fragment51, {
4014
+ cliFlag: cliFlag70,
4015
+ description: () => /* @__PURE__ */ jsxs44(Fragment65, {
3266
4016
  children: [
3267
4017
  "Sets a x264 preset profile. Only applies to videos rendered with",
3268
4018
  " ",
3269
- /* @__PURE__ */ jsx50("code", {
4019
+ /* @__PURE__ */ jsx64("code", {
3270
4020
  children: "h264"
3271
4021
  }),
3272
4022
  " codec.",
3273
- /* @__PURE__ */ jsx50("br", {}),
4023
+ /* @__PURE__ */ jsx64("br", {}),
3274
4024
  "Possible values: ",
3275
- /* @__PURE__ */ jsx50("code", {
4025
+ /* @__PURE__ */ jsx64("code", {
3276
4026
  children: "superfast"
3277
4027
  }),
3278
4028
  ", ",
3279
- /* @__PURE__ */ jsx50("code", {
4029
+ /* @__PURE__ */ jsx64("code", {
3280
4030
  children: "veryfast"
3281
4031
  }),
3282
4032
  ",",
3283
4033
  " ",
3284
- /* @__PURE__ */ jsx50("code", {
4034
+ /* @__PURE__ */ jsx64("code", {
3285
4035
  children: "faster"
3286
4036
  }),
3287
4037
  ", ",
3288
- /* @__PURE__ */ jsx50("code", {
4038
+ /* @__PURE__ */ jsx64("code", {
3289
4039
  children: "fast"
3290
4040
  }),
3291
4041
  ", ",
3292
- /* @__PURE__ */ jsx50("code", {
4042
+ /* @__PURE__ */ jsx64("code", {
3293
4043
  children: "medium"
3294
4044
  }),
3295
4045
  ",",
3296
4046
  " ",
3297
- /* @__PURE__ */ jsx50("code", {
4047
+ /* @__PURE__ */ jsx64("code", {
3298
4048
  children: "slow"
3299
4049
  }),
3300
4050
  ", ",
3301
- /* @__PURE__ */ jsx50("code", {
4051
+ /* @__PURE__ */ jsx64("code", {
3302
4052
  children: "slower"
3303
4053
  }),
3304
4054
  ", ",
3305
- /* @__PURE__ */ jsx50("code", {
4055
+ /* @__PURE__ */ jsx64("code", {
3306
4056
  children: "veryslow"
3307
4057
  }),
3308
4058
  ",",
3309
4059
  " ",
3310
- /* @__PURE__ */ jsx50("code", {
4060
+ /* @__PURE__ */ jsx64("code", {
3311
4061
  children: "placebo"
3312
4062
  }),
3313
4063
  ".",
3314
- /* @__PURE__ */ jsx50("br", {}),
4064
+ /* @__PURE__ */ jsx64("br", {}),
3315
4065
  "Default: ",
3316
- /* @__PURE__ */ jsx50("code", {
4066
+ /* @__PURE__ */ jsx64("code", {
3317
4067
  children: DEFAULT_PRESET
3318
4068
  })
3319
4069
  ]
@@ -3322,7 +4072,7 @@ var x264Option = {
3322
4072
  docLink: "https://www.remotion.dev/docs/renderer/render-media",
3323
4073
  type: "fast",
3324
4074
  getValue: ({ commandLine }) => {
3325
- const value3 = commandLine[cliFlag56];
4075
+ const value3 = commandLine[cliFlag70];
3326
4076
  if (typeof value3 !== "undefined") {
3327
4077
  return { value: value3, source: "cli" };
3328
4078
  }
@@ -3333,18 +4083,22 @@ var x264Option = {
3333
4083
  },
3334
4084
  setConfig: (profile) => {
3335
4085
  preset = profile;
3336
- }
4086
+ },
4087
+ id: cliFlag70
3337
4088
  };
3338
4089
 
3339
4090
  // src/options/index.tsx
3340
4091
  var allOptions = {
3341
4092
  audioCodecOption,
4093
+ browserExecutableOption,
4094
+ concurrencyOption,
3342
4095
  scaleOption,
3343
4096
  crfOption,
3344
4097
  jpegQualityOption,
3345
4098
  videoBitrateOption,
3346
4099
  audioBitrateOption,
3347
4100
  enforceAudioOption,
4101
+ everyNthFrameOption,
3348
4102
  mutedOption,
3349
4103
  videoCodecOption,
3350
4104
  offthreadVideoCacheSizeInBytesOption,
@@ -3352,6 +4106,7 @@ var allOptions = {
3352
4106
  webhookCustomDataOption,
3353
4107
  colorSpaceOption,
3354
4108
  deleteAfterOption,
4109
+ disableWebSecurityOption,
3355
4110
  disallowParallelEncodingOption,
3356
4111
  folderExpiryOption,
3357
4112
  enableMultiprocessOnLinuxOption,
@@ -3362,7 +4117,9 @@ var allOptions = {
3362
4117
  beepOnFinishOption,
3363
4118
  numberOfGifLoopsOption,
3364
4119
  reproOption,
4120
+ pixelFormatOption,
3365
4121
  preferLosslessOption: preferLosslessAudioOption,
4122
+ proResProfileOption,
3366
4123
  x264Option,
3367
4124
  logLevelOption,
3368
4125
  delayRenderTimeoutInMillisecondsOption,
@@ -3383,6 +4140,7 @@ var allOptions = {
3383
4140
  licenseKeyOption,
3384
4141
  audioLatencyHintOption,
3385
4142
  enableCrossSiteIsolationOption,
4143
+ ignoreCertificateErrorsOption,
3386
4144
  imageSequencePatternOption,
3387
4145
  mediaCacheSizeInBytesOption,
3388
4146
  darkModeOption,
@@ -3393,7 +4151,14 @@ var allOptions = {
3393
4151
  keyboardShortcutsOption,
3394
4152
  forceNewStudioOption,
3395
4153
  numberOfSharedAudioTagsOption,
3396
- ipv4Option
4154
+ ipv4Option,
4155
+ stillImageFormatOption,
4156
+ userAgentOption,
4157
+ videoImageFormatOption,
4158
+ overrideHeightOption,
4159
+ overrideWidthOption,
4160
+ overrideFpsOption,
4161
+ overrideDurationOption
3397
4162
  };
3398
4163
 
3399
4164
  // src/options/options-map.ts
@@ -3560,25 +4325,6 @@ var optionsMap = {
3560
4325
  }
3561
4326
  };
3562
4327
 
3563
- // src/pixel-format.ts
3564
- var validPixelFormats = [
3565
- "yuv420p",
3566
- "yuva420p",
3567
- "yuv422p",
3568
- "yuv444p",
3569
- "yuv420p10le",
3570
- "yuv422p10le",
3571
- "yuv444p10le",
3572
- "yuva444p10le"
3573
- ];
3574
- var DEFAULT_PIXEL_FORMAT = "yuv420p";
3575
- var validPixelFormatsForCodec = (codec2) => {
3576
- if (codec2 === "vp8" || codec2 === "vp9") {
3577
- return validPixelFormats;
3578
- }
3579
- return validPixelFormats.filter((format) => format !== "yuva420p");
3580
- };
3581
-
3582
4328
  // src/validate-output-filename.ts
3583
4329
  var validateOutputFilename = ({
3584
4330
  codec: codec2,
@@ -3619,7 +4365,7 @@ var BrowserSafeApis = {
3619
4365
  validAudioCodecs,
3620
4366
  getDefaultCrfForCodec,
3621
4367
  getValidCrfRanges,
3622
- proResProfileOptions: NoReactInternals2.proResProfileOptions,
4368
+ proResProfileOptions: NoReactInternals3.proResProfileOptions,
3623
4369
  x264PresetOptions,
3624
4370
  hardwareAccelerationOptions,
3625
4371
  validPixelFormats,