@remotion/renderer 2.6.0-alpha.3 → 3.0.0-compression.5

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 (74) hide show
  1. package/dist/add-silent-audio-if-necessary.d.ts +1 -1
  2. package/dist/add-silent-audio-if-necessary.d.ts.map +1 -1
  3. package/dist/add-silent-audio-if-necessary.js +6 -2
  4. package/dist/add-silent-audio-if-necessary.js.map +1 -1
  5. package/dist/assets/download-and-map-assets-to-file.d.ts +1 -0
  6. package/dist/assets/download-and-map-assets-to-file.d.ts.map +1 -1
  7. package/dist/assets/download-and-map-assets-to-file.js +69 -5
  8. package/dist/assets/download-and-map-assets-to-file.js.map +1 -1
  9. package/dist/assets/types.d.ts +1 -0
  10. package/dist/assets/types.d.ts.map +1 -1
  11. package/dist/assets/types.js +19 -0
  12. package/dist/assets/types.js.map +1 -1
  13. package/dist/delete-directory.d.ts +2 -0
  14. package/dist/delete-directory.d.ts.map +1 -0
  15. package/dist/delete-directory.js +28 -0
  16. package/dist/delete-directory.js.map +1 -0
  17. package/dist/ensure-output-directory.d.ts +2 -0
  18. package/dist/ensure-output-directory.d.ts.map +1 -0
  19. package/dist/ensure-output-directory.js +18 -0
  20. package/dist/ensure-output-directory.js.map +1 -0
  21. package/dist/get-browser-instance.d.ts +10 -0
  22. package/dist/get-browser-instance.d.ts.map +1 -0
  23. package/dist/get-browser-instance.js +35 -0
  24. package/dist/get-browser-instance.js.map +1 -0
  25. package/dist/get-extension-from-codec.d.ts +3 -0
  26. package/dist/get-extension-from-codec.d.ts.map +1 -0
  27. package/dist/get-extension-from-codec.js +33 -0
  28. package/dist/get-extension-from-codec.js.map +1 -0
  29. package/dist/is-local-file.d.ts +2 -0
  30. package/dist/is-local-file.d.ts.map +1 -0
  31. package/dist/is-local-file.js +13 -0
  32. package/dist/is-local-file.js.map +1 -0
  33. package/dist/is-serve-url.d.ts +2 -0
  34. package/dist/is-serve-url.d.ts.map +1 -0
  35. package/dist/is-serve-url.js +13 -0
  36. package/dist/is-serve-url.js.map +1 -0
  37. package/dist/legacy-webpack-config.d.ts +10 -0
  38. package/dist/legacy-webpack-config.d.ts.map +1 -0
  39. package/dist/legacy-webpack-config.js +14 -0
  40. package/dist/legacy-webpack-config.js.map +1 -0
  41. package/dist/make-assets-download-dir.d.ts +2 -0
  42. package/dist/make-assets-download-dir.d.ts.map +1 -0
  43. package/dist/make-assets-download-dir.js +9 -0
  44. package/dist/make-assets-download-dir.js.map +1 -0
  45. package/dist/prepare-server.d.ts +5 -0
  46. package/dist/prepare-server.d.ts.map +1 -0
  47. package/dist/prepare-server.js +20 -0
  48. package/dist/prepare-server.js.map +1 -0
  49. package/dist/render-media.d.ts +38 -0
  50. package/dist/render-media.d.ts.map +1 -0
  51. package/dist/render-media.js +163 -0
  52. package/dist/render-media.js.map +1 -0
  53. package/dist/render-video.d.ts +38 -0
  54. package/dist/render-video.d.ts.map +1 -0
  55. package/dist/render-video.js +169 -0
  56. package/dist/render-video.js.map +1 -0
  57. package/dist/render.d.ts.map +1 -1
  58. package/dist/render.js +4 -2
  59. package/dist/render.js.map +1 -1
  60. package/dist/sample-rate.d.ts +2 -0
  61. package/dist/sample-rate.d.ts.map +1 -0
  62. package/dist/sample-rate.js +5 -0
  63. package/dist/sample-rate.js.map +1 -0
  64. package/dist/screenshot-dom-element.d.ts.map +1 -1
  65. package/dist/screenshot-dom-element.js +5 -0
  66. package/dist/screenshot-dom-element.js.map +1 -1
  67. package/dist/stitcher.d.ts.map +1 -1
  68. package/dist/stitcher.js +2 -1
  69. package/dist/stitcher.js.map +1 -1
  70. package/dist/tmp-dir.d.ts +2 -0
  71. package/dist/tmp-dir.d.ts.map +1 -0
  72. package/dist/tmp-dir.js +31 -0
  73. package/dist/tmp-dir.js.map +1 -0
  74. package/package.json +5 -6
@@ -1,2 +1,2 @@
1
- export declare const addSilentAudioIfNecessary: (videoFile: string) => Promise<void>;
1
+ export declare const addSilentAudioIfNecessary: (videoFile: string, durationInFrames: number, fps: number) => Promise<void>;
2
2
  //# sourceMappingURL=add-silent-audio-if-necessary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-silent-audio-if-necessary.d.ts","sourceRoot":"","sources":["../src/add-silent-audio-if-necessary.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,yBAAyB,cAC1B,MAAM,KACf,QAAQ,IAAI,CA+Bd,CAAC"}
