@vibeo/renderer 0.1.0
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/browser.d.ts +15 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +40 -0
- package/dist/browser.js.map +1 -0
- package/dist/bundler.d.ts +10 -0
- package/dist/bundler.d.ts.map +1 -0
- package/dist/bundler.js +135 -0
- package/dist/bundler.js.map +1 -0
- package/dist/capture-frame.d.ts +12 -0
- package/dist/capture-frame.d.ts.map +1 -0
- package/dist/capture-frame.js +21 -0
- package/dist/capture-frame.js.map +1 -0
- package/dist/frame-range.d.ts +15 -0
- package/dist/frame-range.d.ts.map +1 -0
- package/dist/frame-range.js +55 -0
- package/dist/frame-range.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/parallel-render.d.ts +22 -0
- package/dist/parallel-render.d.ts.map +1 -0
- package/dist/parallel-render.js +69 -0
- package/dist/parallel-render.js.map +1 -0
- package/dist/render-composition.d.ts +19 -0
- package/dist/render-composition.d.ts.map +1 -0
- package/dist/render-composition.js +104 -0
- package/dist/render-composition.js.map +1 -0
- package/dist/seek-to-frame.d.ts +15 -0
- package/dist/seek-to-frame.d.ts.map +1 -0
- package/dist/seek-to-frame.js +58 -0
- package/dist/seek-to-frame.js.map +1 -0
- package/dist/stitch-audio.d.ts +7 -0
- package/dist/stitch-audio.d.ts.map +1 -0
- package/dist/stitch-audio.js +53 -0
- package/dist/stitch-audio.js.map +1 -0
- package/dist/stitch-frames.d.ts +11 -0
- package/dist/stitch-frames.d.ts.map +1 -0
- package/dist/stitch-frames.js +77 -0
- package/dist/stitch-frames.js.map +1 -0
- package/dist/types.d.ts +74 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +33 -0
- package/src/browser.ts +48 -0
- package/src/bundler.ts +146 -0
- package/src/capture-frame.ts +39 -0
- package/src/frame-range.ts +81 -0
- package/src/index.ts +36 -0
- package/src/parallel-render.ts +134 -0
- package/src/render-composition.ts +144 -0
- package/src/seek-to-frame.ts +89 -0
- package/src/stitch-audio.ts +79 -0
- package/src/stitch-frames.ts +95 -0
- package/src/types.ts +80 -0
package/src/types.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export type Codec = "h264" | "h265" | "vp9" | "prores";
|
|
2
|
+
|
|
3
|
+
export type ImageFormat = "png" | "jpeg";
|
|
4
|
+
|
|
5
|
+
export type FrameRange = [startFrame: number, endFrame: number];
|
|
6
|
+
|
|
7
|
+
export interface RenderConfig {
|
|
8
|
+
/** Path to the entry file containing compositions */
|
|
9
|
+
entry: string;
|
|
10
|
+
/** Composition ID to render */
|
|
11
|
+
compositionId: string;
|
|
12
|
+
/** Output file path */
|
|
13
|
+
outputPath: string;
|
|
14
|
+
/** Video codec */
|
|
15
|
+
codec: Codec;
|
|
16
|
+
/** Image format for intermediate frames */
|
|
17
|
+
imageFormat: ImageFormat;
|
|
18
|
+
/** JPEG quality (0-100), only used when imageFormat is "jpeg" */
|
|
19
|
+
quality: number;
|
|
20
|
+
/** Frames per second override (uses composition fps if not set) */
|
|
21
|
+
fps: number | null;
|
|
22
|
+
/** Frame range to render [start, end] */
|
|
23
|
+
frameRange: FrameRange | null;
|
|
24
|
+
/** Number of parallel browser tabs */
|
|
25
|
+
concurrency: number;
|
|
26
|
+
/** Pixel format for ffmpeg */
|
|
27
|
+
pixelFormat: string;
|
|
28
|
+
/** Progress callback */
|
|
29
|
+
onProgress?: (progress: RenderProgress) => void;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface RenderProgress {
|
|
33
|
+
/** Number of frames rendered so far */
|
|
34
|
+
framesRendered: number;
|
|
35
|
+
/** Total frames to render */
|
|
36
|
+
totalFrames: number;
|
|
37
|
+
/** Progress as a fraction 0-1 */
|
|
38
|
+
percent: number;
|
|
39
|
+
/** Estimated time remaining in milliseconds */
|
|
40
|
+
etaMs: number | null;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface StitchOptions {
|
|
44
|
+
/** Directory containing frame images */
|
|
45
|
+
framesDir: string;
|
|
46
|
+
/** Output video file path */
|
|
47
|
+
outputPath: string;
|
|
48
|
+
/** Frames per second */
|
|
49
|
+
fps: number;
|
|
50
|
+
/** Video codec */
|
|
51
|
+
codec: Codec;
|
|
52
|
+
/** Image format of the frames */
|
|
53
|
+
imageFormat: ImageFormat;
|
|
54
|
+
/** Pixel format */
|
|
55
|
+
pixelFormat: string;
|
|
56
|
+
/** Quality (crf for h264/h265/vp9, profile for prores) */
|
|
57
|
+
quality: number;
|
|
58
|
+
/** Width of the video */
|
|
59
|
+
width: number;
|
|
60
|
+
/** Height of the video */
|
|
61
|
+
height: number;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface AudioMuxOptions {
|
|
65
|
+
/** Video file to mux audio into */
|
|
66
|
+
videoPath: string;
|
|
67
|
+
/** Audio file paths */
|
|
68
|
+
audioPaths: string[];
|
|
69
|
+
/** Output file path */
|
|
70
|
+
outputPath: string;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface BundleResult {
|
|
74
|
+
/** Directory containing the bundled output */
|
|
75
|
+
outDir: string;
|
|
76
|
+
/** URL to access the bundled app */
|
|
77
|
+
url: string;
|
|
78
|
+
/** Cleanup function to stop the server and remove temp files */
|
|
79
|
+
cleanup: () => Promise<void>;
|
|
80
|
+
}
|