@remotion/renderer 3.3.100 → 3.3.101
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.
|
@@ -11,5 +11,5 @@ declare type Options = {
|
|
|
11
11
|
totalSize: number | null;
|
|
12
12
|
}) => void) | undefined;
|
|
13
13
|
};
|
|
14
|
-
export declare const downloadFile: (options: Options, retries?: number) => Promise<Response>;
|
|
14
|
+
export declare const downloadFile: (options: Options, retries?: number, attempt?: number) => Promise<Response>;
|
|
15
15
|
export {};
|
|
@@ -4,6 +4,7 @@ exports.downloadFile = void 0;
|
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const ensure_output_directory_1 = require("../ensure-output-directory");
|
|
6
6
|
const read_file_1 = require("./read-file");
|
|
7
|
+
const incorrectContentLengthToken = 'Download finished with';
|
|
7
8
|
const downloadFileWithoutRetries = ({ onProgress, url, to: toFn }) => {
|
|
8
9
|
return new Promise((resolve, reject) => {
|
|
9
10
|
let rejected = false;
|
|
@@ -76,7 +77,7 @@ const downloadFileWithoutRetries = ({ onProgress, url, to: toFn }) => {
|
|
|
76
77
|
});
|
|
77
78
|
res.on('close', () => {
|
|
78
79
|
if (totalSize !== null && downloaded !== totalSize) {
|
|
79
|
-
rejectAndFlag(new Error(
|
|
80
|
+
rejectAndFlag(new Error(`${incorrectContentLengthToken} ${downloaded} bytes, but expected ${totalSize} bytes from 'Content-Length'.`));
|
|
80
81
|
}
|
|
81
82
|
writeStream.close();
|
|
82
83
|
});
|
|
@@ -86,17 +87,23 @@ const downloadFileWithoutRetries = ({ onProgress, url, to: toFn }) => {
|
|
|
86
87
|
});
|
|
87
88
|
});
|
|
88
89
|
};
|
|
89
|
-
const downloadFile = async (options, retries = 2) => {
|
|
90
|
+
const downloadFile = async (options, retries = 2, attempt = 1) => {
|
|
90
91
|
try {
|
|
91
92
|
const res = await downloadFileWithoutRetries(options);
|
|
92
93
|
return res;
|
|
93
94
|
}
|
|
94
95
|
catch (err) {
|
|
95
|
-
|
|
96
|
+
const { message } = err;
|
|
97
|
+
if (message === 'aborted' ||
|
|
98
|
+
message.includes(incorrectContentLengthToken)) {
|
|
96
99
|
if (retries === 0) {
|
|
97
100
|
throw err;
|
|
98
101
|
}
|
|
99
|
-
|
|
102
|
+
const backoffInSeconds = (attempt + 1) ** 2;
|
|
103
|
+
await new Promise((resolve) => {
|
|
104
|
+
setTimeout(() => resolve(), backoffInSeconds * 1000);
|
|
105
|
+
});
|
|
106
|
+
return (0, exports.downloadFile)(options, retries - 1, attempt + 1);
|
|
100
107
|
}
|
|
101
108
|
throw err;
|
|
102
109
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -77,7 +77,7 @@ export declare const RenderInternals: {
|
|
|
77
77
|
downloaded: number;
|
|
78
78
|
totalSize: number | null;
|
|
79
79
|
}) => void) | undefined;
|
|
80
|
-
}, retries?: number) => Promise<{
|
|
80
|
+
}, retries?: number, attempt?: number) => Promise<{
|
|
81
81
|
sizeInBytes: number;
|
|
82
82
|
to: string;
|
|
83
83
|
}>;
|
|
@@ -119,8 +119,8 @@ export declare const RenderInternals: {
|
|
|
119
119
|
validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
120
120
|
DEFAULT_BROWSER: import("./browser").Browser;
|
|
121
121
|
validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
|
|
122
|
-
DEFAULT_OPENGL_RENDERER: "
|
|
123
|
-
validateOpenGlRenderer: (option: "
|
|
122
|
+
DEFAULT_OPENGL_RENDERER: "swangle" | "angle" | "egl" | "swiftshader" | null;
|
|
123
|
+
validateOpenGlRenderer: (option: "swangle" | "angle" | "egl" | "swiftshader" | null) => "swangle" | "angle" | "egl" | "swiftshader" | null;
|
|
124
124
|
validImageFormats: readonly ["png", "jpeg", "none"];
|
|
125
125
|
validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
|
|
126
126
|
DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
@@ -6,6 +6,16 @@ import type { ImageFormat } from './image-format';
|
|
|
6
6
|
import type { CancelSignal } from './make-cancel-signal';
|
|
7
7
|
import type { PixelFormat } from './pixel-format';
|
|
8
8
|
import type { ProResProfile } from './prores-profile';
|
|
9
|
+
declare type RunningStatus = {
|
|
10
|
+
type: 'running';
|
|
11
|
+
} | {
|
|
12
|
+
type: 'quit-successfully';
|
|
13
|
+
stderr: string;
|
|
14
|
+
} | {
|
|
15
|
+
type: 'quit-with-error';
|
|
16
|
+
exitCode: number;
|
|
17
|
+
stderr: string;
|
|
18
|
+
};
|
|
9
19
|
declare type PreSticherOptions = {
|
|
10
20
|
fps: number;
|
|
11
21
|
width: number;
|
|
@@ -26,5 +36,6 @@ declare type PreSticherOptions = {
|
|
|
26
36
|
export declare const prespawnFfmpeg: (options: PreSticherOptions, remotionRoot: string) => Promise<{
|
|
27
37
|
task: execa.ExecaChildProcess<string>;
|
|
28
38
|
getLogs: () => string;
|
|
39
|
+
getExitStatus: () => RunningStatus;
|
|
29
40
|
}>;
|
|
30
41
|
export {};
|
package/dist/prespawn-ffmpeg.js
CHANGED
|
@@ -95,6 +95,24 @@ const prespawnFfmpeg = async (options, remotionRoot) => {
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
});
|
|
98
|
-
|
|
98
|
+
let exitCode = {
|
|
99
|
+
type: 'running',
|
|
100
|
+
};
|
|
101
|
+
task.on('exit', (code) => {
|
|
102
|
+
if (typeof code === 'number' && code > 0) {
|
|
103
|
+
exitCode = {
|
|
104
|
+
type: 'quit-with-error',
|
|
105
|
+
exitCode: code,
|
|
106
|
+
stderr: ffmpegOutput,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
exitCode = {
|
|
111
|
+
type: 'quit-successfully',
|
|
112
|
+
stderr: ffmpegOutput,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
return { task, getLogs: () => ffmpegOutput, getExitStatus: () => exitCode };
|
|
99
117
|
};
|
|
100
118
|
exports.prespawnFfmpeg = prespawnFfmpeg;
|
package/dist/render-media.d.ts
CHANGED
package/dist/render-media.js
CHANGED
|
@@ -252,6 +252,13 @@ const renderMedia = ({ proResProfile, crf, composition, ffmpegExecutable, ffprob
|
|
|
252
252
|
return;
|
|
253
253
|
}
|
|
254
254
|
const id = (0, perf_1.startPerfMeasure)('piping');
|
|
255
|
+
const exitStatus = preStitcher === null || preStitcher === void 0 ? void 0 : preStitcher.getExitStatus();
|
|
256
|
+
if ((exitStatus === null || exitStatus === void 0 ? void 0 : exitStatus.type) === 'quit-successfully') {
|
|
257
|
+
throw new Error(`FFmpeg already quit while trying to pipe frame ${frame} to it. Stderr: ${exitStatus.stderr}}`);
|
|
258
|
+
}
|
|
259
|
+
if ((exitStatus === null || exitStatus === void 0 ? void 0 : exitStatus.type) === 'quit-with-error') {
|
|
260
|
+
throw new Error(`FFmpeg quit with code ${exitStatus.exitCode} while piping frame ${frame}. Stderr: ${exitStatus.stderr}}`);
|
|
261
|
+
}
|
|
255
262
|
(_a = stitcherFfmpeg === null || stitcherFfmpeg === void 0 ? void 0 : stitcherFfmpeg.stdin) === null || _a === void 0 ? void 0 : _a.write(buffer);
|
|
256
263
|
(0, perf_1.stopPerfMeasure)(id);
|
|
257
264
|
setFrameToStitch(Math.min(realFrameRange[1] + 1, frame + everyNthFrame));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/renderer",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.101",
|
|
4
4
|
"description": "Renderer for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"execa": "5.1.1",
|
|
18
18
|
"extract-zip": "2.0.1",
|
|
19
|
-
"remotion": "3.3.
|
|
19
|
+
"remotion": "3.3.101",
|
|
20
20
|
"source-map": "^0.8.0-beta.0",
|
|
21
21
|
"ws": "8.7.0"
|
|
22
22
|
},
|
|
@@ -41,13 +41,13 @@
|
|
|
41
41
|
"vitest": "0.24.3"
|
|
42
42
|
},
|
|
43
43
|
"optionalDependencies": {
|
|
44
|
-
"@remotion/compositor-darwin-arm64": "3.3.
|
|
45
|
-
"@remotion/compositor-darwin-x64": "3.3.
|
|
46
|
-
"@remotion/compositor-linux-arm64-gnu": "3.3.
|
|
47
|
-
"@remotion/compositor-linux-arm64-musl": "3.3.
|
|
48
|
-
"@remotion/compositor-linux-x64-gnu": "3.3.
|
|
49
|
-
"@remotion/compositor-linux-x64-musl": "3.3.
|
|
50
|
-
"@remotion/compositor-win32-x64-msvc": "3.3.
|
|
44
|
+
"@remotion/compositor-darwin-arm64": "3.3.101",
|
|
45
|
+
"@remotion/compositor-darwin-x64": "3.3.101",
|
|
46
|
+
"@remotion/compositor-linux-arm64-gnu": "3.3.101",
|
|
47
|
+
"@remotion/compositor-linux-arm64-musl": "3.3.101",
|
|
48
|
+
"@remotion/compositor-linux-x64-gnu": "3.3.101",
|
|
49
|
+
"@remotion/compositor-linux-x64-musl": "3.3.101",
|
|
50
|
+
"@remotion/compositor-win32-x64-msvc": "3.3.101"
|
|
51
51
|
},
|
|
52
52
|
"keywords": [
|
|
53
53
|
"remotion",
|