@remotion/renderer 4.0.422 → 4.0.424

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 (133) hide show
  1. package/dist/client.d.ts +237 -13
  2. package/dist/combine-chunks.js +3 -0
  3. package/dist/ensure-browser.d.ts +3 -0
  4. package/dist/esm/client.mjs +317 -118
  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 +44 -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/chrome-mode.d.ts +1 -0
  25. package/dist/options/chrome-mode.js +1 -0
  26. package/dist/options/color-space.d.ts +5 -4
  27. package/dist/options/color-space.js +4 -2
  28. package/dist/options/crf.d.ts +1 -0
  29. package/dist/options/crf.js +1 -0
  30. package/dist/options/cross-site-isolation.d.ts +1 -0
  31. package/dist/options/cross-site-isolation.js +1 -0
  32. package/dist/options/dark-mode.d.ts +1 -0
  33. package/dist/options/dark-mode.js +1 -0
  34. package/dist/options/delete-after.d.ts +1 -0
  35. package/dist/options/delete-after.js +1 -0
  36. package/dist/options/disable-git-source.d.ts +1 -0
  37. package/dist/options/disable-git-source.js +1 -0
  38. package/dist/options/disallow-parallel-encoding.d.ts +1 -0
  39. package/dist/options/disallow-parallel-encoding.js +1 -0
  40. package/dist/options/enable-lambda-insights.d.ts +1 -0
  41. package/dist/options/enable-lambda-insights.js +1 -0
  42. package/dist/options/enable-multiprocess-on-linux.d.ts +1 -0
  43. package/dist/options/enable-multiprocess-on-linux.js +1 -0
  44. package/dist/options/encoding-buffer-size.d.ts +1 -0
  45. package/dist/options/encoding-buffer-size.js +1 -0
  46. package/dist/options/encoding-max-rate.d.ts +1 -0
  47. package/dist/options/encoding-max-rate.js +1 -0
  48. package/dist/options/enforce-audio.d.ts +1 -0
  49. package/dist/options/enforce-audio.js +1 -0
  50. package/dist/options/experimental-client-side-rendering.d.ts +1 -0
  51. package/dist/options/experimental-client-side-rendering.js +1 -0
  52. package/dist/options/folder-expiry.d.ts +1 -0
  53. package/dist/options/folder-expiry.js +1 -0
  54. package/dist/options/for-seamless-aac-concatenation.d.ts +1 -0
  55. package/dist/options/for-seamless-aac-concatenation.js +1 -0
  56. package/dist/options/force-new-studio.d.ts +1 -0
  57. package/dist/options/force-new-studio.js +1 -0
  58. package/dist/options/gl.d.ts +1 -0
  59. package/dist/options/gl.js +1 -0
  60. package/dist/options/hardware-acceleration.d.ts +1 -0
  61. package/dist/options/hardware-acceleration.js +1 -0
  62. package/dist/options/headless.d.ts +1 -0
  63. package/dist/options/headless.js +1 -0
  64. package/dist/options/image-sequence-pattern.d.ts +1 -0
  65. package/dist/options/image-sequence-pattern.js +1 -0
  66. package/dist/options/index.d.ts +97 -3
  67. package/dist/options/index.js +4 -0
  68. package/dist/options/ipv4.d.ts +1 -0
  69. package/dist/options/ipv4.js +1 -0
  70. package/dist/options/is-production.d.ts +1 -0
  71. package/dist/options/is-production.js +1 -0
  72. package/dist/options/jpeg-quality.d.ts +1 -0
  73. package/dist/options/jpeg-quality.js +1 -0
  74. package/dist/options/keyboard-shortcuts.d.ts +1 -0
  75. package/dist/options/keyboard-shortcuts.js +1 -0
  76. package/dist/options/latency-hint.d.ts +1 -0
  77. package/dist/options/latency-hint.js +1 -0
  78. package/dist/options/license-key.d.ts +1 -0
  79. package/dist/options/license-key.js +1 -0
  80. package/dist/options/log-level.d.ts +1 -0
  81. package/dist/options/log-level.js +1 -0
  82. package/dist/options/metadata.d.ts +1 -0
  83. package/dist/options/metadata.js +1 -0
  84. package/dist/options/mute.d.ts +1 -0
  85. package/dist/options/mute.js +1 -0
  86. package/dist/options/number-of-gif-loops.d.ts +1 -0
  87. package/dist/options/number-of-gif-loops.js +1 -0
  88. package/dist/options/number-of-shared-audio-tags.d.ts +1 -0
  89. package/dist/options/number-of-shared-audio-tags.js +1 -0
  90. package/dist/options/offthreadvideo-cache-size.d.ts +1 -0
  91. package/dist/options/offthreadvideo-cache-size.js +1 -0
  92. package/dist/options/offthreadvideo-threads.d.ts +1 -0
  93. package/dist/options/offthreadvideo-threads.js +1 -0
  94. package/dist/options/on-browser-download.d.ts +1 -0
  95. package/dist/options/on-browser-download.js +1 -0
  96. package/dist/options/option.d.ts +1 -0
  97. package/dist/options/options-map.d.ts +139 -9
  98. package/dist/options/overwrite.d.ts +1 -0
  99. package/dist/options/overwrite.js +1 -0
  100. package/dist/options/prefer-lossless.d.ts +1 -0
  101. package/dist/options/prefer-lossless.js +1 -0
  102. package/dist/options/public-dir.d.ts +1 -0
  103. package/dist/options/public-dir.js +1 -0
  104. package/dist/options/public-license-key.d.ts +1 -0
  105. package/dist/options/public-license-key.js +1 -0
  106. package/dist/options/public-path.d.ts +1 -0
  107. package/dist/options/public-path.js +1 -0
  108. package/dist/options/repro.d.ts +1 -0
  109. package/dist/options/repro.js +1 -0
  110. package/dist/options/scale.d.ts +1 -0
  111. package/dist/options/scale.js +1 -0
  112. package/dist/options/separate-audio.d.ts +1 -0
  113. package/dist/options/separate-audio.js +1 -0
  114. package/dist/options/still-image-format.d.ts +19 -0
  115. package/dist/options/still-image-format.js +55 -0
  116. package/dist/options/throw-if-site-exists.d.ts +1 -0
  117. package/dist/options/throw-if-site-exists.js +1 -0
  118. package/dist/options/timeout.d.ts +1 -0
  119. package/dist/options/timeout.js +1 -0
  120. package/dist/options/video-bitrate.d.ts +1 -0
  121. package/dist/options/video-bitrate.js +1 -0
  122. package/dist/options/video-cache-size.d.ts +1 -0
  123. package/dist/options/video-cache-size.js +1 -0
  124. package/dist/options/video-codec.d.ts +1 -0
  125. package/dist/options/video-codec.js +1 -0
  126. package/dist/options/video-image-format.d.ts +19 -0
  127. package/dist/options/video-image-format.js +55 -0
  128. package/dist/options/webhook-custom-data.d.ts +1 -0
  129. package/dist/options/webhook-custom-data.js +1 -0
  130. package/dist/options/x264-preset.d.ts +1 -0
  131. package/dist/options/x264-preset.js +1 -0
  132. package/dist/validate-number-of-gif-loops.js +1 -1
  133. package/package.json +14 -14