1
+ {"version":3,"file":"add-silent-audio-if-necessary.d.ts","sourceRoot":"","sources":["../src/add-silent-audio-if-necessary.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,cAC1B,MAAM,oBACC,MAAM,OACnB,MAAM,KACT,QAAQ,IAAI,CAkCd,CAAC"}
@@ -7,7 +7,8 @@ exports.addSilentAudioIfNecessary = void 0;
7
7
  const execa_1 = __importDefault(require("execa"));
8
8
  const fs_1 = require("fs");
9
9
  const get_audio_channels_1 = require("./assets/get-audio-channels");
10
- const addSilentAudioIfNecessary = async (videoFile) => {
10
+ const sample_rate_1 = require("./sample-rate");
11
+ const addSilentAudioIfNecessary = async (videoFile, durationInFrames, fps) => {
11
12
  const audioChannels = await (0, get_audio_channels_1.getAudioChannels)(videoFile);
12
13
  if (audioChannels > 0) {
13
14
  return;
@@ -28,8 +29,11 @@ const addSilentAudioIfNecessary = async (videoFile) => {
28
29
  'pcm_s16le',
29
30
  '-c:v',
30
31
  'copy',
32
+ '-ar',
33
+ String(sample_rate_1.DEFAULT_SAMPLE_RATE),
31
34
  '-y',
32
- '-shortest',
35
+ '-t',
36
+ (durationInFrames / fps).toFixed(4),
33
37
  '-f',
34
38
  'matroska',
35
39
  out,
@@ -1 +1 @@
1
- {"version":3,"file":"add-silent-audio-if-necessary.js","sourceRoot":"","sources":["../src/add-silent-audio-if-necessary.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,2BAA0C;AAC1C,oEAA6D;AAEtD,MAAM,yBAAyB,GAAG,KAAK,EAC7C,SAAiB,EACD,EAAE;IAClB,MAAM,aAAa,GAAG,MAAM,IAAA,qCAAgB,EAAC,SAAS,CAAC,CAAC;IACxD,IAAI,aAAa,GAAG,CAAC,EAAE;QACtB,OAAO;KACP;IAED,MAAM,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAE7B,MAAM,IAAA,eAAK,EAAC,QAAQ,EAAE;QACrB,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,WAAW;QACX,MAAM;QACN,MAAM;QACN,IAAI;QACJ,WAAW;QACX,IAAI;QACJ,UAAU;QACV,GAAG;KACH,CAAC,CAAC;IACH,IAAA,eAAU,EAAC,SAAS,CAAC,CAAC;IACtB,IAAA,eAAU,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AAjCW,QAAA,yBAAyB,6BAiCpC"}
1
+ {"version":3,"file":"add-silent-audio-if-necessary.js","sourceRoot":"","sources":["../src/add-silent-audio-if-necessary.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,2BAA0C;AAC1C,oEAA6D;AAC7D,+CAAkD;AAE3C,MAAM,yBAAyB,GAAG,KAAK,EAC7C,SAAiB,EACjB,gBAAwB,EACxB,GAAW,EACK,EAAE;IAClB,MAAM,aAAa,GAAG,MAAM,IAAA,qCAAgB,EAAC,SAAS,CAAC,CAAC;IACxD,IAAI,aAAa,GAAG,CAAC,EAAE;QACtB,OAAO;KACP;IAED,MAAM,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAE7B,MAAM,IAAA,eAAK,EAAC,QAAQ,EAAE;QACrB,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,WAAW;QACX,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM,CAAC,iCAAmB,CAAC;QAC3B,IAAI;QACJ,IAAI;QACJ,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,IAAI;QACJ,UAAU;QACV,GAAG;KACH,CAAC,CAAC;IACH,IAAA,eAAU,EAAC,SAAS,CAAC,CAAC;IACtB,IAAA,eAAU,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AAtCW,QAAA,yBAAyB,6BAsCpC"}
@@ -1,4 +1,5 @@
1
1
  import { TAsset } from 'remotion';
2
+ export declare const validateMimeType: (mimeType: string, src: string) => void;
2
3
  export declare const markAllAssetsAsDownloaded: () => void;
3
4
  export declare const getSanitizedFilenameForAssetUrl: ({ src, isRemote, webpackBundle, }: {
4
5
  src: string;
@@ -1 +1 @@
1
- {"version":3,"file":"download-and-map-assets-to-file.d.ts","sourceRoot":"","sources":["../../src/assets/download-and-map-assets-to-file.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,MAAM,EAAC,MAAM,UAAU,CAAC;AA+DxC,eAAO,MAAM,yBAAyB,YAQrC,CAAC;AAEF,eAAO,MAAM,+BAA+B;SAKtC,MAAM;cACD,OAAO;mBACF,MAAM;YAqBrB,CAAC;AAEF,eAAO,MAAM,6BAA6B;oBAKzB,MAAM;mBACP,MAAM;sBACH,MAAM,KAAK,IAAI;MAC9B,QAAQ,MAAM,CAejB,CAAC"}
1
+ {"version":3,"file":"download-and-map-assets-to-file.d.ts","sourceRoot":"","sources":["../../src/assets/download-and-map-assets-to-file.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,MAAM,EAAC,MAAM,UAAU,CAAC;AA2BnD,eAAO,MAAM,gBAAgB,aAAc,MAAM,OAAO,MAAM,SAW7D,CAAC;AA4FF,eAAO,MAAM,yBAAyB,YAQrC,CAAC;AAEF,eAAO,MAAM,+BAA+B;SAKtC,MAAM;cACD,OAAO;mBACF,MAAM;YAyBrB,CAAC;AAEF,eAAO,MAAM,6BAA6B;oBAKzB,MAAM;mBACP,MAAM;sBACH,MAAM,KAAK,IAAI;MAC9B,QAAQ,MAAM,CAkBjB,CAAC"}
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.downloadAndMapAssetsToFileUrl = exports.getSanitizedFilenameForAssetUrl = exports.markAllAssetsAsDownloaded = void 0;
7
- const fs_1 = require("fs");
6
+ exports.downloadAndMapAssetsToFileUrl = exports.getSanitizedFilenameForAssetUrl = exports.markAllAssetsAsDownloaded = exports.validateMimeType = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const fs_2 = require("fs");
8
9
  const got_1 = __importDefault(require("got"));
9
10
  const path_1 = __importDefault(require("path"));
10
11
  const remotion_1 = require("remotion");
@@ -28,6 +29,46 @@ const notifyAssetIsDownloaded = (src) => {
28
29
  isDownloadingMap[src] = false;
29
30
  hasBeenDownloadedMap[src] = true;
30
31
  };
32
+ const validateMimeType = (mimeType, src) => {
33
+ if (!mimeType.includes('/')) {
34
+ const errMessage = [
35
+ 'A data URL was passed but did not have the correct format so that Remotion could convert it for the video to be rendered.',
36
+ 'The format of the data URL must be `data:[mime-type];[encoding],[data]`.',
37
+ 'The `mime-type` parameter must be a valid mime type.',
38
+ 'The data that was received is (truncated to 100 characters):',
39
+ src.substr(0, 100),
40
+ ].join(' ');
41
+ throw new TypeError(errMessage);
42
+ }
43
+ };
44
+ exports.validateMimeType = validateMimeType;
45
+ function validateBufferEncoding(potentialEncoding, dataUrl) {
46
+ const asserted = potentialEncoding;
47
+ const validEncodings = [
48
+ 'ascii',
49
+ 'base64',
50
+ 'base64url',
51
+ 'binary',
52
+ 'hex',
53
+ 'latin1',
54
+ 'ucs-2',
55
+ 'ucs2',
56
+ 'utf-8',
57
+ 'utf16le',
58
+ 'utf8',
59
+ ];
60
+ if (!validEncodings.find((en) => asserted === en)) {
61
+ const errMessage = [
62
+ 'A data URL was passed but did not have the correct format so that Remotion could convert it for the video to be rendered.',
63
+ 'The format of the data URL must be `data:[mime-type];[encoding],[data]`.',
64
+ 'The `encoding` parameter must be one of the following:',
65
+ `${validEncodings.join(' ')}.`,
66
+ 'The data that was received is (truncated to 100 characters):',
67
+ dataUrl.substr(0, 100),
68
+ ].join(' ');
69
+ throw new TypeError(errMessage);
70
+ }
71
+ }
31
72
  const downloadAsset = async (src, to, onDownload) => {
32
73
  if (hasBeenDownloadedMap[src]) {
33
74
  return;
@@ -37,14 +78,33 @@ const downloadAsset = async (src, to, onDownload) => {
37
78
  }
38
79
  isDownloadingMap[src] = true;
39
80
  onDownload(src);
40
- (0, fs_1.mkdirSync)(path_1.default.resolve(to, '..'), {
81
+ (0, fs_2.mkdirSync)(path_1.default.resolve(to, '..'), {
41
82
  recursive: true,
42
83
  });
84
+ if (src.startsWith('data:')) {
85
+ const [assetDetails, assetData] = src.substring('data:'.length).split(',');
86
+ if (!assetDetails.includes(';')) {
87
+ const errMessage = [
88
+ 'A data URL was passed but did not have the correct format so that Remotion could convert it for the video to be rendered.',
89
+ 'The format of the data URL must be `data:[mime-type];[encoding],[data]`.',
90
+ 'The data that was received is (truncated to 100 characters):',
91
+ src.substr(0, 100),
92
+ ].join(' ');
93
+ throw new TypeError(errMessage);
94
+ }
95
+ const [mimeType, encoding] = assetDetails.split(';');
96
+ (0, exports.validateMimeType)(mimeType, src);
97
+ validateBufferEncoding(encoding, src);
98
+ const buff = Buffer.from(assetData, encoding);
99
+ await fs_1.default.promises.writeFile(to, buff);
100
+ notifyAssetIsDownloaded(src);
101
+ return;
102
+ }
43
103
  // Listen to 'close' event instead of more
44
104
  // concise method to avoid this problem
45
105
  // https://github.com/remotion-dev/remotion/issues/384#issuecomment-844398183
46
106
  await new Promise((resolve, reject) => {
47
- const writeStream = (0, fs_1.createWriteStream)(to);
107
+ const writeStream = (0, fs_2.createWriteStream)(to);
48
108
  writeStream.on('close', () => resolve());
49
109
  writeStream.on('error', (err) => reject(err));
50
110
  got_1.default
@@ -64,6 +124,9 @@ const markAllAssetsAsDownloaded = () => {
64
124
  };
65
125
  exports.markAllAssetsAsDownloaded = markAllAssetsAsDownloaded;
66
126
  const getSanitizedFilenameForAssetUrl = ({ src, isRemote, webpackBundle, }) => {
127
+ if (remotion_1.Internals.AssetCompression.isAssetCompressed(src)) {
128
+ return src;
129
+ }
67
130
  const { pathname, search } = new URL(src);
68
131
  if (!isRemote) {
69
132
  return path_1.default.join(webpackBundle, (0, sanitize_filename_1.default)(pathname));
@@ -82,7 +145,8 @@ const downloadAndMapAssetsToFileUrl = async ({ localhostAsset, webpackBundle, on
82
145
  isRemote: localhostAsset.isRemote,
83
146
  webpackBundle,
84
147
  });
85
- if (localhostAsset.isRemote) {
148
+ if (localhostAsset.isRemote &&
149
+ !remotion_1.Internals.AssetCompression.isAssetCompressed(newSrc)) {
86
150
  await downloadAsset(localhostAsset.src, newSrc, onDownload);
87
151
  }
88
152
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"download-and-map-assets-to-file.js","sourceRoot":"","sources":["../../src/assets/download-and-map-assets-to-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"download-and-map-assets-to-file.js","sourceRoot":"","sources":["../../src/assets/download-and-map-assets-to-file.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export declare type MediaAsset = Omit<UnsafeAsset, 'duration' | 'volume'> & {
12
12
  duration: number;
13
13
  volume: AssetVolume;
14
14
  };
15
+ export declare const uncompressMediaAsset: (allAssets: TAsset[], assetToUncompress: MediaAsset) => MediaAsset;
15
16
  export declare type AssetAudioDetails = {
16
17
  channels: number;
17
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/assets/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAKhC,oBAAY,WAAW,GAAG,IAAI,CAC7B,MAAM,EACN,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,CACxC,GAAG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,oBAAY,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAE5C,oBAAY,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,QAAQ,CAAC,GAAG;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,MAAM,GAAG,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/assets/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAKhC,oBAAY,WAAW,GAAG,IAAI,CAC7B,MAAM,EACN,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,CACxC,GAAG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,oBAAY,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAE5C,oBAAY,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,QAAQ,CAAC,GAAG;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,oBAAoB,cACrB,MAAM,EAAE,qBACA,UAAU,KAC3B,UAuBF,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,MAAM,GAAG,UAAU,EAAE,CAAC"}
@@ -1,3 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uncompressMediaAsset = void 0;
4
+ const uncompressMediaAsset = (allAssets, assetToUncompress) => {
5
+ const isCompressed = assetToUncompress.src.match(/same-as-(.*)-([0-9]+)$/);
6
+ if (!isCompressed) {
7
+ return assetToUncompress;
8
+ }
9
+ const [, id, frame] = isCompressed;
10
+ const assetToFill = allAssets.find((a) => a.id === id && String(a.frame) === frame);
11
+ if (!assetToFill) {
12
+ console.log('List of assets:');
13
+ console.log(allAssets);
14
+ throw new TypeError(`Cannot uncompress asset, asset list seems corrupt. Please file a bug in the Remotion repo with the debug information above.`);
15
+ }
16
+ return {
17
+ ...assetToUncompress,
18
+ src: assetToFill.src,
19
+ };
20
+ };
21
+ exports.uncompressMediaAsset = uncompressMediaAsset;
3
22
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/assets/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/assets/types.ts"],"names":[],"mappings":";;;AA0BO,MAAM,oBAAoB,GAAG,CACnC,SAAmB,EACnB,iBAA6B,EAChB,EAAE;IACf,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC3E,IAAI,CAAC,YAAY,EAAE;QAClB,OAAO,iBAAiB,CAAC;KACzB;IAED,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC;IAEnC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAC/C,CAAC;IACF,IAAI,CAAC,WAAW,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,IAAI,SAAS,CAClB,6HAA6H,CAC7H,CAAC;KACF;IAED,OAAO;QACN,GAAG,iBAAiB;QACpB,GAAG,EAAE,WAAW,CAAC,GAAG;KACpB,CAAC;AACH,CAAC,CAAC;AA1BW,QAAA,oBAAoB,wBA0B/B"}
@@ -0,0 +1,2 @@
1
+ export declare const deleteDirectory: (directory: string) => Promise<void>;
2
+ //# sourceMappingURL=delete-directory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-directory.d.ts","sourceRoot":"","sources":["../src/delete-directory.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,cAAqB,MAAM,KAAG,QAAQ,IAAI,CAerE,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.deleteDirectory = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const execa_1 = __importDefault(require("execa"));
9
+ const is_serve_url_1 = require("./is-serve-url");
10
+ const deleteDirectory = async (directory) => {
11
+ var _a;
12
+ if ((0, is_serve_url_1.isServeUrl)(directory)) {
13
+ return;
14
+ }
15
+ if (process.platform === 'win32') {
16
+ // We use del before to remove all files inside the directories otherwise
17
+ // rmdir will throw an error.
18
+ await (0, execa_1.default)('cmd', ['/c', 'del', '/f', '/s', '/q', directory]);
19
+ await (0, execa_1.default)('cmd', ['/c', 'rmdir', '/s', '/q', directory]);
20
+ }
21
+ else {
22
+ await ((_a = fs_1.default.promises.rm) !== null && _a !== void 0 ? _a : fs_1.default.promises.rmdir)(directory, {
23
+ recursive: true,
24
+ });
25
+ }
26
+ };
27
+ exports.deleteDirectory = deleteDirectory;
28
+ //# sourceMappingURL=delete-directory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-directory.js","sourceRoot":"","sources":["../src/delete-directory.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,kDAA0B;AAC1B,iDAA0C;AAEnC,MAAM,eAAe,GAAG,KAAK,EAAE,SAAiB,EAAiB,EAAE;;IACzE,IAAI,IAAA,yBAAU,EAAC,SAAS,CAAC,EAAE;QAC1B,OAAO;KACP;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QACjC,yEAAyE;QACzE,6BAA6B;QAC7B,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;KAC3D;SAAM;QACN,MAAM,CAAC,MAAA,YAAE,CAAC,QAAQ,CAAC,EAAE,mCAAI,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE;YACtD,SAAS,EAAE,IAAI;SACf,CAAC,CAAC;KACH;AACF,CAAC,CAAC;AAfW,QAAA,eAAe,mBAe1B"}
@@ -0,0 +1,2 @@
1
+ export declare const ensureOutputDirectory: (outputLocation: string) => void;
2
+ //# sourceMappingURL=ensure-output-directory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-output-directory.d.ts","sourceRoot":"","sources":["../src/ensure-output-directory.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,mBAAoB,MAAM,SAQ3D,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ensureOutputDirectory = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const ensureOutputDirectory = (outputLocation) => {
10
+ const dirName = path_1.default.dirname(outputLocation);
11
+ if (!fs_1.default.existsSync(dirName)) {
12
+ fs_1.default.mkdirSync(dirName, {
13
+ recursive: true,
14
+ });
15
+ }
16
+ };
17
+ exports.ensureOutputDirectory = ensureOutputDirectory;
18
+ //# sourceMappingURL=ensure-output-directory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-output-directory.js","sourceRoot":"","sources":["../src/ensure-output-directory.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAEjB,MAAM,qBAAqB,GAAG,CAAC,cAAsB,EAAE,EAAE;IAC/D,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAE7C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC5B,YAAE,CAAC,SAAS,CAAC,OAAO,EAAE;YACrB,SAAS,EAAE,IAAI;SACf,CAAC,CAAC;KACH;AACF,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC"}
@@ -0,0 +1,10 @@
1
+ import { Browser, Page } from 'puppeteer-core';
2
+ import { BrowserExecutable } from 'remotion';
3
+ export declare const getPageAndCleanupFn: ({ passedInInstance, browserExecutable, }: {
4
+ passedInInstance: Browser | undefined;
5
+ browserExecutable: BrowserExecutable | null;
6
+ }) => Promise<{
7
+ cleanup: () => void;
8
+ page: Page;
9
+ }>;
10
+ //# sourceMappingURL=get-browser-instance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-browser-instance.d.ts","sourceRoot":"","sources":["../src/get-browser-instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAY,MAAM,UAAU,CAAC;AAGtD,eAAO,MAAM,mBAAmB;sBAIb,OAAO,GAAG,SAAS;uBAClB,iBAAiB,GAAG,IAAI;MACxC,QAAQ;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;CACX,CA6BA,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPageAndCleanupFn = void 0;
4
+ const remotion_1 = require("remotion");
5
+ const open_browser_1 = require("./open-browser");
6
+ const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, }) => {
7
+ if (passedInInstance) {
8
+ const page = await passedInInstance.newPage();
9
+ return {
10
+ page,
11
+ cleanup: () => {
12
+ // Close puppeteer page and don't wait for it to finish.
13
+ // Keep browser open.
14
+ page.close().catch((err) => {
15
+ console.error('Was not able to close puppeteer page', err);
16
+ });
17
+ },
18
+ };
19
+ }
20
+ const browserInstance = await (0, open_browser_1.openBrowser)(remotion_1.Internals.DEFAULT_BROWSER, {
21
+ browserExecutable,
22
+ });
23
+ const browserPage = await browserInstance.newPage();
24
+ return {
25
+ page: browserPage,
26
+ cleanup: () => {
27
+ // Close whole browser that was just created and don't wait for it to finish.
28
+ browserInstance.close().catch((err) => {
29
+ console.error('Was not able to close puppeteer page', err);
30
+ });
31
+ },
32
+ };
33
+ };
34
+ exports.getPageAndCleanupFn = getPageAndCleanupFn;
35
+ //# sourceMappingURL=get-browser-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-browser-instance.js","sourceRoot":"","sources":["../src/get-browser-instance.ts"],"names":[],"mappings":";;;AACA,uCAAsD;AACtD,iDAA2C;AAEpC,MAAM,mBAAmB,GAAG,KAAK,EAAE,EACzC,gBAAgB,EAChB,iBAAiB,GAIjB,EAGE,EAAE;IACJ,IAAI,gBAAgB,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9C,OAAO;YACN,IAAI;YACJ,OAAO,EAAE,GAAG,EAAE;gBACb,wDAAwD;gBACxD,qBAAqB;gBACrB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC1B,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;gBAC5D,CAAC,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;KACF;IAED,MAAM,eAAe,GAAG,MAAM,IAAA,0BAAW,EAAC,oBAAS,CAAC,eAAe,EAAE;QACpE,iBAAiB;KACjB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;IAEpD,OAAO;QACN,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,GAAG,EAAE;YACb,6EAA6E;YAC7E,eAAe,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrC,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACJ,CAAC;KACD,CAAC;AACH,CAAC,CAAC;AAtCW,QAAA,mBAAmB,uBAsC9B"}
@@ -0,0 +1,3 @@
1
+ import { Codec } from 'remotion';
2
+ export declare const getFileExtensionFromCodec: (codec: Codec, type: 'chunk' | 'final') => "mp3" | "aac" | "wav" | "mp4" | "mkv" | "mov" | "webm";
3
+ //# sourceMappingURL=get-extension-from-codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-extension-from-codec.d.ts","sourceRoot":"","sources":["../src/get-extension-from-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,UAAU,CAAC;AAE/B,eAAO,MAAM,yBAAyB,UAC9B,KAAK,QACN,OAAO,GAAG,OAAO,2DAgCvB,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFileExtensionFromCodec = void 0;
4
+ const getFileExtensionFromCodec = (codec, type) => {
5
+ switch (codec) {
6
+ case 'aac':
7
+ return 'aac';
8
+ case 'h264':
9
+ return 'mp4';
10
+ // The chunks will be rendered as mkv, but the final output will still be MP4
11
+ case 'h264-mkv':
12
+ if (type === 'chunk') {
13
+ return 'mkv';
14
+ }
15
+ return 'mp4';
16
+ case 'h265':
17
+ return 'mp4';
18
+ case 'mp3':
19
+ return 'mp3';
20
+ case 'prores':
21
+ return 'mov';
22
+ case 'vp8':
23
+ return 'webm';
24
+ case 'vp9':
25
+ return 'webm';
26
+ case 'wav':
27
+ return 'wav';
28
+ default:
29
+ throw new Error("Don't know which file extension to use for codec " + codec);
30
+ }
31
+ };
32
+ exports.getFileExtensionFromCodec = getFileExtensionFromCodec;
33
+ //# sourceMappingURL=get-extension-from-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-extension-from-codec.js","sourceRoot":"","sources":["../src/get-extension-from-codec.ts"],"names":[],"mappings":";;;AAEO,MAAM,yBAAyB,GAAG,CACxC,KAAY,EACZ,IAAuB,EACtB,EAAE;IACH,QAAQ,KAAK,EAAE;QACd,KAAK,KAAK;YACT,OAAO,KAAK,CAAC;QACd,KAAK,MAAM;YACV,OAAO,KAAK,CAAC;QACd,6EAA6E;QAC7E,KAAK,UAAU;YACd,IAAI,IAAI,KAAK,OAAO,EAAE;gBACrB,OAAO,KAAK,CAAC;aACb;YAED,OAAO,KAAK,CAAC;QAEd,KAAK,MAAM;YACV,OAAO,KAAK,CAAC;QACd,KAAK,KAAK;YACT,OAAO,KAAK,CAAC;QACd,KAAK,QAAQ;YACZ,OAAO,KAAK,CAAC;QACd,KAAK,KAAK;YACT,OAAO,MAAM,CAAC;QACf,KAAK,KAAK;YACT,OAAO,MAAM,CAAC;QACf,KAAK,KAAK;YACT,OAAO,KAAK,CAAC;QACd;YACC,MAAM,IAAI,KAAK,CACd,mDAAmD,GAAG,KAAK,CAC3D,CAAC;KACH;AACF,CAAC,CAAC;AAlCW,QAAA,yBAAyB,6BAkCpC"}
@@ -0,0 +1,2 @@
1
+ export declare const isServeUrl: (potentialUrl: string) => boolean;
2
+ //# sourceMappingURL=is-local-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-local-file.d.ts","sourceRoot":"","sources":["../src/is-local-file.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,iBAAkB,MAAM,YAY9C,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isServeUrl = void 0;
4
+ const isServeUrl = (potentialUrl) => {
5
+ // Theoretically not a valid URL but handle the most basic cases of forgetting protocol in front
6
+ if (potentialUrl.startsWith('www.') ||
7
+ potentialUrl.includes('amazonaws.com')) {
8
+ return true;
9
+ }
10
+ return (potentialUrl.startsWith('https://') || !potentialUrl.startsWith('http://'));
11
+ };
12
+ exports.isServeUrl = isServeUrl;
13
+ //# sourceMappingURL=is-local-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-local-file.js","sourceRoot":"","sources":["../src/is-local-file.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAC,YAAoB,EAAE,EAAE;IAClD,gGAAgG;IAChG,IACC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;QAC/B,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EACrC;QACD,OAAO,IAAI,CAAC;KACZ;IAED,OAAO,CACN,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAC1E,CAAC;AACH,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB"}
@@ -0,0 +1,2 @@
1
+ export declare const isServeUrl: (potentialUrl: string) => boolean;
2
+ //# sourceMappingURL=is-serve-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-serve-url.d.ts","sourceRoot":"","sources":["../src/is-serve-url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,iBAAkB,MAAM,YAY9C,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isServeUrl = void 0;
4
+ const isServeUrl = (potentialUrl) => {
5
+ // Theoretically not a valid URL but handle the most basic cases of forgetting protocol in front
6
+ if (potentialUrl.startsWith('www.') ||
7
+ potentialUrl.includes('amazonaws.com')) {
8
+ return true;
9
+ }
10
+ return (potentialUrl.startsWith('https://') || potentialUrl.startsWith('http://'));
11
+ };
12
+ exports.isServeUrl = isServeUrl;
13
+ //# sourceMappingURL=is-serve-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-serve-url.js","sourceRoot":"","sources":["../src/is-serve-url.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAC,YAAoB,EAAE,EAAE;IAClD,gGAAgG;IAChG,IACC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;QAC/B,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EACrC;QACD,OAAO,IAAI,CAAC;KACZ;IAED,OAAO,CACN,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CACzE,CAAC;AACH,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB"}
@@ -0,0 +1,10 @@
1
+ export declare type ServeUrlOrWebpackBundle = {
2
+ serveUrl: string;
3
+ } | {
4
+ /**
5
+ * @deprecated Renamed to `serveUrl instead`
6
+ */
7
+ webpackBundle: string;
8
+ };
9
+ export declare const getServeUrlWithFallback: (serve: ServeUrlOrWebpackBundle) => string;
10
+ //# sourceMappingURL=legacy-webpack-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-webpack-config.d.ts","sourceRoot":"","sources":["../src/legacy-webpack-config.ts"],"names":[],"mappings":"AAAA,oBAAY,uBAAuB,GAChC;IACA,QAAQ,EAAE,MAAM,CAAC;CAChB,GACD;IACA;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACrB,CAAC;AAEL,eAAO,MAAM,uBAAuB,UAAW,uBAAuB,WAUrE,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getServeUrlWithFallback = void 0;
4
+ const getServeUrlWithFallback = (serve) => {
5
+ if ('webpackBundle' in serve) {
6
+ return serve.webpackBundle;
7
+ }
8
+ if ('serveUrl' in serve) {
9
+ return serve.serveUrl;
10
+ }
11
+ throw new Error('You must pass the `serveUrl` parameter');
12
+ };
13
+ exports.getServeUrlWithFallback = getServeUrlWithFallback;
14
+ //# sourceMappingURL=legacy-webpack-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-webpack-config.js","sourceRoot":"","sources":["../src/legacy-webpack-config.ts"],"names":[],"mappings":";;;AAWO,MAAM,uBAAuB,GAAG,CAAC,KAA8B,EAAE,EAAE;IACzE,IAAI,eAAe,IAAI,KAAK,EAAE;QAC7B,OAAO,KAAK,CAAC,aAAa,CAAC;KAC3B;IAED,IAAI,UAAU,IAAI,KAAK,EAAE;QACxB,OAAO,KAAK,CAAC,QAAQ,CAAC;KACtB;IAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC3D,CAAC,CAAC;AAVW,QAAA,uBAAuB,2BAUlC"}
@@ -0,0 +1,2 @@
1
+ export declare const makeAssetsDownloadTmpDir: () => string;
2
+ //# sourceMappingURL=make-assets-download-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-assets-download-dir.d.ts","sourceRoot":"","sources":["../src/make-assets-download-dir.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,QAAO,MAE3C,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeAssetsDownloadTmpDir = void 0;
4
+ const tmp_dir_1 = require("./tmp-dir");
5
+ const makeAssetsDownloadTmpDir = () => {
6
+ return (0, tmp_dir_1.tmpDir)('remotion-assets-dir');
7
+ };
8
+ exports.makeAssetsDownloadTmpDir = makeAssetsDownloadTmpDir;
9
+ //# sourceMappingURL=make-assets-download-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-assets-download-dir.js","sourceRoot":"","sources":["../src/make-assets-download-dir.ts"],"names":[],"mappings":";;;AAAA,uCAAiC;AAE1B,MAAM,wBAAwB,GAAG,GAAW,EAAE;IACpD,OAAO,IAAA,gBAAM,EAAC,qBAAqB,CAAC,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC"}
@@ -0,0 +1,5 @@
1
+ export declare const prepareServer: (webpackConfigOrServeUrl: string) => Promise<{
2
+ serveUrl: string;
3
+ closeServer: () => Promise<void>;
4
+ }>;
5
+ //# sourceMappingURL=prepare-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-server.d.ts","sourceRoot":"","sources":["../src/prepare-server.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,4BACA,MAAM,KAC7B,QAAQ;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,QAAQ,IAAI,CAAC,CAAC;CACjC,CAaA,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prepareServer = void 0;
4
+ const is_serve_url_1 = require("./is-serve-url");
5
+ const serve_static_1 = require("./serve-static");
6
+ const prepareServer = async (webpackConfigOrServeUrl) => {
7
+ if ((0, is_serve_url_1.isServeUrl)(webpackConfigOrServeUrl)) {
8
+ return Promise.resolve({
9
+ serveUrl: webpackConfigOrServeUrl,
10
+ closeServer: () => Promise.resolve(undefined),
11
+ });
12
+ }
13
+ const { port, close } = await (0, serve_static_1.serveStatic)(webpackConfigOrServeUrl);
14
+ return Promise.resolve({
15
+ closeServer: () => close(),
16
+ serveUrl: `http://localhost:${port}`,
17
+ });
18
+ };
19
+ exports.prepareServer = prepareServer;
20
+ //# sourceMappingURL=prepare-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-server.js","sourceRoot":"","sources":["../src/prepare-server.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAC1C,iDAA2C;AAEpC,MAAM,aAAa,GAAG,KAAK,EACjC,uBAA+B,EAI7B,EAAE;IACJ,IAAI,IAAA,yBAAU,EAAC,uBAAuB,CAAC,EAAE;QACxC,OAAO,OAAO,CAAC,OAAO,CAAC;YACtB,QAAQ,EAAE,uBAAuB;YACjC,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;SAC7C,CAAC,CAAC;KACH;IAED,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAA,0BAAW,EAAC,uBAAuB,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC,OAAO,CAAC;QACtB,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;QAC1B,QAAQ,EAAE,oBAAoB,IAAI,EAAE;KACpC,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,aAAa,iBAkBxB"}
@@ -0,0 +1,38 @@
1
+ import type { Browser as PuppeteerBrowser } from 'puppeteer-core';
2
+ import { Codec, FfmpegExecutable, FrameRange, PixelFormat, ProResProfile, TCompMetadata } from 'remotion';
3
+ import { BrowserLog } from './browser-log';
4
+ import { OnStartData } from './types';
5
+ import { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
6
+ import { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
7
+ export declare type StitchingState = 'encoding' | 'muxing';
8
+ export declare type RenderMediaOnProgress = (progress: {
9
+ renderedFrames: number;
10
+ encodedFrames: number;
11
+ encodedDoneIn: number | null;
12
+ renderedDoneIn: number | null;
13
+ stitchStage: StitchingState;
14
+ }) => void;
15
+ export declare type RenderMediaOptions = {
16
+ outputLocation: string;
17
+ codec: Codec;
18
+ composition: TCompMetadata;
19
+ inputProps?: unknown;
20
+ parallelism?: number | null;
21
+ crf?: number | null;
22
+ imageFormat?: 'png' | 'jpeg' | 'none';
23
+ ffmpegExecutable?: FfmpegExecutable;
24
+ pixelFormat?: PixelFormat;
25
+ envVariables?: Record<string, string>;
26
+ quality?: number;
27
+ frameRange?: FrameRange | null;
28
+ puppeteerInstance?: PuppeteerBrowser;
29
+ overwrite?: boolean;
30
+ onProgress?: RenderMediaOnProgress;
31
+ onDownload?: RenderMediaOnDownload;
32
+ proResProfile?: ProResProfile;
33
+ dumpBrowserLogs?: boolean;
34
+ onBrowserLog?: ((log: BrowserLog) => void) | undefined;
35
+ onStart?: (data: OnStartData) => void;
36
+ } & ServeUrlOrWebpackBundle;
37
+ export declare const renderMedia: ({ parallelism, proResProfile, crf, composition, imageFormat, ffmpegExecutable, inputProps, pixelFormat, codec, envVariables, quality, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, dumpBrowserLogs, onBrowserLog, onStart, ...options }: RenderMediaOptions) => Promise<void>;
38
+ //# sourceMappingURL=render-media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-media.d.ts","sourceRoot":"","sources":["../src/render-media.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACN,KAAK,EACL,gBAAgB,EAChB,UAAU,EAEV,WAAW,EACX,aAAa,EACb,aAAa,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AACpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,0CAA0C,CAAC;AAG/E,OAAO,EAEN,uBAAuB,EACvB,MAAM,yBAAyB,CAAC;AAGjC,oBAAY,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnD,oBAAY,qBAAqB,GAAG,CAAC,QAAQ,EAAE;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,cAAc,CAAC;CAC5B,KAAK,IAAI,CAAC;AAEX,oBAAY,kBAAkB,GAAG;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,aAAa,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CACtC,GAAG,uBAAuB,CAAC;AAI5B,eAAO,MAAM,WAAW,iRAsBrB,kBAAkB,kBAsKpB,CAAC"}