@remotion/renderer 4.0.447 → 4.0.448

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 (51) hide show
  1. package/dist/assets/apply-tone-frequency.d.ts +2 -1
  2. package/dist/assets/apply-tone-frequency.js +3 -4
  3. package/dist/assets/download-map.d.ts +1 -1
  4. package/dist/assets/download-map.js +2 -2
  5. package/dist/assets/inline-audio-mixing.d.ts +3 -2
  6. package/dist/assets/inline-audio-mixing.js +9 -9
  7. package/dist/check-version-requirements.js +21 -0
  8. package/dist/client.d.ts +80 -0
  9. package/dist/combine-audio.d.ts +4 -3
  10. package/dist/combine-audio.js +14 -12
  11. package/dist/combine-chunks.d.ts +2 -1
  12. package/dist/combine-chunks.js +4 -2
  13. package/dist/create-audio.d.ts +2 -1
  14. package/dist/create-audio.js +4 -1
  15. package/dist/create-silent-audio.d.ts +2 -1
  16. package/dist/create-silent-audio.js +3 -4
  17. package/dist/esm/client.mjs +171 -125
  18. package/dist/esm/error-handling.mjs +4 -0
  19. package/dist/esm/index.mjs +191 -112
  20. package/dist/get-compositions.js +4 -1
  21. package/dist/get-extra-frames-to-capture.d.ts +2 -1
  22. package/dist/get-extra-frames-to-capture.js +5 -5
  23. package/dist/index.d.ts +22 -3
  24. package/dist/make-page.d.ts +2 -1
  25. package/dist/make-page.js +5 -2
  26. package/dist/merge-audio-track.d.ts +1 -0
  27. package/dist/merge-audio-track.js +4 -1
  28. package/dist/options/index.d.ts +16 -0
  29. package/dist/options/index.js +2 -0
  30. package/dist/options/options-map.d.ts +64 -0
  31. package/dist/options/options-map.js +5 -0
  32. package/dist/options/sample-rate.d.ts +16 -0
  33. package/dist/options/sample-rate.js +34 -0
  34. package/dist/prepare-server.d.ts +2 -1
  35. package/dist/prepare-server.js +2 -2
  36. package/dist/preprocess-audio-track.d.ts +1 -0
  37. package/dist/preprocess-audio-track.js +3 -3
  38. package/dist/print-useful-error-message.js +4 -0
  39. package/dist/render-frames.d.ts +1 -0
  40. package/dist/render-frames.js +9 -3
  41. package/dist/render-media.d.ts +1 -1
  42. package/dist/render-media.js +7 -3
  43. package/dist/render-still.js +5 -1
  44. package/dist/select-composition.js +4 -1
  45. package/dist/set-props-and-env.d.ts +1 -0
  46. package/dist/set-props-and-env.js +7 -3
  47. package/dist/stitch-frames-to-video.d.ts +3 -1
  48. package/dist/stitch-frames-to-video.js +4 -2
  49. package/dist/stringify-ffmpeg-filter.d.ts +2 -1
  50. package/dist/stringify-ffmpeg-filter.js +4 -5
  51. package/package.json +13 -13
@@ -4116,10 +4116,51 @@ var runsOption = {
4116
4116
  id: cliFlag75
4117
4117
  };
4118
4118
 
4119
- // src/options/scale.tsx
4119
+ // src/options/sample-rate.tsx
4120
4120
  import { jsx as jsx72, jsxs as jsxs48, Fragment as Fragment72 } from "react/jsx-runtime";
4121
+ var cliFlag76 = "sample-rate";
4122
+ var currentSampleRate = 48000;
4123
+ var sampleRateOption = {
4124
+ name: "Sample Rate",
4125
+ cliFlag: cliFlag76,
4126
+ description: () => /* @__PURE__ */ jsxs48(Fragment72, {
4127
+ children: [
4128
+ "Controls the sample rate of the output audio. The default is",
4129
+ " ",
4130
+ /* @__PURE__ */ jsx72("code", {
4131
+ children: "48000"
4132
+ }),
4133
+ " Hz. Match this to your source audio to avoid resampling artifacts."
4134
+ ]
4135
+ }),
4136
+ ssrName: "sampleRate",
4137
+ docLink: "https://www.remotion.dev/docs/sample-rate",
4138
+ type: 48000,
4139
+ getValue: ({ commandLine }, compositionSampleRate) => {
4140
+ if (commandLine[cliFlag76] !== undefined) {
4141
+ return { value: commandLine[cliFlag76], source: "cli" };
4142
+ }
4143
+ if (currentSampleRate !== 48000) {
4144
+ return { value: currentSampleRate, source: "config file" };
4145
+ }
4146
+ if (compositionSampleRate) {
4147
+ return {
4148
+ value: compositionSampleRate,
4149
+ source: "via calculateMetadata"
4150
+ };
4151
+ }
4152
+ return { value: 48000, source: "default" };
4153
+ },
4154
+ setConfig: (value3) => {
4155
+ currentSampleRate = value3;
4156
+ },
4157
+ id: cliFlag76
4158
+ };
4159
+
4160
+ // src/options/scale.tsx
4161
+ import { jsx as jsx73, jsxs as jsxs49, Fragment as Fragment73 } from "react/jsx-runtime";
4121
4162
  var currentScale = 1;
