@remotion/renderer 3.0.21 → 3.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abort.d.ts +7 -0
- package/dist/abort.js +20 -0
- package/dist/assets/calculate-asset-positions.d.ts +2 -2
- package/dist/assets/convert-assets-to-file-urls.d.ts +2 -2
- package/dist/assets/download-and-map-assets-to-file.d.ts +1 -1
- package/dist/assets/ffmpeg-volume-expression.d.ts +1 -1
- package/dist/assets/flatten-volume-array.d.ts +1 -1
- package/dist/assets/get-audio-channels.d.ts +1 -1
- package/dist/assets/types.d.ts +1 -1
- package/dist/browser/Browser.d.ts +5 -159
- package/dist/browser/Browser.js +5 -190
- package/dist/browser/BrowserConnector.d.ts +1 -8
- package/dist/browser/BrowserConnector.js +0 -32
- package/dist/browser/BrowserFetcher.d.ts +1 -1
- package/dist/browser/BrowserFetcher.js +8 -10
- package/dist/browser/BrowserRunner.d.ts +2 -2
- package/dist/browser/BrowserRunner.js +1 -1
- package/dist/browser/Connection.d.ts +4 -11
- package/dist/browser/Connection.js +5 -25
- package/dist/browser/ConsoleMessage.d.ts +4 -28
- package/dist/browser/ConsoleMessage.js +5 -32
- package/dist/browser/DOMWorld.d.ts +5 -6
- package/dist/browser/DOMWorld.js +2 -18
- package/dist/browser/EvalTypes.d.ts +1 -1
- package/dist/browser/EventEmitter.d.ts +1 -48
- package/dist/browser/EventEmitter.js +0 -49
- package/dist/browser/ExecutionContext.d.ts +7 -8
- package/dist/browser/ExecutionContext.js +0 -16
- package/dist/browser/FrameManager.d.ts +10 -14
- package/dist/browser/FrameManager.js +3 -19
- package/dist/browser/HTTPRequest.d.ts +4 -18
- package/dist/browser/HTTPRequest.js +3 -48
- package/dist/browser/HTTPResponse.d.ts +2 -81
- package/dist/browser/HTTPResponse.js +3 -173
- package/dist/browser/JSHandle.d.ts +4 -5
- package/dist/browser/JSHandle.js +0 -3
- package/dist/browser/LaunchOptions.d.ts +2 -81
- package/dist/browser/Launcher.d.ts +2 -2
- package/dist/browser/Launcher.js +21 -119
- package/dist/browser/LifecycleWatcher.d.ts +4 -4
- package/dist/browser/LifecycleWatcher.js +4 -17
- package/dist/browser/NetworkEventManager.d.ts +2 -4
- package/dist/browser/NetworkEventManager.js +0 -47
- package/dist/browser/NetworkManager.d.ts +1 -3
- package/dist/browser/NetworkManager.js +6 -42
- package/dist/browser/NodeWebSocketTransport.d.ts +8 -2
- package/dist/browser/NodeWebSocketTransport.js +1 -1
- package/dist/browser/{page.d.ts → Page.d.ts} +7 -13
- package/dist/browser/{page.js → Page.js} +14 -9
- package/dist/browser/PuppeteerNode.d.ts +7 -59
- package/dist/browser/PuppeteerNode.js +4 -66
- package/dist/browser/Target.d.ts +4 -4
- package/dist/browser/assert.d.ts +0 -20
- package/dist/browser/assert.js +0 -20
- package/dist/browser/create-browser-fetcher.d.ts +1 -1
- package/dist/browser/create-browser-fetcher.js +4 -25
- package/dist/browser/util.d.ts +3 -3
- package/dist/browser/util.js +1 -1
- package/dist/browser-log.d.ts +1 -1
- package/dist/calculate-ffmpeg-filters.d.ts +1 -1
- package/dist/can-use-parallel-encoding.d.ts +1 -1
- package/dist/cancel.d.ts +7 -0
- package/dist/cancel.js +25 -0
- package/dist/combine-videos.d.ts +1 -1
- package/dist/convert-to-pcm.d.ts +1 -1
- package/dist/create-silent-audio.d.ts +1 -1
- package/dist/cycle-browser-tabs.d.ts +1 -1
- package/dist/delay-render-embedded-stack.d.ts +1 -1
- package/dist/ensure-faststart.d.ts +1 -0
- package/dist/ensure-faststart.js +14 -0
- package/dist/ensure-presentation-timestamp.d.ts +1 -1
- package/dist/ensure-presentation-timestamp.js +1 -1
- package/dist/error-handling/handle-javascript-exception.d.ts +2 -2
- package/dist/error-handling/handle-javascript-exception.js +2 -2
- package/dist/error-handling/symbolicate-error.d.ts +1 -1
- package/dist/error-handling/symbolicateable-error.d.ts +1 -1
- package/dist/extract-frame-from-video.d.ts +7 -2
- package/dist/extract-frame-from-video.js +62 -11
- package/dist/faststart/atom.d.ts +35 -0
- package/dist/faststart/atom.js +138 -0
- package/dist/faststart/index.d.ts +0 -0
- package/dist/faststart/index.js +1 -0
- package/dist/faststart/options.d.ts +6 -0
- package/dist/faststart/options.js +2 -0
- package/dist/faststart/qt-faststart.d.ts +18 -0
- package/dist/faststart/qt-faststart.js +66 -0
- package/dist/faststart/update-chunk-offsets.d.ts +10 -0
- package/dist/faststart/update-chunk-offsets.js +114 -0
- package/dist/faststart/util.d.ts +9 -0
- package/dist/faststart/util.js +34 -0
- package/dist/get-audio-codec-name.d.ts +1 -1
- package/dist/get-browser-instance.d.ts +4 -3
- package/dist/get-codec-name.d.ts +1 -1
- package/dist/get-compositions.d.ts +4 -4
- package/dist/get-compositions.js +2 -2
- package/dist/get-duration-from-frame-range.d.ts +1 -1
- package/dist/get-extension-from-codec.d.ts +1 -1
- package/dist/get-frame-to-render.d.ts +1 -1
- package/dist/get-local-browser-executable.d.ts +1 -1
- package/dist/get-local-browser-executable.js +7 -5
- package/dist/get-prores-profile-name.d.ts +1 -1
- package/dist/get-video-info.d.ts +8 -0
- package/dist/get-video-info.js +45 -0
- package/dist/image-format.d.ts +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/is-vp9-video.d.ts +3 -0
- package/dist/is-vp9-video.js +24 -0
- package/dist/last-frame-from-video-cache.d.ts +5 -1
- package/dist/last-frame-from-video-cache.js +6 -1
- package/dist/merge-audio-track.d.ts +1 -1
- package/dist/offthread/index.d.ts +0 -0
- package/dist/offthread/index.js +1 -0
- package/dist/offthread-video-server.d.ts +4 -3
- package/dist/offthread-video-server.js +14 -3
- package/dist/open-browser.d.ts +5 -3
- package/dist/open-browser.js +8 -8
- package/dist/prepare-server.d.ts +2 -2
- package/dist/preprocess-audio-track.d.ts +2 -2
- package/dist/prespawn-ffmpeg.d.ts +2 -2
- package/dist/provide-screenshot.d.ts +4 -4
- package/dist/provide-screenshot.js +0 -1
- package/dist/puppeteer-evaluate.d.ts +1 -1
- package/dist/puppeteer-evaluate.js +3 -4
- package/dist/puppeteer-screenshot.d.ts +3 -2
- package/dist/puppeteer-screenshot.js +2 -4
- package/dist/render-frames.d.ts +9 -9
- package/dist/render-frames.js +18 -10
- package/dist/render-gif.d.ts +2 -0
- package/dist/render-gif.js +242 -0
- package/dist/render-media.d.ts +8 -8
- package/dist/render-still.d.ts +6 -6
- package/dist/screenshot-dom-element.d.ts +6 -7
- package/dist/screenshot-dom-element.js +3 -6
- package/dist/screenshot-task.d.ts +3 -2
- package/dist/screenshot-task.js +3 -5
- package/dist/seek-to-frame.d.ts +2 -2
- package/dist/serve-handler/index.d.ts +1 -1
- package/dist/serve-handler/index.js +0 -1
- package/dist/serve-static.d.ts +2 -2
- package/dist/set-props-and-env.d.ts +1 -1
- package/dist/set-props-and-env.js +3 -0
- package/dist/should-use-vp9-decoder.d.ts +0 -0
- package/dist/should-use-vp9-decoder.js +1 -0
- package/dist/stitch-frames-to-gif.d.ts +8 -0
- package/dist/stitch-frames-to-gif.js +128 -0
- package/dist/stitch-frames-to-video.d.ts +3 -3
- package/dist/stringify-ffmpeg-filter.d.ts +2 -2
- package/dist/stringify-ffmpeg-filter.js +3 -0
- package/dist/symbolicate-stacktrace.d.ts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/validate-even-dimensions-with-codec.d.ts +1 -1
- package/dist/validate-offthreadvideo-image-format.d.ts +1 -0
- package/dist/validate-offthreadvideo-image-format.js +15 -0
- package/dist/validate-output-filename.d.ts +1 -1
- package/package.json +10 -6
- package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
- package/dist/assets/calculate-asset-positions.js.map +0 -1
- package/dist/assets/calculate-atempo.d.ts.map +0 -1
- package/dist/assets/calculate-atempo.js.map +0 -1
- package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
- package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
- package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
- package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
- package/dist/assets/download-file.d.ts.map +0 -1
- package/dist/assets/download-file.js.map +0 -1
- package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
- package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
- package/dist/assets/flatten-volume-array.d.ts.map +0 -1
- package/dist/assets/flatten-volume-array.js.map +0 -1
- package/dist/assets/get-audio-channels.d.ts.map +0 -1
- package/dist/assets/get-audio-channels.js.map +0 -1
- package/dist/assets/read-file.d.ts.map +0 -1
- package/dist/assets/read-file.js.map +0 -1
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
- package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
- package/dist/assets/sanitize-filename.d.ts.map +0 -1
- package/dist/assets/sanitize-filename.js.map +0 -1
- package/dist/assets/sanitize-filepath.d.ts.map +0 -1
- package/dist/assets/sanitize-filepath.js.map +0 -1
- package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
- package/dist/assets/truncate-utf8-bytes.js.map +0 -1
- package/dist/assets/types.d.ts.map +0 -1
- package/dist/assets/types.js.map +0 -1
- package/dist/browser/Accessibility.d.ts +0 -175
- package/dist/browser/Accessibility.js +0 -423
- package/dist/browser/AriaQueryHandler.d.ts +0 -20
- package/dist/browser/AriaQueryHandler.js +0 -108
- package/dist/browser/Coverage.d.ts +0 -180
- package/dist/browser/Coverage.js +0 -371
- package/dist/browser/Debug.d.ts +0 -19
- package/dist/browser/Debug.js +0 -42
- package/dist/browser/DeviceDescriptors.d.ts +0 -40
- package/dist/browser/DeviceDescriptors.js +0 -1407
- package/dist/browser/FileChooser.d.ts +0 -56
- package/dist/browser/FileChooser.js +0 -86
- package/dist/browser/Input.d.ts +0 -355
- package/dist/browser/Input.js +0 -592
- package/dist/browser/NetworkConditions.d.ts +0 -26
- package/dist/browser/NetworkConditions.js +0 -33
- package/dist/browser/PDFOptions.d.ts +0 -165
- package/dist/browser/PDFOptions.js +0 -34
- package/dist/browser/PipeTransport.d.ts +0 -10
- package/dist/browser/PipeTransport.js +0 -86
- package/dist/browser/Puppeteer.d.ts +0 -35
- package/dist/browser/Puppeteer.js +0 -17
- package/dist/browser/QueryHandler.d.ts +0 -64
- package/dist/browser/QueryHandler.js +0 -183
- package/dist/browser/SecurityDetails.d.ts +0 -55
- package/dist/browser/SecurityDetails.js +0 -95
- package/dist/browser/Tracing.d.ts +0 -45
- package/dist/browser/Tracing.js +0 -136
- package/dist/browser/USKeyboardLayout.d.ts +0 -39
- package/dist/browser/USKeyboardLayout.js +0 -406
- package/dist/browser/WebWorker.d.ts +0 -96
- package/dist/browser/WebWorker.js +0 -122
- package/dist/browser/dialog.d.ts +0 -70
- package/dist/browser/dialog.js +0 -114
- package/dist/browser/fetch.d.ts +0 -16
- package/dist/browser/fetch.js +0 -46
- package/dist/browser/find-up.d.ts +0 -4
- package/dist/browser/find-up.js +0 -85
- package/dist/browser/pkg-dir.d.ts +0 -3
- package/dist/browser/pkg-dir.js +0 -13
- package/dist/browser-log.d.ts.map +0 -1
- package/dist/browser-log.js.map +0 -1
- package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
- package/dist/calculate-ffmpeg-filters.js.map +0 -1
- package/dist/can-use-parallel-encoding.d.ts.map +0 -1
- package/dist/can-use-parallel-encoding.js.map +0 -1
- package/dist/chunk.d.ts.map +0 -1
- package/dist/chunk.js.map +0 -1
- package/dist/combine-videos.d.ts.map +0 -1
- package/dist/combine-videos.js.map +0 -1
- package/dist/convert-to-pcm.d.ts.map +0 -1
- package/dist/convert-to-pcm.js.map +0 -1
- package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-complex-filter.js.map +0 -1
- package/dist/create-ffmpeg-merge-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-merge-filter.js.map +0 -1
- package/dist/create-silent-audio.d.ts.map +0 -1
- package/dist/create-silent-audio.js.map +0 -1
- package/dist/cycle-browser-tabs.d.ts.map +0 -1
- package/dist/cycle-browser-tabs.js.map +0 -1
- package/dist/delay-render-embedded-stack.d.ts.map +0 -1
- package/dist/delay-render-embedded-stack.js.map +0 -1
- package/dist/delete-directory.d.ts.map +0 -1
- package/dist/delete-directory.js.map +0 -1
- package/dist/ensure-frames-in-order.d.ts.map +0 -1
- package/dist/ensure-frames-in-order.js.map +0 -1
- package/dist/ensure-output-directory.d.ts.map +0 -1
- package/dist/ensure-output-directory.js.map +0 -1
- package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
- package/dist/error-handling/handle-javascript-exception.js.map +0 -1
- package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
- package/dist/error-handling/symbolicate-error.js.map +0 -1
- package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
- package/dist/error-handling/symbolicateable-error.js.map +0 -1
- package/dist/ffmpeg-filter-file.d.ts.map +0 -1
- package/dist/ffmpeg-filter-file.js.map +0 -1
- package/dist/ffmpeg-flags.d.ts.map +0 -1
- package/dist/ffmpeg-flags.js.map +0 -1
- package/dist/get-audio-codec-name.d.ts.map +0 -1
- package/dist/get-audio-codec-name.js.map +0 -1
- package/dist/get-browser-instance.d.ts.map +0 -1
- package/dist/get-browser-instance.js.map +0 -1
- package/dist/get-codec-name.d.ts.map +0 -1
- package/dist/get-codec-name.js.map +0 -1
- package/dist/get-compositions.d.ts.map +0 -1
- package/dist/get-compositions.js.map +0 -1
- package/dist/get-concurrency.d.ts.map +0 -1
- package/dist/get-concurrency.js.map +0 -1
- package/dist/get-duration-from-frame-range.d.ts.map +0 -1
- package/dist/get-duration-from-frame-range.js.map +0 -1
- package/dist/get-extension-from-codec.d.ts.map +0 -1
- package/dist/get-extension-from-codec.js.map +0 -1
- package/dist/get-frame-to-render.d.ts.map +0 -1
- package/dist/get-frame-to-render.js.map +0 -1
- package/dist/get-local-browser-executable.d.ts.map +0 -1
- package/dist/get-local-browser-executable.js.map +0 -1
- package/dist/get-port.d.ts.map +0 -1
- package/dist/get-port.js.map +0 -1
- package/dist/get-prores-profile-name.d.ts.map +0 -1
- package/dist/get-prores-profile-name.js.map +0 -1
- package/dist/image-format.d.ts.map +0 -1
- package/dist/image-format.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/is-serve-url.d.ts.map +0 -1
- package/dist/is-serve-url.js.map +0 -1
- package/dist/legacy-webpack-config.d.ts.map +0 -1
- package/dist/legacy-webpack-config.js.map +0 -1
- package/dist/make-assets-download-dir.d.ts.map +0 -1
- package/dist/make-assets-download-dir.js.map +0 -1
- package/dist/merge-audio-track.d.ts.map +0 -1
- package/dist/merge-audio-track.js.map +0 -1
- package/dist/normalize-serve-url.d.ts.map +0 -1
- package/dist/normalize-serve-url.js.map +0 -1
- package/dist/open-browser.d.ts.map +0 -1
- package/dist/open-browser.js.map +0 -1
- package/dist/p-limit.d.ts.map +0 -1
- package/dist/p-limit.js.map +0 -1
- package/dist/parse-browser-error-stack.d.ts.map +0 -1
- package/dist/parse-browser-error-stack.js.map +0 -1
- package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
- package/dist/parse-ffmpeg-progress.js.map +0 -1
- package/dist/pool.d.ts.map +0 -1
- package/dist/pool.js.map +0 -1
- package/dist/prepare-server.d.ts.map +0 -1
- package/dist/prepare-server.js.map +0 -1
- package/dist/preprocess-audio-track.d.ts.map +0 -1
- package/dist/preprocess-audio-track.js.map +0 -1
- package/dist/prespawn-ffmpeg.d.ts.map +0 -1
- package/dist/prespawn-ffmpeg.js.map +0 -1
- package/dist/provide-screenshot.d.ts.map +0 -1
- package/dist/provide-screenshot.js.map +0 -1
- package/dist/puppeteer-evaluate.d.ts.map +0 -1
- package/dist/puppeteer-evaluate.js.map +0 -1
- package/dist/puppeteer-screenshot.d.ts.map +0 -1
- package/dist/puppeteer-screenshot.js.map +0 -1
- package/dist/render-frames.d.ts.map +0 -1
- package/dist/render-frames.js.map +0 -1
- package/dist/render-media.d.ts.map +0 -1
- package/dist/render-media.js.map +0 -1
- package/dist/render-still.d.ts.map +0 -1
- package/dist/render-still.js.map +0 -1
- package/dist/resolve-asset-src.d.ts.map +0 -1
- package/dist/resolve-asset-src.js.map +0 -1
- package/dist/sample-rate.d.ts.map +0 -1
- package/dist/sample-rate.js.map +0 -1
- package/dist/screenshot-dom-element.d.ts.map +0 -1
- package/dist/screenshot-dom-element.js.map +0 -1
- package/dist/screenshot-task.d.ts.map +0 -1
- package/dist/screenshot-task.js.map +0 -1
- package/dist/seek-to-frame.d.ts.map +0 -1
- package/dist/seek-to-frame.js.map +0 -1
- package/dist/serve-static.d.ts.map +0 -1
- package/dist/serve-static.js.map +0 -1
- package/dist/set-props-and-env.d.ts.map +0 -1
- package/dist/set-props-and-env.js.map +0 -1
- package/dist/stitch-frames-to-video.d.ts.map +0 -1
- package/dist/stitch-frames-to-video.js.map +0 -1
- package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
- package/dist/stringify-ffmpeg-filter.js.map +0 -1
- package/dist/symbolicate-stacktrace.d.ts.map +0 -1
- package/dist/symbolicate-stacktrace.js.map +0 -1
- package/dist/tmp-dir.d.ts.map +0 -1
- package/dist/tmp-dir.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
- package/dist/validate-even-dimensions-with-codec.js.map +0 -1
- package/dist/validate-ffmpeg.d.ts.map +0 -1
- package/dist/validate-ffmpeg.js.map +0 -1
- package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
- package/dist/validate-puppeteer-timeout.js.map +0 -1
- package/dist/validate-scale.d.ts.map +0 -1
- package/dist/validate-scale.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Codec } from 'remotion';
|
|
1
|
+
import type { Codec } from 'remotion';
|
|
2
2
|
export declare const getFileExtensionFromCodec: (codec: Codec, type: 'chunk' | 'final') => "mp3" | "aac" | "wav" | "mp4" | "mkv" | "mov" | "webm";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FrameRange } from 'remotion';
|
|
1
|
+
import type { FrameRange } from 'remotion';
|
|
2
2
|
export declare const getRealFrameRange: (durationInFrames: number, frameRange: FrameRange | null) => [number, number];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Browser, BrowserExecutable } from 'remotion';
|
|
1
|
+
import type { Browser, BrowserExecutable } from 'remotion';
|
|
2
2
|
export declare const ensureLocalBrowser: (browser: Browser, preferredBrowserExecutable: BrowserExecutable) => Promise<void>;
|
|
3
3
|
export declare const getLocalBrowserExecutable: (browser: Browser, preferredBrowserExecutable: BrowserExecutable) => string;
|
|
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getLocalBrowserExecutable = exports.ensureLocalBrowser = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const revisions_1 = require("
|
|
8
|
+
const create_browser_fetcher_1 = require("./browser/create-browser-fetcher");
|
|
9
|
+
const node_1 = require("./browser/node");
|
|
10
|
+
const revisions_1 = require("./browser/revisions");
|
|
11
11
|
const getSearchPathsForProduct = (product) => {
|
|
12
12
|
var _a;
|
|
13
13
|
if (product === 'chrome') {
|
|
@@ -44,8 +44,10 @@ const getLocalBrowser = (product) => {
|
|
|
44
44
|
return null;
|
|
45
45
|
};
|
|
46
46
|
const getBrowserRevision = (product) => {
|
|
47
|
-
const browserFetcher =
|
|
47
|
+
const browserFetcher = node_1.puppeteer.createBrowserFetcher({
|
|
48
48
|
product,
|
|
49
|
+
path: null,
|
|
50
|
+
platform: null,
|
|
49
51
|
});
|
|
50
52
|
const revisionInfo = browserFetcher.revisionInfo(product === 'firefox'
|
|
51
53
|
? revisions_1.PUPPETEER_REVISIONS.firefox
|
|
@@ -73,7 +75,7 @@ const ensureLocalBrowser = async (browser, preferredBrowserExecutable) => {
|
|
|
73
75
|
const status = getBrowserStatus(mapBrowserToProduct(browser), preferredBrowserExecutable);
|
|
74
76
|
if (status.type === 'no-browser') {
|
|
75
77
|
console.log('No local browser could be found. Downloading one from the internet...');
|
|
76
|
-
await (0,
|
|
78
|
+
await (0, create_browser_fetcher_1.downloadBrowser)(browser);
|
|
77
79
|
}
|
|
78
80
|
};
|
|
79
81
|
exports.ensureLocalBrowser = ensureLocalBrowser;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Codec, ProResProfile } from 'remotion';
|
|
1
|
+
import type { Codec, ProResProfile } from 'remotion';
|
|
2
2
|
export declare const getProResProfileName: (codec: Codec, proResProfile: ProResProfile | undefined) => string | null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FfmpegExecutable } from 'remotion';
|
|
2
|
+
declare type Result = {
|
|
3
|
+
specialVcodec: SpecialVCodecForTransparency;
|
|
4
|
+
needsResize: [number, number] | null;
|
|
5
|
+
};
|
|
6
|
+
export declare type SpecialVCodecForTransparency = 'vp9' | 'vp8' | 'none';
|
|
7
|
+
export declare const getVideoInfo: (src: string, ffprobeExecutable: FfmpegExecutable) => Promise<Result>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
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.getVideoInfo = void 0;
|
|
7
|
+
const execa_1 = __importDefault(require("execa"));
|
|
8
|
+
const p_limit_1 = require("./p-limit");
|
|
9
|
+
const isVp9VideoCache = {};
|
|
10
|
+
const limit = (0, p_limit_1.pLimit)(1);
|
|
11
|
+
async function getVideoInfoUnlimited(src, ffprobeExecutable) {
|
|
12
|
+
var _a;
|
|
13
|
+
if (typeof isVp9VideoCache[src] !== 'undefined') {
|
|
14
|
+
return isVp9VideoCache[src];
|
|
15
|
+
}
|
|
16
|
+
const task = await (0, execa_1.default)(ffprobeExecutable !== null && ffprobeExecutable !== void 0 ? ffprobeExecutable : 'ffprobe', [src]);
|
|
17
|
+
const isVp9 = task.stderr.includes('Video: vp9');
|
|
18
|
+
const isVp8 = task.stderr.includes('Video: vp8');
|
|
19
|
+
const dimensions = (_a = task.stderr
|
|
20
|
+
.split('\n')
|
|
21
|
+
.find((n) => n.trim().startsWith('Stream #'))) === null || _a === void 0 ? void 0 : _a.match(/([0-9]{2,6})x([0-9]{2,6})/);
|
|
22
|
+
const dar = task.stderr.match(/DAR\s([0-9]+):([0-9]+)/);
|
|
23
|
+
let needsResize = null;
|
|
24
|
+
if (dimensions && dar) {
|
|
25
|
+
const width = parseInt(dimensions[1], 10);
|
|
26
|
+
const height = parseInt(dimensions[2], 10);
|
|
27
|
+
const darWidth = parseInt(dar[1], 10);
|
|
28
|
+
const darHeight = parseInt(dar[2], 10);
|
|
29
|
+
const actualWidth = Math.round(width * (darWidth / darHeight));
|
|
30
|
+
const actualHeight = Math.round(height * (darHeight / darWidth));
|
|
31
|
+
if (actualWidth !== width || actualHeight !== height) {
|
|
32
|
+
needsResize = [actualWidth, actualHeight];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const result = {
|
|
36
|
+
specialVcodec: isVp9 ? 'vp9' : isVp8 ? 'vp8' : 'none',
|
|
37
|
+
needsResize,
|
|
38
|
+
};
|
|
39
|
+
isVp9VideoCache[src] = result;
|
|
40
|
+
return isVp9VideoCache[src];
|
|
41
|
+
}
|
|
42
|
+
const getVideoInfo = (src, ffprobeExecutable) => {
|
|
43
|
+
return limit(() => getVideoInfoUnlimited(src, ffprobeExecutable));
|
|
44
|
+
};
|
|
45
|
+
exports.getVideoInfo = getVideoInfo;
|
package/dist/image-format.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ImageFormat } from 'remotion';
|
|
1
|
+
import type { ImageFormat } from 'remotion';
|
|
2
2
|
export declare const DEFAULT_IMAGE_FORMAT: ImageFormat;
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
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.getSpecialVCodecForTransparency = void 0;
|
|
7
|
+
const execa_1 = __importDefault(require("execa"));
|
|
8
|
+
const p_limit_1 = require("./p-limit");
|
|
9
|
+
const isVp9VideoCache = {};
|
|
10
|
+
const limit = (0, p_limit_1.pLimit)(1);
|
|
11
|
+
async function getSpecialVCodecForTransparencyUnlimited(src, ffprobeExecutable) {
|
|
12
|
+
if (typeof isVp9VideoCache[src] !== 'undefined') {
|
|
13
|
+
return isVp9VideoCache[src];
|
|
14
|
+
}
|
|
15
|
+
const task = await (0, execa_1.default)(ffprobeExecutable !== null && ffprobeExecutable !== void 0 ? ffprobeExecutable : 'ffprobe', [src]);
|
|
16
|
+
const isVp9 = task.stderr.includes('Video: vp9');
|
|
17
|
+
const isVp8 = task.stderr.includes('Video: vp8');
|
|
18
|
+
isVp9VideoCache[src] = isVp9 ? 'vp9' : isVp8 ? 'vp8' : 'none';
|
|
19
|
+
return isVp9VideoCache[src];
|
|
20
|
+
}
|
|
21
|
+
const getSpecialVCodecForTransparency = (src, ffprobeExecutable) => {
|
|
22
|
+
return limit(() => getSpecialVCodecForTransparencyUnlimited(src, ffprobeExecutable));
|
|
23
|
+
};
|
|
24
|
+
exports.getSpecialVCodecForTransparency = getSpecialVCodecForTransparency;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { FfmpegExecutable } from 'remotion';
|
|
1
|
+
import type { FfmpegExecutable, OffthreadVideoImageFormat } from 'remotion';
|
|
2
|
+
import type { SpecialVCodecForTransparency } from './get-video-info';
|
|
2
3
|
export declare type LastFrameOptions = {
|
|
3
4
|
ffmpegExecutable: FfmpegExecutable;
|
|
4
5
|
ffprobeExecutable: FfmpegExecutable;
|
|
5
6
|
offset: number;
|
|
6
7
|
src: string;
|
|
8
|
+
specialVCodecForTransparency: SpecialVCodecForTransparency;
|
|
9
|
+
imageFormat: OffthreadVideoImageFormat;
|
|
10
|
+
needsResize: [number, number] | null;
|
|
7
11
|
};
|
|
8
12
|
export declare const setLastFrameInCache: (options: LastFrameOptions, data: Buffer) => void;
|
|
9
13
|
export declare const getLastFrameFromCache: (options: LastFrameOptions) => Buffer | null;
|
|
@@ -6,7 +6,12 @@ let map = {};
|
|
|
6
6
|
const MAX_CACHE_SIZE = 50 * 1024 * 1024; // 50MB
|
|
7
7
|
let bufferSize = 0;
|
|
8
8
|
const makeLastFrameCacheKey = (options) => {
|
|
9
|
-
return [
|
|
9
|
+
return [
|
|
10
|
+
options.ffmpegExecutable,
|
|
11
|
+
options.offset,
|
|
12
|
+
options.src,
|
|
13
|
+
options.imageFormat,
|
|
14
|
+
].join('-');
|
|
10
15
|
};
|
|
11
16
|
const setLastFrameInCache = (options, data) => {
|
|
12
17
|
const key = makeLastFrameCacheKey(options);
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { RequestListener } from 'http';
|
|
2
|
-
import { FfmpegExecutable } from 'remotion';
|
|
3
|
-
import { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
1
|
+
import type { RequestListener } from 'http';
|
|
2
|
+
import type { FfmpegExecutable, OffthreadVideoImageFormat } from 'remotion';
|
|
3
|
+
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
4
4
|
export declare const extractUrlAndSourceFromUrl: (url: string) => {
|
|
5
5
|
src: string;
|
|
6
6
|
time: number;
|
|
7
|
+
imageFormat: OffthreadVideoImageFormat;
|
|
7
8
|
};
|
|
8
9
|
export declare const startOffthreadVideoServer: ({ ffmpegExecutable, ffprobeExecutable, downloadDir, onDownload, onError, }: {
|
|
9
10
|
ffmpegExecutable: FfmpegExecutable;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.startOffthreadVideoServer = exports.extractUrlAndSourceFromUrl = void 0;
|
|
4
|
+
const remotion_1 = require("remotion");
|
|
4
5
|
const url_1 = require("url");
|
|
5
6
|
const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
|
|
6
7
|
const extract_frame_from_video_1 = require("./extract-frame-from-video");
|
|
@@ -19,7 +20,16 @@ const extractUrlAndSourceFromUrl = (url) => {
|
|
|
19
20
|
if (!time) {
|
|
20
21
|
throw new Error('Did not get `time` parameter');
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
const imageFormat = params.get('imageFormat');
|
|
24
|
+
if (!imageFormat) {
|
|
25
|
+
throw new TypeError('Did not get `imageFormat` parameter');
|
|
26
|
+
}
|
|
27
|
+
remotion_1.Internals.validateOffthreadVideoImageFormat(imageFormat);
|
|
28
|
+
return {
|
|
29
|
+
src,
|
|
30
|
+
time: parseFloat(time),
|
|
31
|
+
imageFormat: imageFormat,
|
|
32
|
+
};
|
|
23
33
|
};
|
|
24
34
|
exports.extractUrlAndSourceFromUrl = extractUrlAndSourceFromUrl;
|
|
25
35
|
const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, downloadDir, onDownload, onError, }) => {
|
|
@@ -32,9 +42,9 @@ const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, downlo
|
|
|
32
42
|
res.end();
|
|
33
43
|
return;
|
|
34
44
|
}
|
|
45
|
+
const { src, time, imageFormat } = (0, exports.extractUrlAndSourceFromUrl)(req.url);
|
|
35
46
|
res.setHeader('access-control-allow-origin', '*');
|
|
36
|
-
res.setHeader('content-type', '
|
|
37
|
-
const { src, time } = (0, exports.extractUrlAndSourceFromUrl)(req.url);
|
|
47
|
+
res.setHeader('content-type', `image/${imageFormat === 'jpeg' ? 'jpg' : 'png'}`);
|
|
38
48
|
const to = (0, download_and_map_assets_to_file_1.getSanitizedFilenameForAssetUrl)({ downloadDir, src });
|
|
39
49
|
(0, download_and_map_assets_to_file_1.startDownloadForSrc)({ src, downloadDir, onDownload }).catch((err) => {
|
|
40
50
|
onError(new Error(`Error while downloading asset: ${err.stack}`));
|
|
@@ -46,6 +56,7 @@ const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, downlo
|
|
|
46
56
|
src: to,
|
|
47
57
|
ffmpegExecutable,
|
|
48
58
|
ffprobeExecutable,
|
|
59
|
+
imageFormat,
|
|
49
60
|
});
|
|
50
61
|
})
|
|
51
62
|
.then((readable) => {
|
package/dist/open-browser.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Browser } from '
|
|
1
|
+
import type { Browser } from 'remotion';
|
|
2
|
+
import type { Browser as PuppeteerBrowser } from './browser/Browser';
|
|
3
|
+
import type { Viewport } from './browser/PuppeteerViewport';
|
|
3
4
|
declare const validRenderers: readonly ["swangle", "angle", "egl", "swiftshader"];
|
|
4
5
|
declare type OpenGlRenderer = typeof validRenderers[number];
|
|
5
6
|
export declare type ChromiumOptions = {
|
|
@@ -14,5 +15,6 @@ export declare const openBrowser: (browser: Browser, options?: {
|
|
|
14
15
|
browserExecutable?: string | null;
|
|
15
16
|
chromiumOptions?: ChromiumOptions;
|
|
16
17
|
forceDeviceScaleFactor?: number;
|
|
17
|
-
|
|
18
|
+
viewport?: Viewport;
|
|
19
|
+
}) => Promise<PuppeteerBrowser>;
|
|
18
20
|
export {};
|
package/dist/open-browser.js
CHANGED
|
@@ -7,8 +7,8 @@ exports.openBrowser = exports.killAllBrowsers = void 0;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const os_1 = __importDefault(require("os"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
|
|
11
10
|
const remotion_1 = require("remotion");
|
|
11
|
+
const node_1 = require("./browser/node");
|
|
12
12
|
const get_local_browser_executable_1 = require("./get-local-browser-executable");
|
|
13
13
|
const validRenderers = ['swangle', 'angle', 'egl', 'swiftshader'];
|
|
14
14
|
const getOpenGlRenderer = (option) => {
|
|
@@ -33,18 +33,17 @@ const killAllBrowsers = async () => {
|
|
|
33
33
|
};
|
|
34
34
|
exports.killAllBrowsers = killAllBrowsers;
|
|
35
35
|
const openBrowser = async (browser, options) => {
|
|
36
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
36
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
37
37
|
if (browser === 'firefox' && !remotion_1.Internals.FEATURE_FLAG_FIREFOX_SUPPORT) {
|
|
38
38
|
throw new TypeError('Firefox supported is not yet turned on. Stay tuned for the future.');
|
|
39
39
|
}
|
|
40
40
|
await (0, get_local_browser_executable_1.ensureLocalBrowser)(browser, (_a = options === null || options === void 0 ? void 0 : options.browserExecutable) !== null && _a !== void 0 ? _a : null);
|
|
41
41
|
const executablePath = (0, get_local_browser_executable_1.getLocalBrowserExecutable)(browser, (_b = options === null || options === void 0 ? void 0 : options.browserExecutable) !== null && _b !== void 0 ? _b : null);
|
|
42
42
|
const customGlRenderer = getOpenGlRenderer((_d = (_c = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _c === void 0 ? void 0 : _c.gl) !== null && _d !== void 0 ? _d : null);
|
|
43
|
-
const browserInstance = await
|
|
43
|
+
const browserInstance = await node_1.puppeteer.launch({
|
|
44
44
|
executablePath,
|
|
45
45
|
product: browser,
|
|
46
46
|
dumpio: (_e = options === null || options === void 0 ? void 0 : options.shouldDumpIo) !== null && _e !== void 0 ? _e : false,
|
|
47
|
-
ignoreDefaultArgs: true,
|
|
48
47
|
args: [
|
|
49
48
|
'about:blank',
|
|
50
49
|
'--allow-pre-commit-input',
|
|
@@ -61,8 +60,6 @@ const openBrowser = async (browser, options) => {
|
|
|
61
60
|
'--no-proxy-server',
|
|
62
61
|
"--proxy-server='direct://'",
|
|
63
62
|
'--proxy-bypass-list=*',
|
|
64
|
-
// TODO: remove AvoidUnnecessaryBeforeUnloadCheckSync below
|
|
65
|
-
// once crbug.com/1324138 is fixed and released.
|
|
66
63
|
'--disable-hang-monitor',
|
|
67
64
|
'--disable-ipc-flooding-protection',
|
|
68
65
|
'--disable-popup-blocking',
|
|
@@ -76,8 +73,6 @@ const openBrowser = async (browser, options) => {
|
|
|
76
73
|
'--enable-automation',
|
|
77
74
|
'--password-store=basic',
|
|
78
75
|
'--use-mock-keychain',
|
|
79
|
-
// TODO(sadym): remove '--enable-blink-features=IdleDetection'
|
|
80
|
-
// once IdleDetection is turned on by default.
|
|
81
76
|
'--enable-blink-features=IdleDetection',
|
|
82
77
|
'--export-tagged-pdf',
|
|
83
78
|
'--intensive-wake-up-throttling-policy=0',
|
|
@@ -113,6 +108,11 @@ const openBrowser = async (browser, options) => {
|
|
|
113
108
|
]
|
|
114
109
|
: []),
|
|
115
110
|
].filter(Boolean),
|
|
111
|
+
defaultViewport: (_k = options === null || options === void 0 ? void 0 : options.viewport) !== null && _k !== void 0 ? _k : {
|
|
112
|
+
height: 720,
|
|
113
|
+
width: 1280,
|
|
114
|
+
deviceScaleFactor: 1,
|
|
115
|
+
},
|
|
116
116
|
});
|
|
117
117
|
const pages = await browserInstance.pages();
|
|
118
118
|
await pages[0].close();
|
package/dist/prepare-server.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FfmpegExecutable } from 'remotion';
|
|
2
|
-
import { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
1
|
+
import type { FfmpegExecutable } from 'remotion';
|
|
2
|
+
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
3
3
|
export declare const prepareServer: ({ downloadDir, ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, }: {
|
|
4
4
|
webpackConfigOrServeUrl: string;
|
|
5
5
|
downloadDir: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FfmpegExecutable } from 'remotion';
|
|
2
|
-
import { MediaAsset } from './assets/types';
|
|
1
|
+
import type { FfmpegExecutable } from 'remotion';
|
|
2
|
+
import type { MediaAsset } from './assets/types';
|
|
3
3
|
declare type Options = {
|
|
4
4
|
ffmpegExecutable: FfmpegExecutable;
|
|
5
5
|
ffprobeExecutable: FfmpegExecutable;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import execa from 'execa';
|
|
2
|
-
import { Codec, FfmpegExecutable, ImageFormat, PixelFormat, ProResProfile } from 'remotion';
|
|
3
|
-
import { CancelSignal } from './make-cancel-signal';
|
|
2
|
+
import type { Codec, FfmpegExecutable, ImageFormat, PixelFormat, ProResProfile } from 'remotion';
|
|
3
|
+
import type { CancelSignal } from './make-cancel-signal';
|
|
4
4
|
declare type PreSticherOptions = {
|
|
5
5
|
fps: number;
|
|
6
6
|
width: number;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import type { ImageFormat } from 'remotion';
|
|
2
|
+
import type { Page } from './browser/Page';
|
|
3
3
|
export declare const provideScreenshot: ({ page, imageFormat, options, quality, }: {
|
|
4
|
-
page:
|
|
4
|
+
page: Page;
|
|
5
5
|
imageFormat: ImageFormat;
|
|
6
6
|
quality: number | undefined;
|
|
7
7
|
options: {
|
|
8
8
|
frame: number;
|
|
9
|
-
output
|
|
9
|
+
output: string | null;
|
|
10
10
|
};
|
|
11
11
|
}) => Promise<Buffer>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.puppeteerEvaluateWithCatch = void 0;
|
|
4
|
-
|
|
5
|
-
const puppeteer_core_1 = require("puppeteer-core");
|
|
4
|
+
const JSHandle_1 = require("./browser/JSHandle");
|
|
6
5
|
const symbolicateable_error_1 = require("./error-handling/symbolicateable-error");
|
|
7
6
|
const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
|
|
8
7
|
const EVALUATION_SCRIPT_URL = '__puppeteer_evaluation_script__';
|
|
@@ -33,7 +32,7 @@ function isString(obj) {
|
|
|
33
32
|
async function puppeteerEvaluateWithCatch({ page, pageFunction, frame, args, }) {
|
|
34
33
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
35
34
|
const contextId = (await page.mainFrame().executionContext())._contextId;
|
|
36
|
-
const client = page._client;
|
|
35
|
+
const client = page._client();
|
|
37
36
|
const suffix = `//# sourceURL=${EVALUATION_SCRIPT_URL}`;
|
|
38
37
|
if (isString(pageFunction)) {
|
|
39
38
|
const expression = pageFunction;
|
|
@@ -140,7 +139,7 @@ function convertArgument(arg) {
|
|
|
140
139
|
return { unserializableValue: '-Infinity' };
|
|
141
140
|
if (Object.is(arg, NaN))
|
|
142
141
|
return { unserializableValue: 'NaN' };
|
|
143
|
-
const objectHandle = arg && arg instanceof
|
|
142
|
+
const objectHandle = arg && arg instanceof JSHandle_1.JSHandle ? arg : null;
|
|
144
143
|
if (objectHandle) {
|
|
145
144
|
if (objectHandle._disposed)
|
|
146
145
|
throw new Error('JSHandle is disposed!');
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import { Page
|
|
2
|
-
|
|
1
|
+
import type { Page } from './browser/Page';
|
|
2
|
+
import type { ScreenshotOptions } from './browser/ScreenshotOptions';
|
|
3
|
+
export declare const screenshot: (page: Page, options: ScreenshotOptions) => Promise<Buffer | string | void>;
|
|
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.screenshot = void 0;
|
|
27
27
|
const assert = __importStar(require("assert"));
|
|
28
28
|
const screenshot_task_1 = require("./screenshot-task");
|
|
29
|
-
const screenshot = (page, options
|
|
29
|
+
const screenshot = (page, options) => {
|
|
30
30
|
let screenshotType = null;
|
|
31
31
|
// options.type takes precedence over inferring the type from options.path
|
|
32
32
|
// because it may be a 0-length file with no extension created beforehand
|
|
@@ -58,7 +58,6 @@ const screenshot = (page, options = {}) => {
|
|
|
58
58
|
assert.ok(options.quality >= 0 && options.quality <= 100, 'Expected options.quality to be between 0 and 100 (inclusive), got ' +
|
|
59
59
|
options.quality);
|
|
60
60
|
}
|
|
61
|
-
assert.ok(!options.clip || !options.fullPage, 'options.clip and options.fullPage are exclusive');
|
|
62
61
|
if (options.clip) {
|
|
63
62
|
assert.ok(typeof options.clip.x === 'number', 'Expected options.clip.x to be a number but found ' +
|
|
64
63
|
typeof options.clip.x);
|
|
@@ -71,7 +70,6 @@ const screenshot = (page, options = {}) => {
|
|
|
71
70
|
assert.ok(options.clip.width !== 0, 'Expected options.clip.width not to be 0.');
|
|
72
71
|
assert.ok(options.clip.height !== 0, 'Expected options.clip.height not to be 0.');
|
|
73
72
|
}
|
|
74
|
-
|
|
75
|
-
return page._screenshotTaskQueue.postTask(() => (0, screenshot_task_1._screenshotTask)(page, screenshotType, options));
|
|
73
|
+
return page.screenshotTaskQueue.postTask(() => (0, screenshot_task_1._screenshotTask)(page, screenshotType, options));
|
|
76
74
|
};
|
|
77
75
|
exports.screenshot = screenshot;
|
package/dist/render-frames.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
7
|
-
import { CancelSignal } from './make-cancel-signal';
|
|
8
|
-
import { ChromiumOptions } from './open-browser';
|
|
9
|
-
import { OnStartData, RenderFramesOutput } from './types';
|
|
2
|
+
import type { BrowserExecutable, FfmpegExecutable, FrameRange, ImageFormat, SmallTCompMetadata } from 'remotion';
|
|
3
|
+
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
4
|
+
import type { BrowserLog } from './browser-log';
|
|
5
|
+
import type { Browser } from './browser/Browser';
|
|
6
|
+
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
7
|
+
import type { CancelSignal } from './make-cancel-signal';
|
|
8
|
+
import type { ChromiumOptions } from './open-browser';
|
|
9
|
+
import type { OnStartData, RenderFramesOutput } from './types';
|
|
10
10
|
declare type ConfigOrComposition = {
|
|
11
11
|
/**
|
|
12
12
|
* @deprecated This field has been renamed to `composition`
|
|
@@ -26,7 +26,7 @@ declare type RenderFramesOptions = {
|
|
|
26
26
|
quality?: number;
|
|
27
27
|
frameRange?: FrameRange | null;
|
|
28
28
|
dumpBrowserLogs?: boolean;
|
|
29
|
-
puppeteerInstance?:
|
|
29
|
+
puppeteerInstance?: Browser;
|
|
30
30
|
browserExecutable?: BrowserExecutable;
|
|
31
31
|
onBrowserLog?: (log: BrowserLog) => void;
|
|
32
32
|
onFrameBuffer?: (buffer: Buffer, frame: number) => void;
|
package/dist/render-frames.js
CHANGED
|
@@ -49,6 +49,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
const downloadPromises = [];
|
|
52
53
|
const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange !== null && frameRange !== void 0 ? frameRange : null);
|
|
53
54
|
const frameCount = (0, get_duration_from_frame_range_1.getDurationFromFrameRange)(realFrameRange, composition.durationInFrames);
|
|
54
55
|
const pages = new Array(actualParallelism).fill(true).map(async () => {
|
|
@@ -62,8 +63,8 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
62
63
|
const logCallback = (log) => {
|
|
63
64
|
onBrowserLog === null || onBrowserLog === void 0 ? void 0 : onBrowserLog({
|
|
64
65
|
stackTrace: log.stackTrace(),
|
|
65
|
-
text: log.text
|
|
66
|
-
type: log.type
|
|
66
|
+
text: log.text,
|
|
67
|
+
type: log.type,
|
|
67
68
|
});
|
|
68
69
|
};
|
|
69
70
|
if (onBrowserLog) {
|
|
@@ -142,7 +143,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
142
143
|
quality,
|
|
143
144
|
options: {
|
|
144
145
|
frame,
|
|
145
|
-
output:
|
|
146
|
+
output: null,
|
|
146
147
|
},
|
|
147
148
|
});
|
|
148
149
|
remotion_1.Internals.perf.stopPerfMeasure(id);
|
|
@@ -175,13 +176,13 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
175
176
|
const compressedAssets = collectedAssets.map((asset) => remotion_1.Internals.AssetCompression.compressAsset(assets.filter(remotion_1.Internals.truthy).flat(1), asset));
|
|
176
177
|
assets[index] = compressedAssets;
|
|
177
178
|
compressedAssets.forEach((asset) => {
|
|
178
|
-
(0, download_and_map_assets_to_file_1.downloadAndMapAssetsToFileUrl)({
|
|
179
|
+
downloadPromises.push((0, download_and_map_assets_to_file_1.downloadAndMapAssetsToFileUrl)({
|
|
179
180
|
asset,
|
|
180
181
|
downloadDir,
|
|
181
182
|
onDownload,
|
|
182
183
|
}).catch((err) => {
|
|
183
184
|
onError(new Error(`Error while downloading asset: ${err.stack}`));
|
|
184
|
-
});
|
|
185
|
+
}));
|
|
185
186
|
});
|
|
186
187
|
pool.release(freePage);
|
|
187
188
|
framesRendered++;
|
|
@@ -203,7 +204,11 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
203
204
|
return returnValue;
|
|
204
205
|
});
|
|
205
206
|
return Promise.race([
|
|
206
|
-
happyPath
|
|
207
|
+
happyPath
|
|
208
|
+
.then(() => {
|
|
209
|
+
return Promise.all(downloadPromises);
|
|
210
|
+
})
|
|
211
|
+
.then(() => happyPath),
|
|
207
212
|
new Promise((_resolve, reject) => {
|
|
208
213
|
cancelSignal === null || cancelSignal === void 0 ? void 0 : cancelSignal(() => {
|
|
209
214
|
reject(new Error('renderFrames() got cancelled'));
|
|
@@ -240,7 +245,9 @@ const renderFrames = (options) => {
|
|
|
240
245
|
return new Promise((resolve, reject) => {
|
|
241
246
|
var _a, _b, _c;
|
|
242
247
|
const cleanup = [];
|
|
243
|
-
const onError = (err) =>
|
|
248
|
+
const onError = (err) => {
|
|
249
|
+
reject(err);
|
|
250
|
+
};
|
|
244
251
|
Promise.all([
|
|
245
252
|
(0, prepare_server_1.prepareServer)({
|
|
246
253
|
webpackConfigOrServeUrl: selectedServeUrl,
|
|
@@ -262,7 +269,7 @@ const renderFrames = (options) => {
|
|
|
262
269
|
closeServer();
|
|
263
270
|
});
|
|
264
271
|
cleanup.push(closeServer);
|
|
265
|
-
|
|
272
|
+
return innerRenderFrames({
|
|
266
273
|
...options,
|
|
267
274
|
puppeteerInstance,
|
|
268
275
|
onError,
|
|
@@ -274,9 +281,10 @@ const renderFrames = (options) => {
|
|
|
274
281
|
downloadDir,
|
|
275
282
|
proxyPort: offthreadPort,
|
|
276
283
|
});
|
|
277
|
-
return renderFramesProm;
|
|
278
284
|
})
|
|
279
|
-
.then((res) =>
|
|
285
|
+
.then((res) => {
|
|
286
|
+
return resolve(res);
|
|
287
|
+
})
|
|
280
288
|
.catch((err) => reject(err))
|
|
281
289
|
.finally(() => {
|
|
282
290
|
// If browser instance was passed in, we close all the pages
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { RenderMediaOptions } from './render-media';
|
|
2
|
+
export declare const renderGif: ({ parallelism, proResProfile, crf, composition, imageFormat, ffmpegExecutable, inputProps, pixelFormat, codec, envVariables, quality, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, loop, skipNFrames, dumpBrowserLogs, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, ...options }: RenderMediaOptions) => Promise<void>;
|