@@ -17600,7 +17600,8 @@ var separateAudioOption = {
17600
17600
  throw new Error("Not implemented");
17601
17601
  },
17602
17602
  ssrName: "separateAudioTo",
17603
- type: "string"
17603
+ type: "string",
17604
+ id: cliFlag
17604
17605
  };
17605
17606
 
17606
17607
  // src/options/audio-codec.tsx
@@ -17777,7 +17778,8 @@ var audioCodecOption = {
17777
17778
  docLink: "https://www.remotion.dev/docs/encoding/#audio-codec",
17778
17779
  name: "Audio Codec",
17779
17780
  ssrName,
17780
- type: "aac"
17781
+ type: "aac",
17782
+ id: cliFlag2
17781
17783
  };
17782
17784
 
17783
17785
  // src/parse-ffmpeg-progress.ts
@@ -19766,7 +19768,7 @@ var ensureFramesInOrder = (framesToRender) => {
19766
19768
  // src/options/color-space.tsx
19767
19769
  import { NoReactInternals as NoReactInternals13 } from "remotion/no-react";
19768
19770
  import { jsx as jsx4, jsxs as jsxs4, Fragment as Fragment4 } from "react/jsx-runtime";
19769
- var validV4ColorSpaces = ["default", "bt709", "bt2020-ncl"];
19771
+ var validV4ColorSpaces = ["default", "bt601", "bt709", "bt2020-ncl"];
19770
19772
  var validV5ColorSpaces = ["bt601", "bt709", "bt2020-ncl"];
19771
19773
  var validColorSpaces = NoReactInternals13.ENABLE_V5_BREAKING_CHANGES ? validV5ColorSpaces : validV4ColorSpaces;
19772
19774
  var DEFAULT_COLOR_SPACE = NoReactInternals13.ENABLE_V5_BREAKING_CHANGES ? "bt709" : "default";
@@ -19953,7 +19955,7 @@ var generateFfmpegArgs = ({
19953
19955
  throw new Error(`Codec ${codec} does not support hardware acceleration on ${process.platform}, but "hardwareAcceleration" is set to "required"`);
19954
19956
  }
19955
19957
  Log.verbose({ indent, logLevel, tag: "stitchFramesToVideo()" }, `Encoder: ${encoderName}, hardware accelerated: ${hardwareAccelerated}`);
19956
- const resolvedColorSpace = colorSpace ?? DEFAULT_COLOR_SPACE;
19958
+ const resolvedColorSpace = codec === "gif" ? "bt601" : colorSpace ?? DEFAULT_COLOR_SPACE;
19957
19959
  const colorSpaceOptions = resolvedColorSpace === "bt709" ? [
19958
19960
  ["-colorspace:v", "bt709"],
19959
19961
  ["-color_primaries:v", "bt709"],
@@ -21581,7 +21583,7 @@ var validateNumberOfGifLoops = (numberOfGifLoops, codec) => {
21581
21583
  throw new RangeError(`Argument for numberOfGifLoops must be an integer, but got ${numberOfGifLoops}`);
21582
21584
  }
21583
21585
  if (codec !== "gif") {
21584
- throw new Error(`"everyNthFrame" can only be set if "codec" is set to "gif". The codec is "${codec}"`);
21586
+ throw new Error(`"numberOfGifLoops" can only be set if "codec" is set to "gif". The codec is "${codec}"`);
21585
21587
  }
21586
21588
  };
21587
21589
 
@@ -23106,7 +23108,8 @@ var muxVideoAndAudio = async ({
23106
23108
  fps,
23107
23109
  cancelSignal,
23108
23110
  addFaststart,
23109
- metadata
23111
+ metadata,
23112
+ numberOfGifLoops
23110
23113
  }) => {
23111
23114
  const startTime = Date.now();
23112
23115
  Log.verbose({ indent, logLevel }, "Muxing video and audio together");
@@ -23120,6 +23123,8 @@ var muxVideoAndAudio = async ({
23120
23123
  videoOutput ? "copy" : null,
23121
23124
  audioOutput ? "-c:a" : null,
23122
23125
  audioOutput ? "copy" : null,
23126
+ numberOfGifLoops === null ? null : "-loop",
23127
+ numberOfGifLoops === null ? null : convertNumberOfGifLoopsToFfmpegSyntax(numberOfGifLoops),
23123
23128
  addFaststart ? "-movflags" : null,
23124
23129
  addFaststart ? "faststart" : null,
23125
23130
  ...makeMetadataArgs(metadata ?? {}),
@@ -23187,6 +23192,7 @@ var internalCombineChunks = async ({
23187
23192
  frameRange,
23188
23193
  compositionDurationInFrames
23189
23194
  }) => {
23195
+ validateNumberOfGifLoops(numberOfGifLoops, codec);
23190
23196
  const filelistDir = tmpDir(REMOTION_FILELIST_TOKEN);
23191
23197
  const shouldCreateVideo = !isAudioCodec(codec);
23192
23198
  const resolvedAudioCodec = resolveAudioCodec({
@@ -23268,7 +23274,8 @@ var internalCombineChunks = async ({
23268
23274
  fps,
23269
23275
  cancelSignal,
23270
23276
  addFaststart: codecSupportsFastStart[codec],
23271
- metadata
23277
+ metadata,
23278
+ numberOfGifLoops
23272
23279
  });
23273
23280
  onProgress({ totalProgress: 1, frames: numberOfFrames });
23274
23281
  rmSync6(filelistDir, { recursive: true });
package/dist/esm/pure.mjs CHANGED
@@ -320,7 +320,8 @@ var separateAudioOption = {
320
320
  throw new Error("Not implemented");
321
321
  },
322
322
  ssrName: "separateAudioTo",
323
- type: "string"
323
+ type: "string",
324
+ id: cliFlag
324
325
  };
325
326
 
326
327
  // src/options/audio-codec.tsx
@@ -476,7 +477,8 @@ var audioCodecOption = {
476
477
  docLink: "https://www.remotion.dev/docs/encoding/#audio-codec",
477
478
  name: "Audio Codec",
478
479
  ssrName,
479
- type: "aac"
480
+ type: "aac",
481
+ id: cliFlag2
480
482
  };
481
483
 
482
484
  // src/validate-output-filename.ts
@@ -8,7 +8,7 @@ export declare const generateFfmpegArgs: ({ hasPreencoded, proResProfileName, pi
8
8
  videoBitrate: string | null;
9
9
  encodingMaxRate: string | null;
10
10
  encodingBufferSize: string | null;
11
- colorSpace: "bt2020-ncl" | "bt709" | "default" | null;
11
+ colorSpace: "bt2020-ncl" | "bt601" | "bt709" | "default" | null;
12
12
  hardwareAcceleration: "disable" | "if-possible" | "required";
13
13
  indent: boolean;
14
14
  logLevel: "error" | "info" | "trace" | "verbose" | "warn";
@@ -48,7 +48,7 @@ const generateFfmpegArgs = ({ hasPreencoded, proResProfileName, pixelFormat, x26
48
48
  throw new Error(`Codec ${codec} does not support hardware acceleration on ${process.platform}, but "hardwareAcceleration" is set to "required"`);
49
49
  }
50
50
  logger_1.Log.verbose({ indent, logLevel, tag: 'stitchFramesToVideo()' }, `Encoder: ${encoderName}, hardware accelerated: ${hardwareAccelerated}`);
51
- const resolvedColorSpace = colorSpace !== null && colorSpace !== void 0 ? colorSpace : color_space_1.DEFAULT_COLOR_SPACE;
51
+ const resolvedColorSpace = codec === 'gif' ? 'bt601' : (colorSpace !== null && colorSpace !== void 0 ? colorSpace : color_space_1.DEFAULT_COLOR_SPACE);
52
52
  const colorSpaceOptions = resolvedColorSpace === 'bt709'
53
53
  ? [
54
54
  ['-colorspace:v', 'bt709'],
package/dist/index.d.ts CHANGED
@@ -486,6 +486,7 @@ export declare const RenderInternals: {
486
486
  value: null;
487
487
  };
488
488
  setConfig: (size: number | null) => void;
489
+ id: "media-cache-size-in-bytes";
489
490
  };
490
491
  readonly offthreadVideoCacheSizeInBytes: {
491
492
  name: string;
@@ -504,6 +505,7 @@ export declare const RenderInternals: {
504
505
  value: null;
505
506
  };
506
507
  setConfig: (size: number | null) => void;
508
+ id: "offthreadvideo-cache-size-in-bytes";
507
509
  };
508
510
  readonly offthreadVideoThreads: {
509
511
  name: string;
@@ -522,6 +524,7 @@ export declare const RenderInternals: {
522
524
  value: null;
523
525
  };
524
526
  setConfig: (size: number | null) => void;
527
+ id: "offthreadvideo-video-threads";
525
528
  };
526
529
  readonly jpegQuality: {
527
530
  name: string;
@@ -537,6 +540,7 @@ export declare const RenderInternals: {
537
540
  source: string;
538
541
  value: number;
539
542
  };
543
+ id: "jpeg-quality";
540
544
  };
541
545
  readonly logLevel: {
542
546
  cliFlag: "log";
@@ -552,6 +556,7 @@ export declare const RenderInternals: {
552
556
  };
553
557
  setConfig: (newLogLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
554
558
  type: "error" | "info" | "trace" | "verbose" | "warn";
559
+ id: "log";
555
560
  };
556
561
  readonly timeoutInMilliseconds: {
557
562
  name: string;
@@ -567,6 +572,7 @@ export declare const RenderInternals: {
567
572
  value: number;
568
573
  };
569
574
  setConfig: (value: number) => void;
575
+ id: "timeout";
570
576
  };
571
577
  readonly binariesDirectory: {
572
578
  name: string;
@@ -582,6 +588,7 @@ export declare const RenderInternals: {
582
588
  value: string | null;
583
589
  };
584
590
  setConfig: (value: string | null) => void;
591
+ id: "binaries-directory";
585
592
  };
586
593
  readonly onBrowserDownload: {
587
594
  name: string;
@@ -592,6 +599,7 @@ export declare const RenderInternals: {
592
599
  type: import(".").OnBrowserDownload;
593
600
  getValue: () => never;
594
601
  setConfig: () => never;
602
+ id: "on-browser-download";
595
603
  };
596
604
  readonly chromeMode: {
597
605
  cliFlag: "chrome-mode";
@@ -607,6 +615,7 @@ export declare const RenderInternals: {
607
615
  };
608
616
  setConfig: (newChromeMode: "chrome-for-testing" | "headless-shell") => void;
609
617
  type: "chrome-for-testing" | "headless-shell";
618
+ id: "chrome-mode";
610
619
  };
611
620
  readonly apiKey: {
612
621
  name: string;
@@ -622,6 +631,7 @@ export declare const RenderInternals: {
622
631
  value: string | null;
623
632
  };
624
633
  setConfig: (value: string | null) => void;
634
+ id: "api-key";
625
635
  };
626
636
  readonly licenseKey: {
627
637
  name: string;
@@ -637,6 +647,7 @@ export declare const RenderInternals: {
637
647
  value: string | null;
638
648
  };
639
649
  setConfig: (value: string | null) => void;
650
+ id: "license-key";
640
651
  };
641
652
  }, "apiKey">>) => Promise<{
642
653
  buffer: Buffer | null;
@@ -663,6 +674,7 @@ export declare const RenderInternals: {
663
674
  };
664
675
  setConfig: (newLogLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
665
676
  type: "error" | "info" | "trace" | "verbose" | "warn";
677
+ id: "log";
666
678
  };
667
679
  readonly onBrowserDownload: {
668
680
  name: string;
@@ -673,6 +685,7 @@ export declare const RenderInternals: {
673
685
  type: import(".").OnBrowserDownload;
674
686
  getValue: () => never;
675
687
  setConfig: () => never;
688
+ id: "on-browser-download";
676
689
  };
677
690
  readonly chromeMode: {
678
691
  cliFlag: "chrome-mode";
@@ -688,6 +701,7 @@ export declare const RenderInternals: {
688
701
  };
689
702
  setConfig: (newChromeMode: "chrome-for-testing" | "headless-shell") => void;
690
703
  type: "chrome-for-testing" | "headless-shell";
704
+ id: "chrome-mode";
691
705
  };
692
706
  }>) => Promise<HeadlessBrowser>;
693
707
  internalSelectComposition: (options: {
@@ -721,6 +735,7 @@ export declare const RenderInternals: {
721
735
  value: null;
722
736
  };
723
737
  setConfig: (size: number | null) => void;
738
+ id: "media-cache-size-in-bytes";
724
739
  };
725
740
  readonly offthreadVideoCacheSizeInBytes: {
726
741
  name: string;
@@ -739,6 +754,7 @@ export declare const RenderInternals: {
739
754
  value: null;
740
755
  };
741
756
  setConfig: (size: number | null) => void;
757
+ id: "offthreadvideo-cache-size-in-bytes";
742
758
  };
743
759
  readonly offthreadVideoThreads: {
744
760
  name: string;
@@ -757,6 +773,7 @@ export declare const RenderInternals: {
757
773
  value: null;
758
774
  };
759
775
  setConfig: (size: number | null) => void;
776
+ id: "offthreadvideo-video-threads";
760
777
  };
761
778
  readonly logLevel: {
762
779
  cliFlag: "log";
@@ -772,6 +789,7 @@ export declare const RenderInternals: {
772
789
  };
773
790
  setConfig: (newLogLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
774
791
  type: "error" | "info" | "trace" | "verbose" | "warn";
792
+ id: "log";
775
793
  };
776
794
  readonly timeoutInMilliseconds: {
777
795
  name: string;
@@ -787,6 +805,7 @@ export declare const RenderInternals: {
787
805
  value: number;
788
806
  };
789
807
  setConfig: (value: number) => void;
808
+ id: "timeout";
790
809
  };
791
810
  readonly binariesDirectory: {
792
811
  name: string;
@@ -802,6 +821,7 @@ export declare const RenderInternals: {
802
821
  value: string | null;
803
822
  };
804
823
  setConfig: (value: string | null) => void;
824
+ id: "binaries-directory";
805
825
  };
806
826
  readonly onBrowserDownload: {
807
827
  name: string;
@@ -812,6 +832,7 @@ export declare const RenderInternals: {
812
832
  type: import(".").OnBrowserDownload;
813
833
  getValue: () => never;
814
834
  setConfig: () => never;
835
+ id: "on-browser-download";
815
836
  };
816
837
  readonly chromeMode: {
817
838
  cliFlag: "chrome-mode";
@@ -827,6 +848,7 @@ export declare const RenderInternals: {
827
848
  };
828
849
  setConfig: (newChromeMode: "chrome-for-testing" | "headless-shell") => void;
829
850
  type: "chrome-for-testing" | "headless-shell";
851
+ id: "chrome-mode";
830
852
  };
831
853
  }>) => Promise<{
832
854
  metadata: import("remotion").VideoConfig;
@@ -862,6 +884,7 @@ export declare const RenderInternals: {
862
884
  value: null;
863
885
  };
864
886
  setConfig: (size: number | null) => void;
887
+ id: "media-cache-size-in-bytes";
865
888
  };
866
889
  readonly offthreadVideoCacheSizeInBytes: {
867
890
  name: string;
@@ -880,6 +903,7 @@ export declare const RenderInternals: {
880
903
  value: null;
881
904
  };
882
905
  setConfig: (size: number | null) => void;
906
+ id: "offthreadvideo-cache-size-in-bytes";
883
907
  };
884
908
  readonly offthreadVideoThreads: {
885
909
  name: string;
@@ -898,6 +922,7 @@ export declare const RenderInternals: {
898
922
  value: null;
899
923
  };
900
924
  setConfig: (size: number | null) => void;
925
+ id: "offthreadvideo-video-threads";
901
926
  };
902
927
  readonly logLevel: {
903
928
  cliFlag: "log";
@@ -913,6 +938,7 @@ export declare const RenderInternals: {
913
938
  };
914
939
  setConfig: (newLogLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
915
940
  type: "error" | "info" | "trace" | "verbose" | "warn";
941
+ id: "log";
916
942
  };
917
943
  readonly timeoutInMilliseconds: {
918
944
  name: string;
@@ -928,6 +954,7 @@ export declare const RenderInternals: {
928
954
  value: number;
929
955
  };
930
956
  setConfig: (value: number) => void;
957
+ id: "timeout";
931
958
  };
932
959
  readonly binariesDirectory: {
933
960
  name: string;
@@ -943,6 +970,7 @@ export declare const RenderInternals: {
943
970
  value: string | null;
944
971
  };
945
972
  setConfig: (value: string | null) => void;
973
+ id: "binaries-directory";
946
974
  };
947
975
  readonly onBrowserDownload: {
948
976
  name: string;
@@ -953,6 +981,7 @@ export declare const RenderInternals: {
953
981
  type: import(".").OnBrowserDownload;
954
982
  getValue: () => never;
955
983
  setConfig: () => never;
984
+ id: "on-browser-download";
956
985
  };
957
986
  readonly chromeMode: {
958
987
  cliFlag: "chrome-mode";
@@ -968,6 +997,7 @@ export declare const RenderInternals: {
968
997
  };
969
998
  setConfig: (newChromeMode: "chrome-for-testing" | "headless-shell") => void;
970
999
  type: "chrome-for-testing" | "headless-shell";
1000
+ id: "chrome-mode";
971
1001
  };
972
1002
  }>) => Promise<import("remotion").VideoConfig[]>;
973
1003
  internalRenderFrames: (args_0: {
@@ -1018,6 +1048,7 @@ export declare const RenderInternals: {
1018
1048
  value: null;
1019
1049
  };
1020
1050
  setConfig: (size: number | null) => void;
1051
+ id: "media-cache-size-in-bytes";
1021
1052
  };
1022
1053
  readonly forSeamlessAacConcatenation: {
1023
1054
  name: string;
@@ -1036,6 +1067,7 @@ export declare const RenderInternals: {
1036
1067
  setConfig: (value: boolean) => void;
1037
1068
  ssrName: string;
1038
1069
  type: boolean;
1070
+ id: "for-seamless-aac-concatenation";
1039
1071
  };
1040
1072
  readonly offthreadVideoCacheSizeInBytes: {
1041
1073
  name: string;
@@ -1054,6 +1086,7 @@ export declare const RenderInternals: {
1054
1086
  value: null;
1055
1087
  };
1056
1088
  setConfig: (size: number | null) => void;
1089
+ id: "offthreadvideo-cache-size-in-bytes";
1057
1090
  };
1058
1091
  readonly offthreadVideoThreads: {
1059
1092
  name: string;
@@ -1072,6 +1105,7 @@ export declare const RenderInternals: {
1072
1105
  value: null;
1073
1106
  };
1074
1107
  setConfig: (size: number | null) => void;
1108
+ id: "offthreadvideo-video-threads";
1075
1109
  };
1076
1110
  readonly jpegQuality: {
1077
1111
  name: string;
@@ -1087,6 +1121,7 @@ export declare const RenderInternals: {
1087
1121
  source: string;
1088
1122
  value: number;
1089
1123
  };
1124
+ id: "jpeg-quality";
1090
1125
  };
1091
1126
  readonly logLevel: {
1092
1127
  cliFlag: "log";
@@ -1102,6 +1137,7 @@ export declare const RenderInternals: {
1102
1137
  };
1103
1138
  setConfig: (newLogLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
1104
1139
  type: "error" | "info" | "trace" | "verbose" | "warn";
1140
+ id: "log";
1105
1141
  };
1106
1142
  readonly timeoutInMilliseconds: {
1107
1143
  name: string;
@@ -1117,6 +1153,7 @@ export declare const RenderInternals: {
1117
1153
  value: number;
1118
1154
  };
1119
1155
  setConfig: (value: number) => void;
1156
+ id: "timeout";
1120
1157
  };
1121
1158
  readonly binariesDirectory: {
1122
1159
  name: string;
@@ -1132,6 +1169,7 @@ export declare const RenderInternals: {
1132
1169
  value: string | null;
1133
1170
  };
1134
1171
  setConfig: (value: string | null) => void;
1172
+ id: "binaries-directory";
1135
1173
  };
1136
1174
  readonly onBrowserDownload: {
1137
1175
  name: string;
@@ -1142,6 +1180,7 @@ export declare const RenderInternals: {
1142
1180
  type: import(".").OnBrowserDownload;
1143
1181
  getValue: () => never;
1144
1182
  setConfig: () => never;
1183
+ id: "on-browser-download";
1145
1184
  };
1146
1185
  readonly chromeMode: {
1147
1186
  cliFlag: "chrome-mode";
@@ -1157,6 +1196,7 @@ export declare const RenderInternals: {
1157
1196
  };
1158
1197
  setConfig: (newChromeMode: "chrome-for-testing" | "headless-shell") => void;
1159
1198
  type: "chrome-for-testing" | "headless-shell";
1199
+ id: "chrome-mode";
1160
1200
  };
1161
1201
  readonly imageSequencePattern: {
1162
1202
  name: string;
@@ -1172,6 +1212,7 @@ export declare const RenderInternals: {
1172
1212
  source: string;
1173
1213
  };
1174
1214
  setConfig: (pattern: string | null) => void;
1215
+ id: "image-sequence-pattern";
1175
1216
  };
1176
1217
  }>) => Promise<import("./types").RenderFramesOutput>;
1177
1218
  internalRenderMedia: (args_0: import("./render-media").InternalRenderMediaOptions) => Promise<{
@@ -1236,6 +1277,7 @@ export declare const RenderInternals: {
1236
1277
  };
1237
1278
  setConfig: (newLogLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
1238
1279
  type: "error" | "info" | "trace" | "verbose" | "warn";
1280
+ id: "log";
1239
1281
  };
1240
1282
  readonly onBrowserDownload: {
1241
1283
  name: string;
@@ -1246,6 +1288,7 @@ export declare const RenderInternals: {
1246
1288
  type: import(".").OnBrowserDownload;
1247
1289
  getValue: () => never;
1248
1290
  setConfig: () => never;
1291
+ id: "on-browser-download";
1249
1292
  };
1250
1293
  readonly chromeMode: {
1251
1294
  cliFlag: "chrome-mode";
@@ -1261,6 +1304,7 @@ export declare const RenderInternals: {
1261
1304
  };
1262
1305
  setConfig: (newChromeMode: "chrome-for-testing" | "headless-shell") => void;
1263
1306
  type: "chrome-for-testing" | "headless-shell";
1307
+ id: "chrome-mode";
1264
1308
  };
1265
1309
  }>) => Promise<import("./ensure-browser").BrowserStatus>;
1266
1310
  printUsefulErrorMessage: (err: Error, logLevel: "error" | "info" | "trace" | "verbose" | "warn", indent: boolean) => void;
@@ -1,5 +1,5 @@
1
1
  import type { CancelSignal } from './make-cancel-signal';
2
- export declare const muxVideoAndAudio: ({ videoOutput, audioOutput, output, indent, logLevel, onProgress, binariesDirectory, fps, cancelSignal, addFaststart, metadata, }: {
2
+ export declare const muxVideoAndAudio: ({ videoOutput, audioOutput, output, indent, logLevel, onProgress, binariesDirectory, fps, cancelSignal, addFaststart, metadata, numberOfGifLoops, }: {
3
3
  videoOutput: string | null;
4
4
  audioOutput: string | null;
5
5
  output: string;
@@ -11,4 +11,5 @@ export declare const muxVideoAndAudio: ({ videoOutput, audioOutput, output, inde
11
11
  cancelSignal: CancelSignal | undefined;
12
12
  addFaststart: boolean;
13
13
  metadata?: Record<string, string> | null | undefined;
14
+ numberOfGifLoops: number | null;
14
15
  }) => Promise<void>;
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.muxVideoAndAudio = void 0;
4
4
  const call_ffmpeg_1 = require("./call-ffmpeg");
5
+ const convert_number_of_gif_loops_to_ffmpeg_1 = require("./convert-number-of-gif-loops-to-ffmpeg");
5
6
  const logger_1 = require("./logger");
6
7
  const make_metadata_args_1 = require("./make-metadata-args");
7
8
  const parse_ffmpeg_progress_1 = require("./parse-ffmpeg-progress");
8
9
  const truthy_1 = require("./truthy");
9
- const muxVideoAndAudio = async ({ videoOutput, audioOutput, output, indent, logLevel, onProgress, binariesDirectory, fps, cancelSignal, addFaststart, metadata, }) => {
10
+ const muxVideoAndAudio = async ({ videoOutput, audioOutput, output, indent, logLevel, onProgress, binariesDirectory, fps, cancelSignal, addFaststart, metadata, numberOfGifLoops, }) => {
10
11
  var _a;
11
12
  const startTime = Date.now();
12
13
  logger_1.Log.verbose({ indent, logLevel }, 'Muxing video and audio together');
@@ -20,6 +21,10 @@ const muxVideoAndAudio = async ({ videoOutput, audioOutput, output, indent, logL
20
21
  videoOutput ? 'copy' : null,
21
22
  audioOutput ? '-c:a' : null,
22
23
  audioOutput ? 'copy' : null,
24
+ numberOfGifLoops === null ? null : '-loop',
25
+ numberOfGifLoops === null
26
+ ? null
27
+ : (0, convert_number_of_gif_loops_to_ffmpeg_1.convertNumberOfGifLoopsToFfmpegSyntax)(numberOfGifLoops),
23
28
  addFaststart ? '-movflags' : null,
24
29
  addFaststart ? 'faststart' : null,
25
30
  ...(0, make_metadata_args_1.makeMetadataArgs)(metadata !== null && metadata !== void 0 ? metadata : {}),
@@ -12,4 +12,5 @@ export declare const apiKeyOption: {
12
12
  value: string | null;
13
13
  };
14
14
  setConfig: (value: string | null) => void;
15
+ id: "api-key";
15
16
  };
@@ -28,4 +28,5 @@ exports.apiKeyOption = {
28
28
  setConfig: (value) => {
29
29
  currentApiKey = value;
30
30
  },
31
+ id: cliFlag,
31
32
  };
@@ -12,4 +12,5 @@ export declare const askAIOption: {
12
12
  source: string;
13
13
  };
14
14
  setConfig(value: boolean): void;
15
+ id: "disable-ask-ai";
15
16
  };
@@ -27,4 +27,5 @@ exports.askAIOption = {
27
27
  setConfig(value) {
28
28
  askAIEnabled = value;
29
29
  },
30
+ id: cliFlag,
30
31
  };
@@ -15,4 +15,5 @@ export declare const audioBitrateOption: {
15
15
  source: string;
16
16
  };
17
17
  setConfig: (value: string | null) => void;
18
+ id: "audio-bitrate";
18
19
  };
@@ -40,4 +40,5 @@ exports.audioBitrateOption = {
40
40
  setConfig: (value) => {
41
41
  audioBitrate = value;
42
42
  },
43
+ id: cliFlag,
43
44
  };
@@ -49,4 +49,5 @@ export declare const audioCodecOption: {
49
49
  name: string;
50
50
  ssrName: "audioCodec";
51
51
  type: "aac" | "mp3" | "opus" | "pcm-16";
52
+ id: "audio-codec";
52
53
  };
@@ -185,4 +185,5 @@ exports.audioCodecOption = {
185
185
  name: 'Audio Codec',
186
186
  ssrName,
187
187
  type: 'aac',
188
+ id: cliFlag,
188
189
  };
@@ -12,4 +12,5 @@ export declare const beepOnFinishOption: {
12
12
  source: string;
13
13
  };
14
14
  setConfig(value: boolean): void;
15
+ id: "beep-on-finish";
15
16
  };
@@ -32,4 +32,5 @@ exports.beepOnFinishOption = {
32
32
  setConfig(value) {
33
33
  beepOnFinish = value;
34
34
  },
35
+ id: cliFlag,
35
36
  };
@@ -12,4 +12,5 @@ export declare const binariesDirectoryOption: {
12
12
  value: string | null;
13
13
  };
14
14
  setConfig: (value: string | null) => void;
15
+ id: "binaries-directory";
15
16
  };
@@ -40,4 +40,5 @@ exports.binariesDirectoryOption = {
40
40
  setConfig: (value) => {
41
41
  currentDirectory = value;
42
42
  },
43
+ id: cliFlag,
43
44
  };
@@ -14,4 +14,5 @@ export declare const chromeModeOption: {
14
14
  };
15
15
  setConfig: (newChromeMode: "chrome-for-testing" | "headless-shell") => void;
16
16
  type: "chrome-for-testing" | "headless-shell";
17
+ id: "chrome-mode";
17
18
  };
@@ -48,4 +48,5 @@ exports.chromeModeOption = {
48
48
  configSelection = newChromeMode;
49
49
  },
50
50
  type: 'headless-shell',
51
+ id: cliFlag,
51
52
  };
@@ -1,4 +1,4 @@
1
- export declare const validColorSpaces: readonly ["default", "bt709", "bt2020-ncl"];
1
+ export declare const validColorSpaces: readonly ["default", "bt601", "bt709", "bt2020-ncl"];
2
2
  export type ColorSpace = (typeof validColorSpaces)[number];
3
3
  export declare const DEFAULT_COLOR_SPACE: "default";
4
4
  export declare const colorSpaceOption: {
@@ -7,13 +7,14 @@ export declare const colorSpaceOption: {
7
7
  description: () => import("react/jsx-runtime").JSX.Element;
8
8
  docLink: string;
9
9
  ssrName: string;
10
- type: "bt2020-ncl" | "bt709" | "default" | null;
10
+ type: "bt2020-ncl" | "bt601" | "bt709" | "default" | null;
11
11
  getValue: ({ commandLine }: {
12
12
  commandLine: Record<string, unknown>;
13
13
  }) => {
14
14
  source: string;
15
- value: "bt2020-ncl" | "bt709" | "default";
15
+ value: "bt2020-ncl" | "bt601" | "bt709" | "default";
16
16
  };
17
- setConfig: (value: "bt2020-ncl" | "bt709" | "default" | null) => void;
17
+ setConfig: (value: "bt2020-ncl" | "bt601" | "bt709" | "default" | null) => void;
18
+ id: "color-space";
18
19
  };
19
20
  export declare const validateColorSpace: (option: unknown) => void;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateColorSpace = exports.colorSpaceOption = exports.DEFAULT_COLOR_SPACE = exports.validColorSpaces = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const no_react_1 = require("remotion/no-react");
6
- const validV4ColorSpaces = ['default', 'bt709', 'bt2020-ncl'];
6
+ const validV4ColorSpaces = ['default', 'bt601', 'bt709', 'bt2020-ncl'];
7
7
  const validV5ColorSpaces = ['bt601', 'bt709', 'bt2020-ncl'];
8
8
  exports.validColorSpaces = (no_react_1.NoReactInternals.ENABLE_V5_BREAKING_CHANGES
9
9
  ? validV5ColorSpaces
@@ -16,7 +16,8 @@ exports.colorSpaceOption = {
16
16
  cliFlag: 'color-space',
17
17
  description: () => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: ["Color space to use for the video. Acceptable values:", ' ', jsx_runtime_1.jsxs("code", { children: ['"', exports.DEFAULT_COLOR_SPACE, '"'] }),
18
18
  "(default since 5.0),", ' ', no_react_1.NoReactInternals.ENABLE_V5_BREAKING_CHANGES ? (jsx_runtime_1.jsxs("code", { children: ['"', "bt601", '"', ', '] })) : (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
19
- jsx_runtime_1.jsxs("code", { children: ['"', "bt709", '"'] }), ' ', "(since v4.0.28),", ' '] })), jsx_runtime_1.jsxs("code", { children: ['"', "bt2020-ncl", '"'] }), ' ', "(since v4.0.88),", ' ', jsx_runtime_1.jsxs("code", { children: ['"', "bt2020-cl", '"'] }), ' ', "(since v4.0.88), .",
19
+ jsx_runtime_1.jsxs("code", { children: ['"', "bt601", '"'] }), ' ', "(same as", ' ', jsx_runtime_1.jsxs("code", { children: ['"', "default", '"'] }),
20
+ ", since v4.0.424),", ' ', jsx_runtime_1.jsxs("code", { children: ['"', "bt709", '"'] }), ' ', "(since v4.0.28),", ' '] })), jsx_runtime_1.jsxs("code", { children: ['"', "bt2020-ncl", '"'] }), ' ', "(since v4.0.88),", ' ', jsx_runtime_1.jsxs("code", { children: ['"', "bt2020-cl", '"'] }), ' ', "(since v4.0.88), .",
20
21
  jsx_runtime_1.jsx("br", {}),
21
22
  "For best color accuracy, it is recommended to also use", ' ', jsx_runtime_1.jsxs("code", { children: ['"', "png", '"'] }), ' ', "as the image format to have accurate color transformations throughout.",
22
23
  jsx_runtime_1.jsx("br", {}),
@@ -45,6 +46,7 @@ exports.colorSpaceOption = {
45
46
  setConfig: (value) => {
46
47
  colorSpace = value !== null && value !== void 0 ? value : exports.DEFAULT_COLOR_SPACE;
47
48
  },
49
+ id: cliFlag,
48
50
  };
49
51
  const validateColorSpace = (option) => {
50
52
  if (exports.validColorSpaces.includes(option)) {
@@ -14,4 +14,5 @@ export declare const crfOption: {
14
14
  value: Crf;
15
15
  };
16
16
  setConfig: (crf: Crf) => void;
17
+ id: "crf";
17
18
  };