4122
- var cliFlag76 = "scale";
4163
+ var cliFlag77 = "scale";
4123
4164
  var validateScale = (value3) => {
4124
4165
  if (typeof value3 !== "number") {
4125
4166
  throw new Error("scale must be a number.");
@@ -4127,15 +4168,15 @@ var validateScale = (value3) => {
4127
4168
  };
4128
4169
  var scaleOption = {
4129
4170
  name: "Scale",
4130
- cliFlag: cliFlag76,
4131
- description: () => /* @__PURE__ */ jsxs48(Fragment72, {
4171
+ cliFlag: cliFlag77,
4172
+ description: () => /* @__PURE__ */ jsxs49(Fragment73, {
4132
4173
  children: [
4133
4174
  "Scales the output dimensions by a factor. For example, a 1280x720px frame will become a 1920x1080px frame with a scale factor of ",
4134
- /* @__PURE__ */ jsx72("code", {
4175
+ /* @__PURE__ */ jsx73("code", {
4135
4176
  children: "1.5"
4136
4177
  }),
4137
4178
  ". See ",
4138
- /* @__PURE__ */ jsx72("a", {
4179
+ /* @__PURE__ */ jsx73("a", {
4139
4180
  href: "https://www.remotion.dev/docs/scaling",
4140
4181
  children: "Scaling"
4141
4182
  }),
@@ -4146,11 +4187,11 @@ var scaleOption = {
4146
4187
  docLink: "https://www.remotion.dev/docs/scaling",
4147
4188
  type: 0,
4148
4189
  getValue: ({ commandLine }) => {
4149
- if (commandLine[cliFlag76] !== undefined) {
4150
- validateScale(commandLine[cliFlag76]);
4190
+ if (commandLine[cliFlag77] !== undefined) {
4191
+ validateScale(commandLine[cliFlag77]);
4151
4192
  return {
4152
4193
  source: "cli",
4153
- value: commandLine[cliFlag76]
4194
+ value: commandLine[cliFlag77]
4154
4195
  };
4155
4196
  }
4156
4197
  if (currentScale !== null) {
@@ -4167,13 +4208,13 @@ var scaleOption = {
4167
4208
  setConfig: (scale) => {
4168
4209
  currentScale = scale;
4169
4210
  },
4170
- id: cliFlag76
4211
+ id: cliFlag77
4171
4212
  };
4172
4213
 
4173
4214
  // src/options/still-frame.tsx
4174
4215
  import { NoReactInternals as NoReactInternals3 } from "remotion/no-react";
4175
- import { jsx as jsx73, jsxs as jsxs49, Fragment as Fragment73 } from "react/jsx-runtime";
4176
- var cliFlag77 = "frame";
4216
+ import { jsx as jsx74, jsxs as jsxs50, Fragment as Fragment74 } from "react/jsx-runtime";
4217
+ var cliFlag78 = "frame";
4177
4218
  var currentFrame = null;
4178
4219
  var validate3 = (frame) => {
4179
4220
  NoReactInternals3.validateFrame({
@@ -4184,17 +4225,17 @@ var validate3 = (frame) => {
4184
4225
  };
4185
4226
  var stillFrameOption = {
4186
4227
  name: "Frame",
4187
- cliFlag: cliFlag77,
4188
- description: () => /* @__PURE__ */ jsxs49(Fragment73, {
4228
+ cliFlag: cliFlag78,
4229
+ description: () => /* @__PURE__ */ jsxs50(Fragment74, {
4189
4230
  children: [
4190
4231
  "Which frame should be rendered when rendering a still. Default",
4191
4232
  " ",
4192
- /* @__PURE__ */ jsx73("code", {
4233
+ /* @__PURE__ */ jsx74("code", {
4193
4234
  children: "0"
4194
4235
  }),
4195
4236
  ". From v3.2.27, negative values are allowed, with",
4196
4237
  " ",
4197
- /* @__PURE__ */ jsx73("code", {
4238
+ /* @__PURE__ */ jsx74("code", {
4198
4239
  children: "-1"
4199
4240
  }),
4200
4241
  " being the last frame."
@@ -4203,8 +4244,8 @@ var stillFrameOption = {
4203
4244
  ssrName: "frame",
4204
4245
  docLink: "https://www.remotion.dev/docs/cli/still#--frame",
4205
4246
  getValue: ({ commandLine }) => {
4206
- if (commandLine[cliFlag77] !== undefined) {
4207
- const frame = Number(commandLine[cliFlag77]);
4247
+ if (commandLine[cliFlag78] !== undefined) {
4248
+ const frame = Number(commandLine[cliFlag78]);
4208
4249
  validate3(frame);
4209
4250
  return {
4210
4251
  source: "cli",
@@ -4229,24 +4270,24 @@ var stillFrameOption = {
4229
4270
  currentFrame = value3;
4230
4271
  },
4231
4272
  type: 0,
4232
- id: cliFlag77
4273
+ id: cliFlag78
4233
4274
  };
4234
4275
 
4235
4276
  // src/options/still-image-format.tsx
4236
- import { jsx as jsx74, jsxs as jsxs50, Fragment as Fragment74 } from "react/jsx-runtime";
4277
+ import { jsx as jsx75, jsxs as jsxs51, Fragment as Fragment75 } from "react/jsx-runtime";
4237
4278
  var currentStillImageFormat = null;
4238
- var cliFlag78 = "image-format";
4279
+ var cliFlag79 = "image-format";
4239
4280
  var stillImageFormatOption = {
4240
4281
  name: "Still Image Format",
4241
- cliFlag: cliFlag78,
4242
- description: () => /* @__PURE__ */ jsxs50(Fragment74, {
4282
+ cliFlag: cliFlag79,
4283
+ description: () => /* @__PURE__ */ jsxs51(Fragment75, {
4243
4284
  children: [
4244
4285
  "The image format to use when rendering a still. Must be one of",
4245
4286
  " ",
4246
4287
  validStillImageFormats.map((f) => `"${f}"`).join(", "),
4247
4288
  ". Default:",
4248
4289
  " ",
4249
- /* @__PURE__ */ jsx74("code", {
4290
+ /* @__PURE__ */ jsx75("code", {
4250
4291
  children: '"png"'
4251
4292
  }),
4252
4293
  "."
@@ -4256,8 +4297,8 @@ var stillImageFormatOption = {
4256
4297
  docLink: "https://www.remotion.dev/docs/renderer/render-still#imageformat",
4257
4298
  type: null,
4258
4299
  getValue: ({ commandLine }) => {
4259
- if (commandLine[cliFlag78] !== undefined) {
4260
- const value3 = commandLine[cliFlag78];
4300
+ if (commandLine[cliFlag79] !== undefined) {
4301
+ const value3 = commandLine[cliFlag79];
4261
4302
  if (!validStillImageFormats.includes(value3)) {
4262
4303
  throw new Error(`Invalid still image format: ${value3}. Must be one of: ${validStillImageFormats.join(", ")}`);
4263
4304
  }
@@ -4295,16 +4336,16 @@ var stillImageFormatOption = {
4295
4336
 
4296
4337
  // src/options/throw-if-site-exists.tsx
4297
4338
  var DEFAULT5 = false;
4298
- var cliFlag79 = "throw-if-site-exists";
4339
+ var cliFlag80 = "throw-if-site-exists";
4299
4340
  var throwIfSiteExistsOption = {
4300
- cliFlag: cliFlag79,
4341
+ cliFlag: cliFlag80,
4301
4342
  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.`,
4302
4343
  docLink: "https://remotion.dev/docs/lambda/deploy-site",
4303
4344
  getValue: ({ commandLine }) => {
4304
- if (commandLine[cliFlag79]) {
4345
+ if (commandLine[cliFlag80]) {
4305
4346
  return {
4306
4347
  source: "cli",
4307
- value: commandLine[cliFlag79]
4348
+ value: commandLine[cliFlag80]
4308
4349
  };
4309
4350
  }
4310
4351
  return {
@@ -4318,41 +4359,41 @@ var throwIfSiteExistsOption = {
4318
4359
  },
4319
4360
  ssrName: "throwIfSiteExists",
4320
4361
  type: false,
4321
- id: cliFlag79
4362
+ id: cliFlag80
4322
4363
  };
4323
4364
 
4324
4365
  // src/options/timeout.tsx
4325
- import { jsx as jsx75, jsxs as jsxs51, Fragment as Fragment75 } from "react/jsx-runtime";
4366
+ import { jsx as jsx76, jsxs as jsxs52, Fragment as Fragment76 } from "react/jsx-runtime";
4326
4367
  var currentTimeout = DEFAULT_TIMEOUT;
4327
4368
  var validate4 = (value3) => {
4328
4369
  if (typeof value3 !== "number") {
4329
4370
  throw new Error("--timeout flag / setDelayRenderTimeoutInMilliseconds() must be a number, but got " + JSON.stringify(value3));
4330
4371
  }
4331
4372
  };
4332
- var cliFlag80 = "timeout";
4373
+ var cliFlag81 = "timeout";
4333
4374
  var delayRenderTimeoutInMillisecondsOption = {
4334
4375
  name: "delayRender() timeout",
4335
- cliFlag: cliFlag80,
4336
- description: () => /* @__PURE__ */ jsxs51(Fragment75, {
4376
+ cliFlag: cliFlag81,
4377
+ description: () => /* @__PURE__ */ jsxs52(Fragment76, {
4337
4378
  children: [
4338
4379
  "A number describing how long the render may take to resolve all",
4339
4380
  " ",
4340
- /* @__PURE__ */ jsx75("a", {
4381
+ /* @__PURE__ */ jsx76("a", {
4341
4382
  href: "https://remotion.dev/docs/delay-render",
4342
- children: /* @__PURE__ */ jsx75("code", {
4383
+ children: /* @__PURE__ */ jsx76("code", {
4343
4384
  children: "delayRender()"
4344
4385
  })
4345
4386
  }),
4346
4387
  " ",
4347
4388
  "calls",
4348
4389
  " ",
4349
- /* @__PURE__ */ jsx75("a", {
4390
+ /* @__PURE__ */ jsx76("a", {
4350
4391
  style: { fontSize: "inherit" },
4351
4392
  href: "https://remotion.dev/docs/timeout",
4352
4393
  children: "before it times out"
4353
4394
  }),
4354
4395
  ". Default: ",
4355
- /* @__PURE__ */ jsx75("code", {
4396
+ /* @__PURE__ */ jsx76("code", {
4356
4397
  children: "30000"
4357
4398
  })
4358
4399
  ]
@@ -4361,10 +4402,10 @@ var delayRenderTimeoutInMillisecondsOption = {
4361
4402
  docLink: "https://www.remotion.dev/docs/timeout",
4362
4403
  type: 0,
4363
4404
  getValue: ({ commandLine }) => {
4364
- if (commandLine[cliFlag80] !== undefined) {
4405
+ if (commandLine[cliFlag81] !== undefined) {
4365
4406
  return {
4366
4407
  source: "cli",
4367
- value: commandLine[cliFlag80]
4408
+ value: commandLine[cliFlag81]
4368
4409
  };
4369
4410
  }
4370
4411
  if (currentTimeout !== null) {
@@ -4383,27 +4424,27 @@ var delayRenderTimeoutInMillisecondsOption = {
4383
4424
  validate4(value3);
4384
4425
  currentTimeout = value3;
4385
4426
  },
4386
- id: cliFlag80
4427
+ id: cliFlag81
4387
4428
  };
4388
4429
 
4389
4430
  // src/options/user-agent.tsx
4390
- import { jsx as jsx76, Fragment as Fragment76 } from "react/jsx-runtime";
4431
+ import { jsx as jsx77, Fragment as Fragment77 } from "react/jsx-runtime";
4391
4432
  var userAgent = null;
4392
- var cliFlag81 = "user-agent";
4433
+ var cliFlag82 = "user-agent";
4393
4434
  var userAgentOption = {
4394
4435
  name: "User agent",
4395
- cliFlag: cliFlag81,
4396
- description: () => /* @__PURE__ */ jsx76(Fragment76, {
4436
+ cliFlag: cliFlag82,
4437
+ description: () => /* @__PURE__ */ jsx77(Fragment77, {
4397
4438
  children: "Lets you set a custom user agent that the headless Chrome browser assumes."
4398
4439
  }),
4399
4440
  ssrName: "userAgent",
4400
4441
  docLink: "https://www.remotion.dev/docs/chromium-flags#--user-agent",
4401
4442
  type: null,
4402
4443
  getValue: ({ commandLine }) => {
4403
- if (commandLine[cliFlag81] !== undefined) {
4444
+ if (commandLine[cliFlag82] !== undefined) {
4404
4445
  return {
4405
4446
  source: "cli",
4406
- value: commandLine[cliFlag81]
4447
+ value: commandLine[cliFlag82]
4407
4448
  };
4408
4449
  }
4409
4450
  if (userAgent !== null) {
@@ -4420,25 +4461,25 @@ var userAgentOption = {
4420
4461
  setConfig: (value3) => {
4421
4462
  userAgent = value3;
4422
4463
  },
4423
- id: cliFlag81
4464
+ id: cliFlag82
4424
4465
  };
4425
4466
 
4426
4467
  // src/options/version-flag.tsx
4427
- import { jsx as jsx77, Fragment as Fragment77 } from "react/jsx-runtime";
4428
- var cliFlag82 = "version";
4468
+ import { jsx as jsx78, Fragment as Fragment78 } from "react/jsx-runtime";
4469
+ var cliFlag83 = "version";
4429
4470
  var versionFlagOption = {
4430
4471
  name: "Version",
4431
- cliFlag: cliFlag82,
4432
- description: () => /* @__PURE__ */ jsx77(Fragment77, {
4472
+ cliFlag: cliFlag83,
4473
+ description: () => /* @__PURE__ */ jsx78(Fragment78, {
4433
4474
  children: "Install a specific version. Also enables downgrading to an older version."
4434
4475
  }),
4435
4476
  ssrName: null,
4436
4477
  docLink: "https://www.remotion.dev/docs/cli/upgrade#--version",
4437
4478
  getValue: ({ commandLine }) => {
4438
- if (commandLine[cliFlag82] !== undefined) {
4479
+ if (commandLine[cliFlag83] !== undefined) {
4439
4480
  return {
4440
4481
  source: "cli",
4441
- value: String(commandLine[cliFlag82])
4482
+ value: String(commandLine[cliFlag83])
4442
4483
  };
4443
4484
  }
4444
4485
  return {
@@ -4450,30 +4491,30 @@ var versionFlagOption = {
4450
4491
  throw new Error("Cannot set version via config file");
4451
4492
  },
4452
4493
  type: "",
4453
- id: cliFlag82
4494
+ id: cliFlag83
4454
4495
  };
4455
4496
 
4456
4497
  // src/options/video-bitrate.tsx
4457
- import { jsx as jsx78, jsxs as jsxs52, Fragment as Fragment78 } from "react/jsx-runtime";
4498
+ import { jsx as jsx79, jsxs as jsxs53, Fragment as Fragment79 } from "react/jsx-runtime";
4458
4499
  var videoBitrate = null;
4459
- var cliFlag83 = "video-bitrate";
4500
+ var cliFlag84 = "video-bitrate";
4460
4501
  var videoBitrateOption = {
4461
4502
  name: "Video Bitrate",
4462
- cliFlag: cliFlag83,
4463
- description: () => /* @__PURE__ */ jsxs52(Fragment78, {
4503
+ cliFlag: cliFlag84,
4504
+ description: () => /* @__PURE__ */ jsxs53(Fragment79, {
4464
4505
  children: [
4465
4506
  "Specify the target bitrate for the generated video. The syntax for FFmpeg",
4466
4507
  "'",
4467
4508
  "s",
4468
- /* @__PURE__ */ jsx78("code", {
4509
+ /* @__PURE__ */ jsx79("code", {
4469
4510
  children: "-b:v"
4470
4511
  }),
4471
4512
  " parameter should be used. FFmpeg may encode the video in a way that will not result in the exact video bitrate specified. Example values: ",
4472
- /* @__PURE__ */ jsx78("code", {
4513
+ /* @__PURE__ */ jsx79("code", {
4473
4514
  children: "512K"
4474
4515
  }),
4475
4516
  " for 512 kbps, ",
4476
- /* @__PURE__ */ jsx78("code", {
4517
+ /* @__PURE__ */ jsx79("code", {
4477
4518
  children: "1M"
4478
4519
  }),
4479
4520
  " for 1 Mbps."
@@ -4483,10 +4524,10 @@ var videoBitrateOption = {
4483
4524
  docLink: "https://www.remotion.dev/docs/renderer/render-media#videobitrate",
4484
4525
  type: "",
4485
4526
  getValue: ({ commandLine }) => {
4486
- if (commandLine[cliFlag83] !== undefined) {
4527
+ if (commandLine[cliFlag84] !== undefined) {
4487
4528
  return {
4488
4529
  source: "cli",
4489
- value: commandLine[cliFlag83]
4530
+ value: commandLine[cliFlag84]
4490
4531
  };
4491
4532
  }
4492
4533
  if (videoBitrate !== null) {
@@ -4503,33 +4544,33 @@ var videoBitrateOption = {
4503
4544
  setConfig: (bitrate) => {
4504
4545
  videoBitrate = bitrate;
4505
4546
  },
4506
- id: cliFlag83
4547
+ id: cliFlag84
4507
4548
  };
4508
4549
 
4509
4550
  // src/options/video-cache-size.tsx
4510
- import { jsx as jsx79, jsxs as jsxs53, Fragment as Fragment79 } from "react/jsx-runtime";
4551
+ import { jsx as jsx80, jsxs as jsxs54, Fragment as Fragment80 } from "react/jsx-runtime";
4511
4552
  var mediaCacheSizeInBytes = null;
4512
- var cliFlag84 = "media-cache-size-in-bytes";
4553
+ var cliFlag85 = "media-cache-size-in-bytes";
4513
4554
  var mediaCacheSizeInBytesOption = {
4514
4555
  name: "@remotion/media cache size",
4515
- cliFlag: cliFlag84,
4516
- description: () => /* @__PURE__ */ jsxs53(Fragment79, {
4556
+ cliFlag: cliFlag85,
4557
+ description: () => /* @__PURE__ */ jsxs54(Fragment80, {
4517
4558
  children: [
4518
4559
  "Specify the maximum size of the cache that ",
4519
- /* @__PURE__ */ jsx79("code", {
4560
+ /* @__PURE__ */ jsx80("code", {
4520
4561
  children: "<Video>"
4521
4562
  }),
4522
4563
  " and",
4523
4564
  " ",
4524
- /* @__PURE__ */ jsx79("code", {
4565
+ /* @__PURE__ */ jsx80("code", {
4525
4566
  children: "<Audio>"
4526
4567
  }),
4527
4568
  " from ",
4528
- /* @__PURE__ */ jsx79("code", {
4569
+ /* @__PURE__ */ jsx80("code", {
4529
4570
  children: "@remotion/media"
4530
4571
  }),
4531
4572
  " may use combined, in bytes. ",
4532
- /* @__PURE__ */ jsx79("br", {}),
4573
+ /* @__PURE__ */ jsx80("br", {}),
4533
4574
  "The default is half of the available system memory when the render starts."
4534
4575
  ]
4535
4576
  }),
@@ -4537,10 +4578,10 @@ var mediaCacheSizeInBytesOption = {
4537
4578
  docLink: "https://www.remotion.dev/docs/media/video#setting-the-cache-size",
4538
4579
  type: 0,
4539
4580
  getValue: ({ commandLine }) => {
4540
- if (commandLine[cliFlag84] !== undefined) {
4581
+ if (commandLine[cliFlag85] !== undefined) {
4541
4582
  return {
4542
4583
  source: "cli",
4543
- value: commandLine[cliFlag84]
4584
+ value: commandLine[cliFlag85]
4544
4585
  };
4545
4586
  }
4546
4587
  if (mediaCacheSizeInBytes !== null) {
@@ -4557,7 +4598,7 @@ var mediaCacheSizeInBytesOption = {
4557
4598
  setConfig: (size) => {
4558
4599
  mediaCacheSizeInBytes = size ?? null;
4559
4600
  },
4560
- id: cliFlag84
4601
+ id: cliFlag85
4561
4602
  };
4562
4603
 
4563
4604
  // src/path-normalize.ts
@@ -4676,7 +4717,7 @@ var getExtensionOfFilename = (filename) => {
4676
4717
  };
4677
4718
 
4678
4719
  // src/options/video-codec.tsx
4679
- import { jsx as jsx80, Fragment as Fragment80 } from "react/jsx-runtime";
4720
+ import { jsx as jsx81, Fragment as Fragment81 } from "react/jsx-runtime";
4680
4721
  var codec;
4681
4722
  var setCodec = (newCodec) => {
4682
4723
  if (newCodec === undefined) {
@@ -4700,11 +4741,11 @@ var deriveCodecsFromFilename = (extension) => {
4700
4741
  possible: makeFileExtensionMap()[extension] ?? []
4701
4742
  };
4702
4743
  };
4703
- var cliFlag85 = "codec";
4744
+ var cliFlag86 = "codec";
4704
4745
  var videoCodecOption = {
4705
4746
  name: "Codec",
4706
- cliFlag: cliFlag85,
4707
- description: () => /* @__PURE__ */ jsx80(Fragment80, {
4747
+ cliFlag: cliFlag86,
4748
+ description: () => /* @__PURE__ */ jsx81(Fragment81, {
4708
4749
  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."
4709
4750
  }),
4710
4751
  ssrName: "codec",
@@ -4727,7 +4768,7 @@ var videoCodecOption = {
4727
4768
  if (derivedDownloadCodecs.possible.length > 0 && derivedOutNameCodecs.possible.length > 0 && derivedDownloadCodecs.possible.join("") !== derivedOutNameCodecs.possible.join("")) {
4728
4769
  throw new TypeError(`The download name is ${downloadName} but the output name is ${outName}. The file extensions must match`);
4729
4770
  }
4730
- const cliArgument = commandLine[cliFlag85];
4771
+ const cliArgument = commandLine[cliFlag86];
4731
4772
  if (cliArgument) {
4732
4773
  if (derivedDownloadCodecs.possible.length > 0 && derivedDownloadCodecs.possible.indexOf(cliArgument) === -1) {
4733
4774
  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.`);
@@ -4773,24 +4814,24 @@ var videoCodecOption = {
4773
4814
  return { value: DEFAULT_CODEC, source: "default" };
4774
4815
  },
4775
4816
  setConfig: setCodec,
4776
- id: cliFlag85
4817
+ id: cliFlag86
4777
4818
  };
4778
4819
 
4779
4820
  // src/options/video-image-format.tsx
4780
- import { jsx as jsx81, jsxs as jsxs54, Fragment as Fragment81 } from "react/jsx-runtime";
4821
+ import { jsx as jsx82, jsxs as jsxs55, Fragment as Fragment82 } from "react/jsx-runtime";
4781
4822
  var currentVideoImageFormat = null;
4782
- var cliFlag86 = "image-format";
4823
+ var cliFlag87 = "image-format";
4783
4824
  var videoImageFormatOption = {
4784
4825
  name: "Video Image Format",
4785
- cliFlag: cliFlag86,
4786
- description: () => /* @__PURE__ */ jsxs54(Fragment81, {
4826
+ cliFlag: cliFlag87,
4827
+ description: () => /* @__PURE__ */ jsxs55(Fragment82, {
4787
4828
  children: [
4788
4829
  "The image format to use when rendering frames for a video. Must be one of",
4789
4830
  " ",
4790
4831
  validVideoImageFormats.map((f) => `"${f}"`).join(", "),
4791
4832
  ". Default:",
4792
4833
  " ",
4793
- /* @__PURE__ */ jsx81("code", {
4834
+ /* @__PURE__ */ jsx82("code", {
4794
4835
  children: '"jpeg"'
4795
4836
  }),
4796
4837
  ". JPEG is faster, but does not support transparency."
@@ -4800,8 +4841,8 @@ var videoImageFormatOption = {
4800
4841
  docLink: "https://www.remotion.dev/docs/renderer/render-media#imageformat",
4801
4842
  type: null,
4802
4843
  getValue: ({ commandLine }) => {
4803
- if (commandLine[cliFlag86] !== undefined) {
4804
- const value3 = commandLine[cliFlag86];
4844
+ if (commandLine[cliFlag87] !== undefined) {
4845
+ const value3 = commandLine[cliFlag87];
4805
4846
  if (!validVideoImageFormats.includes(value3)) {
4806
4847
  throw new Error(`Invalid video image format: ${value3}. Must be one of: ${validVideoImageFormats.join(", ")}`);
4807
4848
  }
@@ -4838,12 +4879,12 @@ var videoImageFormatOption = {
4838
4879
  };
4839
4880
 
4840
4881
  // src/options/webhook-custom-data.tsx
4841
- import { jsxs as jsxs55, Fragment as Fragment82 } from "react/jsx-runtime";
4842
- var cliFlag87 = "webhook-custom-data";
4882
+ import { jsxs as jsxs56, Fragment as Fragment83 } from "react/jsx-runtime";
4883
+ var cliFlag88 = "webhook-custom-data";
4843
4884
  var webhookCustomDataOption = {
4844
4885
  name: "Webhook custom data",
4845
- cliFlag: cliFlag87,
4846
- description: (type) => /* @__PURE__ */ jsxs55(Fragment82, {
4886
+ cliFlag: cliFlag88,
4887
+ description: (type) => /* @__PURE__ */ jsxs56(Fragment83, {
4847
4888
  children: [
4848
4889
  "Pass up to 1,024 bytes of a JSON-serializable object to the webhook. This data will be included in the webhook payload.",
4849
4890
  " ",
@@ -4859,24 +4900,24 @@ var webhookCustomDataOption = {
4859
4900
  setConfig: () => {
4860
4901
  throw new Error("Not implemented");
4861
4902
  },
4862
- id: cliFlag87
4903
+ id: cliFlag88
4863
4904
  };
4864
4905
 
4865
4906
  // src/options/webpack-poll.tsx
4866
- import { jsx as jsx82, Fragment as Fragment83 } from "react/jsx-runtime";
4867
- var cliFlag88 = "webpack-poll";
4907
+ import { jsx as jsx83, Fragment as Fragment84 } from "react/jsx-runtime";
4908
+ var cliFlag89 = "webpack-poll";
4868
4909
  var webpackPolling = null;
4869
4910
  var webpackPollOption = {
4870
4911
  name: "Webpack Polling",
4871
- cliFlag: cliFlag88,
4872
- description: () => /* @__PURE__ */ jsx82(Fragment83, {
4912
+ cliFlag: cliFlag89,
4913
+ description: () => /* @__PURE__ */ jsx83(Fragment84, {
4873
4914
  children: "Enables Webpack polling instead of the file system event listeners for hot reloading. This is useful if you are inside a virtual machine or have a remote file system. Pass a value in milliseconds."
4874
4915
  }),
4875
4916
  ssrName: null,
4876
4917
  docLink: "https://www.remotion.dev/docs/config#setwebpackpollinginmilliseconds",
4877
4918
  getValue: ({ commandLine }) => {
4878
- if (commandLine[cliFlag88] !== undefined) {
4879
- const val = commandLine[cliFlag88];
4919
+ if (commandLine[cliFlag89] !== undefined) {
4920
+ const val = commandLine[cliFlag89];
4880
4921
  if (typeof val !== "number") {
4881
4922
  throw new TypeError(`Webpack polling must be a number, got ${JSON.stringify(val)}`);
4882
4923
  }
@@ -4903,11 +4944,11 @@ var webpackPollOption = {
4903
4944
  webpackPolling = value3;
4904
4945
  },
4905
4946
  type: 0,
4906
- id: cliFlag88
4947
+ id: cliFlag89
4907
4948
  };
4908
4949
 
4909
4950
  // src/options/x264-preset.tsx
4910
- import { jsx as jsx83, jsxs as jsxs56, Fragment as Fragment84 } from "react/jsx-runtime";
4951
+ import { jsx as jsx84, jsxs as jsxs57, Fragment as Fragment85 } from "react/jsx-runtime";
4911
4952
  var x264PresetOptions = [
4912
4953
  "ultrafast",
4913
4954
  "superfast",
@@ -4921,63 +4962,63 @@ var x264PresetOptions = [
4921
4962
  "placebo"
4922
4963
  ];
4923
4964
  var preset = null;
4924
- var cliFlag89 = "x264-preset";
4965
+ var cliFlag90 = "x264-preset";
4925
4966
  var DEFAULT_PRESET = "medium";
4926
4967
  var x264Option = {
4927
4968
  name: "x264 Preset",
4928
- cliFlag: cliFlag89,
4929
- description: () => /* @__PURE__ */ jsxs56(Fragment84, {
4969
+ cliFlag: cliFlag90,
4970
+ description: () => /* @__PURE__ */ jsxs57(Fragment85, {
4930
4971
  children: [
4931
4972
  "Sets a x264 preset profile. Only applies to videos rendered with",
4932
4973
  " ",
4933
- /* @__PURE__ */ jsx83("code", {
4974
+ /* @__PURE__ */ jsx84("code", {
4934
4975
  children: "h264"
4935
4976
  }),
4936
4977
  " codec.",
4937
- /* @__PURE__ */ jsx83("br", {}),
4978
+ /* @__PURE__ */ jsx84("br", {}),
4938
4979
  "Possible values: ",
4939
- /* @__PURE__ */ jsx83("code", {
4980
+ /* @__PURE__ */ jsx84("code", {
4940
4981
  children: "superfast"
4941
4982
  }),
4942
4983
  ", ",
4943
- /* @__PURE__ */ jsx83("code", {
4984
+ /* @__PURE__ */ jsx84("code", {
4944
4985
  children: "veryfast"
4945
4986
  }),
4946
4987
  ",",
4947
4988
  " ",
4948
- /* @__PURE__ */ jsx83("code", {
4989
+ /* @__PURE__ */ jsx84("code", {
4949
4990
  children: "faster"
4950
4991
  }),
4951
4992
  ", ",
4952
- /* @__PURE__ */ jsx83("code", {
4993
+ /* @__PURE__ */ jsx84("code", {
4953
4994
  children: "fast"
4954
4995
  }),
4955
4996
  ", ",
4956
- /* @__PURE__ */ jsx83("code", {
4997
+ /* @__PURE__ */ jsx84("code", {
4957
4998
  children: "medium"
4958
4999
  }),
4959
5000
  ",",
4960
5001
  " ",
4961
- /* @__PURE__ */ jsx83("code", {
5002
+ /* @__PURE__ */ jsx84("code", {
4962
5003
  children: "slow"
4963
5004
  }),
4964
5005
  ", ",
4965
- /* @__PURE__ */ jsx83("code", {
5006
+ /* @__PURE__ */ jsx84("code", {
4966
5007
  children: "slower"
4967
5008
  }),
4968
5009
  ", ",
4969
- /* @__PURE__ */ jsx83("code", {
5010
+ /* @__PURE__ */ jsx84("code", {
4970
5011
  children: "veryslow"
4971
5012
  }),
4972
5013
  ",",
4973
5014
  " ",
4974
- /* @__PURE__ */ jsx83("code", {
5015
+ /* @__PURE__ */ jsx84("code", {
4975
5016
  children: "placebo"
4976
5017
  }),
4977
5018
  ".",
4978
- /* @__PURE__ */ jsx83("br", {}),
5019
+ /* @__PURE__ */ jsx84("br", {}),
4979
5020
  "Default: ",
4980
- /* @__PURE__ */ jsx83("code", {
5021
+ /* @__PURE__ */ jsx84("code", {
4981
5022
  children: DEFAULT_PRESET
4982
5023
  })
4983
5024
  ]
@@ -4986,7 +5027,7 @@ var x264Option = {
4986
5027
  docLink: "https://www.remotion.dev/docs/renderer/render-media",
4987
5028
  type: "fast",
4988
5029
  getValue: ({ commandLine }) => {
4989
- const value3 = commandLine[cliFlag89];
5030
+ const value3 = commandLine[cliFlag90];
4990
5031
  if (typeof value3 !== "undefined") {
4991
5032
  return { value: value3, source: "cli" };
4992
5033
  }
@@ -4998,7 +5039,7 @@ var x264Option = {
4998
5039
  setConfig: (profile) => {
4999
5040
  preset = profile;
5000
5041
  },
5001
- id: cliFlag89
5042
+ id: cliFlag90
5002
5043
  };
5003
5044
 
5004
5045
  // src/options/index.tsx
@@ -5082,6 +5123,7 @@ var allOptions = {
5082
5123
  rspackOption,
5083
5124
  outDirOption,
5084
5125
  packageManagerOption,
5126
+ sampleRateOption,
5085
5127
  webpackPollOption,
5086
5128
  stillFrameOption,
5087
5129
  imageSequenceOption,
@@ -5121,7 +5163,8 @@ var optionsMap = {
5121
5163
  onBrowserDownload: onBrowserDownloadOption,
5122
5164
  hardwareAcceleration: hardwareAccelerationOption,
5123
5165
  chromeMode: chromeModeOption,
5124
- licenseKey: licenseKeyOption
5166
+ licenseKey: licenseKeyOption,
5167
+ sampleRate: sampleRateOption
5125
5168
  },
5126
5169
  stitchFramesToVideo: {
5127
5170
  separateAudioTo: separateAudioOption,
@@ -5171,7 +5214,8 @@ var optionsMap = {
5171
5214
  binariesDirectory: binariesDirectoryOption,
5172
5215
  onBrowserDownload: onBrowserDownloadOption,
5173
5216
  chromeMode: chromeModeOption,
5174
- imageSequencePattern: imageSequencePatternOption
5217
+ imageSequencePattern: imageSequencePatternOption,
5218
+ sampleRate: sampleRateOption
5175
5219
  },
5176
5220
  renderMediaOnLambda: {
5177
5221
  mediaCacheSizeInBytes: mediaCacheSizeInBytesOption,
@@ -5190,7 +5234,8 @@ var optionsMap = {
5190
5234
  logLevel: logLevelOption,
5191
5235
  timeoutInMilliseconds: delayRenderTimeoutInMillisecondsOption,
5192
5236
  apiKey: apiKeyOption,
5193
- licenseKey: licenseKeyOption
5237
+ licenseKey: licenseKeyOption,
5238
+ sampleRate: sampleRateOption
5194
5239
  },
5195
5240
  renderStillOnLambda: {
5196
5241
  mediaCacheSizeInBytes: mediaCacheSizeInBytesOption,
@@ -5228,7 +5273,8 @@ var optionsMap = {
5228
5273
  enforceAudioTrack: enforceAudioOption,
5229
5274
  scale: scaleOption,
5230
5275
  crf: crfOption,
5231
- jpegQuality: jpegQualityOption
5276
+ jpegQuality: jpegQualityOption,
5277
+ sampleRate: sampleRateOption
5232
5278
  },
5233
5279
  renderStillOnCloudRun: {
5234
5280
  mediaCacheSizeInBytes: mediaCacheSizeInBytesOption,