@argo-video/cli 0.19.0 → 0.21.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/README.md +45 -3
- package/dist/camera-move.d.ts +53 -0
- package/dist/camera-move.d.ts.map +1 -0
- package/dist/camera-move.js +107 -0
- package/dist/camera-move.js.map +1 -0
- package/dist/camera.d.ts +9 -0
- package/dist/camera.d.ts.map +1 -1
- package/dist/camera.js +38 -0
- package/dist/camera.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +45 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +16 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/export.d.ts +13 -1
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +113 -11
- package/dist/export.js.map +1 -1
- package/dist/freeze.d.ts +59 -0
- package/dist/freeze.d.ts.map +1 -0
- package/dist/freeze.js +113 -0
- package/dist/freeze.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/media.d.ts +1 -0
- package/dist/media.d.ts.map +1 -1
- package/dist/media.js +20 -0
- package/dist/media.js.map +1 -1
- package/dist/music/musicgen.d.ts +43 -0
- package/dist/music/musicgen.d.ts.map +1 -0
- package/dist/music/musicgen.js +120 -0
- package/dist/music/musicgen.js.map +1 -0
- package/dist/narration.d.ts +10 -0
- package/dist/narration.d.ts.map +1 -1
- package/dist/narration.js +33 -1
- package/dist/narration.js.map +1 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +94 -14
- package/dist/pipeline.js.map +1 -1
- package/dist/preview.d.ts +4 -0
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +641 -9
- package/dist/preview.js.map +1 -1
- package/dist/record.d.ts.map +1 -1
- package/dist/record.js +26 -1
- package/dist/record.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI-generated background music via MusicGen (Transformers.js).
|
|
3
|
+
* Uses Xenova/musicgen-small (~1.8GB ONNX model, downloaded on first run).
|
|
4
|
+
*/
|
|
5
|
+
import crypto from 'node:crypto';
|
|
6
|
+
import fs from 'node:fs';
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import { createWavBuffer } from '../tts/engine.js';
|
|
9
|
+
/** MusicGen outputs audio at 32kHz sample rate. */
|
|
10
|
+
const MUSICGEN_SAMPLE_RATE = 32_000;
|
|
11
|
+
/** MusicGen uses ~50 tokens per second of audio. */
|
|
12
|
+
const TOKENS_PER_SECOND = 50;
|
|
13
|
+
const DEFAULT_DURATION_SEC = 30;
|
|
14
|
+
const DEFAULT_GUIDANCE_SCALE = 3;
|
|
15
|
+
const DEFAULT_TEMPERATURE = 1.0;
|
|
16
|
+
const MODEL_ID = 'Xenova/musicgen-small';
|
|
17
|
+
/**
|
|
18
|
+
* Compute a content-addressed cache key from all generation parameters.
|
|
19
|
+
*/
|
|
20
|
+
export function computeCacheKey(options) {
|
|
21
|
+
const { prompt, durationSec, guidanceScale, temperature } = options;
|
|
22
|
+
return crypto
|
|
23
|
+
.createHash('sha256')
|
|
24
|
+
.update(JSON.stringify({
|
|
25
|
+
prompt,
|
|
26
|
+
durationSec: durationSec ?? DEFAULT_DURATION_SEC,
|
|
27
|
+
guidanceScale: guidanceScale ?? DEFAULT_GUIDANCE_SCALE,
|
|
28
|
+
temperature: temperature ?? DEFAULT_TEMPERATURE,
|
|
29
|
+
}))
|
|
30
|
+
.digest('hex');
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Returns the cache file path for a given demo + options.
|
|
34
|
+
*/
|
|
35
|
+
export function getCachePath(argoDir, options) {
|
|
36
|
+
const hash = computeCacheKey(options);
|
|
37
|
+
return path.join(argoDir, 'music', `${hash}.wav`);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if a cached music file exists for the given options.
|
|
41
|
+
*/
|
|
42
|
+
export function isCached(argoDir, options) {
|
|
43
|
+
return fs.existsSync(getCachePath(argoDir, options));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Generate background music from a text prompt using MusicGen.
|
|
47
|
+
*
|
|
48
|
+
* The model (~1.8GB) is downloaded on first run. Generation takes ~30-60s
|
|
49
|
+
* depending on duration and hardware.
|
|
50
|
+
*
|
|
51
|
+
* Returns a WAV buffer (Float32, mono, 32kHz — ffmpeg handles resampling during export).
|
|
52
|
+
*/
|
|
53
|
+
export async function generateMusic(options) {
|
|
54
|
+
const durationSec = options.durationSec ?? DEFAULT_DURATION_SEC;
|
|
55
|
+
const guidanceScale = options.guidanceScale ?? DEFAULT_GUIDANCE_SCALE;
|
|
56
|
+
const temperature = options.temperature ?? DEFAULT_TEMPERATURE;
|
|
57
|
+
const maxNewTokens = Math.ceil(durationSec * TOKENS_PER_SECOND);
|
|
58
|
+
// Lazy-load transformers (same pattern as TTS Transformers engine)
|
|
59
|
+
let AutoTokenizer;
|
|
60
|
+
let MusicgenForConditionalGeneration;
|
|
61
|
+
try {
|
|
62
|
+
({ AutoTokenizer, MusicgenForConditionalGeneration } = await import('@huggingface/transformers'));
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
throw new Error("MusicGen requires the '@huggingface/transformers' package. " +
|
|
66
|
+
'Install it with: npm i @huggingface/transformers');
|
|
67
|
+
}
|
|
68
|
+
console.log(` \u25b8 Loading model: ${MODEL_ID}`);
|
|
69
|
+
console.log(' \u25b8 First run downloads ~1.8GB — subsequent runs use the cache');
|
|
70
|
+
const tokenizer = await AutoTokenizer.from_pretrained(MODEL_ID);
|
|
71
|
+
const model = await MusicgenForConditionalGeneration.from_pretrained(MODEL_ID, {
|
|
72
|
+
dtype: {
|
|
73
|
+
text_encoder: 'q8',
|
|
74
|
+
decoder_model_merged: 'q8',
|
|
75
|
+
encodec_decode: 'fp32',
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
console.log(` \u25b8 Generating ${durationSec}s of music...`);
|
|
79
|
+
const inputs = tokenizer(options.prompt);
|
|
80
|
+
const audioValues = await model.generate({
|
|
81
|
+
...inputs,
|
|
82
|
+
max_new_tokens: maxNewTokens,
|
|
83
|
+
do_sample: true,
|
|
84
|
+
guidance_scale: guidanceScale,
|
|
85
|
+
temperature,
|
|
86
|
+
});
|
|
87
|
+
// audioValues is a Tensor — extract the Float32Array data
|
|
88
|
+
const rawSamples = audioValues.data instanceof Float32Array
|
|
89
|
+
? audioValues.data
|
|
90
|
+
: new Float32Array(audioValues.data);
|
|
91
|
+
// Save as WAV at the native 32kHz rate — ffmpeg resamples during export
|
|
92
|
+
return createWavBuffer(rawSamples, MUSICGEN_SAMPLE_RATE);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Generate music with caching. Returns the path to the WAV file.
|
|
96
|
+
*
|
|
97
|
+
* If a cached file exists for the same prompt + parameters, skips generation.
|
|
98
|
+
* On model load or generation failure, warns and returns null (best-effort).
|
|
99
|
+
*/
|
|
100
|
+
export async function generateMusicCached(argoDir, options) {
|
|
101
|
+
const cachePath = getCachePath(argoDir, options);
|
|
102
|
+
const hash = computeCacheKey(options);
|
|
103
|
+
if (fs.existsSync(cachePath)) {
|
|
104
|
+
console.log(` \u25b8 Cached: ${path.relative('.', cachePath)}`);
|
|
105
|
+
return cachePath;
|
|
106
|
+
}
|
|
107
|
+
// Ensure cache directory exists
|
|
108
|
+
fs.mkdirSync(path.dirname(cachePath), { recursive: true });
|
|
109
|
+
try {
|
|
110
|
+
const wavBuffer = await generateMusic(options);
|
|
111
|
+
fs.writeFileSync(cachePath, wavBuffer);
|
|
112
|
+
console.log(` \u25b8 Saved: ${path.relative('.', cachePath)}`);
|
|
113
|
+
return cachePath;
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
console.warn(`\u26a0\ufe0f Music generation failed (continuing without background music): ${err.message}`);
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=musicgen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"musicgen.js","sourceRoot":"","sources":["../../src/music/musicgen.ts"],"names":[],"mappings":"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"}
|
package/dist/narration.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CameraMove } from './camera-move.js';
|
|
1
2
|
export interface SceneDurationOptions {
|
|
2
3
|
leadInMs?: number;
|
|
3
4
|
leadOutMs?: number;
|
|
@@ -11,9 +12,18 @@ export declare class NarrationTimeline {
|
|
|
11
12
|
private startTime;
|
|
12
13
|
private sceneDurations;
|
|
13
14
|
private cachedPlacements;
|
|
15
|
+
private _cameraMoves;
|
|
14
16
|
constructor(sceneDurations?: Record<string, number>);
|
|
15
17
|
start(): void;
|
|
16
18
|
mark(scene: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Record a camera move (zoom/pan) to be applied as an ffmpeg post-export effect.
|
|
21
|
+
* Call this during recording with the target element's bounding box.
|
|
22
|
+
*/
|
|
23
|
+
recordCameraMove(move: Omit<CameraMove, 'startMs'> & {
|
|
24
|
+
startMs?: number;
|
|
25
|
+
}): void;
|
|
26
|
+
getCameraMoves(): CameraMove[];
|
|
17
27
|
getTimings(): Record<string, number>;
|
|
18
28
|
flush(outputPath: string): Promise<void>;
|
|
19
29
|
private getBaseDuration;
|
package/dist/narration.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"narration.d.ts","sourceRoot":"","sources":["../src/narration.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,gBAAgB,CAA4B;
|
|
1
|
+
{"version":3,"file":"narration.d.ts","sourceRoot":"","sources":["../src/narration.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,YAAY,CAAoB;gBAE5B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMnD,KAAK,IAAI,IAAI;IAMb,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAsBzB;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAQhF,cAAc,IAAI,UAAU,EAAE;IAI9B,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9B,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9C,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,aAAa;IAerB;;;;;;;;OAQG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM;CAmBnE"}
|
package/dist/narration.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { appendFileSync } from 'node:fs';
|
|
1
2
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
3
|
import { dirname } from 'node:path';
|
|
3
4
|
import { schedulePlacements } from './tts/align.js';
|
|
@@ -6,6 +7,7 @@ export class NarrationTimeline {
|
|
|
6
7
|
startTime = null;
|
|
7
8
|
sceneDurations = {};
|
|
8
9
|
cachedPlacements = null;
|
|
10
|
+
_cameraMoves = [];
|
|
9
11
|
constructor(sceneDurations) {
|
|
10
12
|
if (sceneDurations) {
|
|
11
13
|
this.sceneDurations = sceneDurations;
|
|
@@ -23,8 +25,33 @@ export class NarrationTimeline {
|
|
|
23
25
|
if (this.timings.has(scene)) {
|
|
24
26
|
throw new Error(`Duplicate scene name: "${scene}"`);
|
|
25
27
|
}
|
|
26
|
-
|
|
28
|
+
const ms = Date.now() - this.startTime;
|
|
29
|
+
this.timings.set(scene, ms);
|
|
27
30
|
this.cachedPlacements = null;
|
|
31
|
+
// Append to JSONL progress file for live scene status in the parent process
|
|
32
|
+
const progressPath = process.env.ARGO_PROGRESS_PATH;
|
|
33
|
+
if (progressPath) {
|
|
34
|
+
try {
|
|
35
|
+
appendFileSync(progressPath, JSON.stringify({ scene, ms }) + '\n');
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Best-effort — don't fail recording over progress reporting
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Record a camera move (zoom/pan) to be applied as an ffmpeg post-export effect.
|
|
44
|
+
* Call this during recording with the target element's bounding box.
|
|
45
|
+
*/
|
|
46
|
+
recordCameraMove(move) {
|
|
47
|
+
if (this.startTime === null) {
|
|
48
|
+
throw new Error('Cannot record camera move before start() has been called');
|
|
49
|
+
}
|
|
50
|
+
const startMs = move.startMs ?? (Date.now() - this.startTime);
|
|
51
|
+
this._cameraMoves.push({ ...move, startMs });
|
|
52
|
+
}
|
|
53
|
+
getCameraMoves() {
|
|
54
|
+
return [...this._cameraMoves];
|
|
28
55
|
}
|
|
29
56
|
getTimings() {
|
|
30
57
|
return Object.fromEntries(this.timings);
|
|
@@ -32,6 +59,11 @@ export class NarrationTimeline {
|
|
|
32
59
|
async flush(outputPath) {
|
|
33
60
|
await mkdir(dirname(outputPath), { recursive: true });
|
|
34
61
|
await writeFile(outputPath, JSON.stringify(this.getTimings(), null, 2), 'utf-8');
|
|
62
|
+
// Write camera moves to a sidecar file if any were recorded
|
|
63
|
+
if (this._cameraMoves.length > 0) {
|
|
64
|
+
const cameraMovesPath = outputPath.replace(/\.json$/, '') + '.camera-moves.json';
|
|
65
|
+
await writeFile(cameraMovesPath, JSON.stringify(this._cameraMoves, null, 2), 'utf-8');
|
|
66
|
+
}
|
|
35
67
|
}
|
|
36
68
|
getBaseDuration(scene, options) {
|
|
37
69
|
const clipMs = this.sceneDurations[scene];
|
package/dist/narration.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"narration.js","sourceRoot":"","sources":["../src/narration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAkB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"narration.js","sourceRoot":"","sources":["../src/narration.ts"],"names":[],"mappings":"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"}
|
package/dist/pipeline.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAY9C,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CASxD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC,EACxG,YAAY,CAAC,EAAE,eAAe,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC,EACxG,YAAY,CAAC,EAAE,eAAe,GAC7B,OAAO,CAAC,MAAM,CAAC,CAiZjB"}
|
package/dist/pipeline.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, mkdirSync, readdirSync } from 'node:fs';
|
|
1
|
+
import { readFileSync, writeFileSync, mkdirSync, readdirSync, existsSync } from 'node:fs';
|
|
2
2
|
import { join, basename } from 'node:path';
|
|
3
3
|
import { generateClips } from './tts/generate.js';
|
|
4
4
|
import { record } from './record.js';
|
|
@@ -9,7 +9,11 @@ import { generateSrt, generateVtt } from './subtitles.js';
|
|
|
9
9
|
import { generateChapterMetadata } from './chapters.js';
|
|
10
10
|
import { buildSceneReport, formatSceneReport } from './report.js';
|
|
11
11
|
import { applySpeedRampToTimeline } from './speed-ramp.js';
|
|
12
|
+
import { shiftCameraMoves, scaleCameraMoves } from './camera-move.js';
|
|
13
|
+
import { resolveFreezes, adjustPlacementsForFreezes, totalFreezeDurationMs, } from './freeze.js';
|
|
12
14
|
import { getVideoDurationMs } from './media.js';
|
|
15
|
+
// Note: MusicGen (AI music generation) is a preview-only feature — runs in browser via WebGPU.
|
|
16
|
+
// Pipeline uses saved WAV files via audio.music config path.
|
|
13
17
|
import { buildPlacementsFromTimingAndDurations, buildSceneTexts, computeHeadTrimMs, readScenesManifest, shiftPlacements, } from './timeline.js';
|
|
14
18
|
/**
|
|
15
19
|
* Discover all demo names in the demos directory by looking for `.scenes.json` files.
|
|
@@ -63,7 +67,7 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
63
67
|
const argoDir = join('.argo', demoName);
|
|
64
68
|
mkdirSync(argoDir, { recursive: true });
|
|
65
69
|
// Step 1: Generate TTS clips
|
|
66
|
-
console.log('
|
|
70
|
+
console.log('🎙️ Brewing voiceover clips...');
|
|
67
71
|
const clipResults = await generateClips({
|
|
68
72
|
manifestPath: `${config.demosDir}/${demoName}.scenes.json`,
|
|
69
73
|
demoName,
|
|
@@ -79,8 +83,11 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
79
83
|
}
|
|
80
84
|
const sceneDurationsPath = join(argoDir, '.scene-durations.json');
|
|
81
85
|
writeFileSync(sceneDurationsPath, JSON.stringify(sceneDurations, null, 2), 'utf-8');
|
|
86
|
+
// Note: AI music generation (MusicGen) is a preview-only feature.
|
|
87
|
+
// Users generate + audition clips in the browser (WebGPU), then save
|
|
88
|
+
// the selected WAV. Pipeline uses the saved file via audio.music.
|
|
82
89
|
// Step 2: Record browser demo
|
|
83
|
-
console.log('
|
|
90
|
+
console.log('🎬 Rolling camera...');
|
|
84
91
|
const { timingPath } = await record(demoName, {
|
|
85
92
|
demosDir: config.demosDir,
|
|
86
93
|
baseURL: config.baseURL,
|
|
@@ -103,6 +110,17 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
103
110
|
throw new Error(`Failed to parse timing file at ${timingPath}: ${err.message}. ` +
|
|
104
111
|
`The file may be corrupt from an interrupted recording. Try re-running: argo record ${demoName}`);
|
|
105
112
|
}
|
|
113
|
+
// Read camera moves if recorded by zoomTo with narration option
|
|
114
|
+
let cameraMoves = [];
|
|
115
|
+
const cameraMovesPath = join(argoDir, '.timing.camera-moves.json');
|
|
116
|
+
try {
|
|
117
|
+
if (existsSync(cameraMovesPath)) {
|
|
118
|
+
cameraMoves = JSON.parse(readFileSync(cameraMovesPath, 'utf-8'));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
// Camera moves are optional — don't fail the pipeline
|
|
123
|
+
}
|
|
106
124
|
// Use actual video duration for alignment
|
|
107
125
|
const videoPath = join(argoDir, 'video.webm');
|
|
108
126
|
const totalDurationMs = getVideoDurationMs(videoPath);
|
|
@@ -113,7 +131,7 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
113
131
|
// Auto-trim: skip setup before first scene mark (with 200ms lead-in)
|
|
114
132
|
const headTrimMs = computeHeadTrimMs(timing);
|
|
115
133
|
if (!isSilent) {
|
|
116
|
-
console.log('
|
|
134
|
+
console.log('🎧 Mixing the soundtrack...');
|
|
117
135
|
// Load WAV clips into memory
|
|
118
136
|
const clips = clipResults.map((cr) => {
|
|
119
137
|
const wavBuf = readFileSync(cr.clipPath);
|
|
@@ -144,12 +162,38 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
144
162
|
shiftedPlacements = shiftPlacements(buildPlacementsFromTimingAndDurations(timing, sceneDurations, totalDurationMs), headTrimMs);
|
|
145
163
|
}
|
|
146
164
|
const speedRampPlan = applySpeedRampToTimeline(shiftedPlacements, shiftedDurationMs, config.export.speedRamp);
|
|
147
|
-
|
|
148
|
-
const
|
|
165
|
+
// Read freeze-frame holds from scenes manifest `post` arrays
|
|
166
|
+
const manifestPath = `${config.demosDir}/${demoName}.scenes.json`;
|
|
167
|
+
const freezeSpecs = [];
|
|
168
|
+
try {
|
|
169
|
+
const rawManifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
|
|
170
|
+
for (const entry of rawManifest) {
|
|
171
|
+
if (!entry.scene || !Array.isArray(entry.post))
|
|
172
|
+
continue;
|
|
173
|
+
for (const effect of entry.post) {
|
|
174
|
+
if (effect.type === 'freeze' &&
|
|
175
|
+
typeof effect.atMs === 'number' &&
|
|
176
|
+
typeof effect.durationMs === 'number') {
|
|
177
|
+
freezeSpecs.push({
|
|
178
|
+
scene: entry.scene,
|
|
179
|
+
atMs: effect.atMs,
|
|
180
|
+
durationMs: effect.durationMs,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
// Manifest read errors are handled elsewhere — freezes are best-effort
|
|
188
|
+
}
|
|
189
|
+
// Resolve freeze specs to absolute timeline positions and adjust placements
|
|
190
|
+
const resolvedFreezes = resolveFreezes(freezeSpecs, speedRampPlan.placements);
|
|
191
|
+
const finalPlacements = adjustPlacementsForFreezes(speedRampPlan.placements, resolvedFreezes);
|
|
192
|
+
const freezeAddedMs = totalFreezeDurationMs(resolvedFreezes);
|
|
193
|
+
const finalDurationMs = speedRampPlan.totalDurationMs + freezeAddedMs;
|
|
149
194
|
// Ensure output directory exists before writing subtitles
|
|
150
195
|
mkdirSync(config.outputDir, { recursive: true });
|
|
151
196
|
// Build scene text map for subtitles
|
|
152
|
-
const manifestPath = `${config.demosDir}/${demoName}.scenes.json`;
|
|
153
197
|
try {
|
|
154
198
|
const sceneTexts = buildSceneTexts(readScenesManifest(manifestPath));
|
|
155
199
|
// Generate subtitles on the final export timeline.
|
|
@@ -166,7 +210,7 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
166
210
|
const chapterMetadata = generateChapterMetadata(finalPlacements, finalDurationMs);
|
|
167
211
|
writeFileSync(chapterMetadataPath, chapterMetadata, 'utf-8');
|
|
168
212
|
// Step 4: Export final video
|
|
169
|
-
console.log('
|
|
213
|
+
console.log('🎞️ Cutting the final take...');
|
|
170
214
|
const exportOptions = {
|
|
171
215
|
demoName,
|
|
172
216
|
argoDir: '.argo',
|
|
@@ -185,11 +229,23 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
185
229
|
totalDurationMs: finalDurationMs,
|
|
186
230
|
speedRampSegments: speedRampPlan.segments,
|
|
187
231
|
loudnorm: config.export.audio?.loudnorm,
|
|
232
|
+
musicPath: config.export.audio?.music,
|
|
233
|
+
musicVolume: config.export.audio?.musicVolume,
|
|
234
|
+
watermark: config.export.watermark,
|
|
188
235
|
};
|
|
236
|
+
if (resolvedFreezes.length > 0) {
|
|
237
|
+
exportOptions.freezeSpecs = resolvedFreezes;
|
|
238
|
+
}
|
|
189
239
|
if (tailPadMs !== undefined)
|
|
190
240
|
exportOptions.tailPadMs = tailPadMs;
|
|
191
241
|
if (headTrimMs > 0)
|
|
192
242
|
exportOptions.headTrimMs = headTrimMs;
|
|
243
|
+
// Apply camera moves — shift for head trim, scale for deviceScaleFactor
|
|
244
|
+
if (cameraMoves.length > 0) {
|
|
245
|
+
let moves = shiftCameraMoves(cameraMoves, headTrimMs);
|
|
246
|
+
moves = scaleCameraMoves(moves, config.video.deviceScaleFactor ?? 1);
|
|
247
|
+
exportOptions.cameraMoves = moves;
|
|
248
|
+
}
|
|
193
249
|
const outputPath = await exportVideo(exportOptions);
|
|
194
250
|
// Scene report
|
|
195
251
|
const report = buildSceneReport(demoName, finalPlacements, overflowMs, finalDurationMs, outputPath);
|
|
@@ -229,13 +285,13 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
229
285
|
output: outputPath,
|
|
230
286
|
};
|
|
231
287
|
writeFileSync(join(config.outputDir, `${demoName}.meta.json`), JSON.stringify(pipelineMeta, null, 2) + '\n', 'utf-8');
|
|
232
|
-
console.log(`\n
|
|
288
|
+
console.log(`\n🚀 That's a wrap! Video saved to: ${outputPath}`);
|
|
233
289
|
// Viewport-native variants — re-record at different viewports
|
|
234
290
|
const variants = config.export.variants;
|
|
235
291
|
if (variants && variants.length > 0) {
|
|
236
292
|
for (const variant of variants) {
|
|
237
293
|
console.log(`\n${'─'.repeat(50)}`);
|
|
238
|
-
console.log(` Variant: ${variant.name} (${variant.video.width}×${variant.video.height})`);
|
|
294
|
+
console.log(` 📐 Variant: ${variant.name} (${variant.video.width}×${variant.video.height})`);
|
|
239
295
|
console.log(`${'─'.repeat(50)}\n`);
|
|
240
296
|
const variantArgoDir = join('.argo', `${demoName}-${variant.name}`);
|
|
241
297
|
mkdirSync(variantArgoDir, { recursive: true });
|
|
@@ -243,7 +299,7 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
243
299
|
writeFileSync(join(variantArgoDir, '.scene-durations.json'), JSON.stringify(sceneDurations, null, 2), 'utf-8');
|
|
244
300
|
// Record at variant viewport
|
|
245
301
|
const variantSubdir = `${demoName}-${variant.name}`;
|
|
246
|
-
console.log('
|
|
302
|
+
console.log('🎬 Rolling camera...');
|
|
247
303
|
const variantRecord = await record(demoName, {
|
|
248
304
|
demosDir: config.demosDir,
|
|
249
305
|
baseURL: config.baseURL,
|
|
@@ -266,7 +322,7 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
266
322
|
let variantPlacements = [];
|
|
267
323
|
let variantShiftedDurationMs = variantDurationMs;
|
|
268
324
|
if (!isSilent) {
|
|
269
|
-
console.log('
|
|
325
|
+
console.log('🎧 Mixing the soundtrack...');
|
|
270
326
|
const clips = clipResults.map((cr) => {
|
|
271
327
|
const wavBuf = readFileSync(cr.clipPath);
|
|
272
328
|
const header = parseWavHeader(wavBuf);
|
|
@@ -287,8 +343,14 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
287
343
|
}));
|
|
288
344
|
variantShiftedDurationMs = variantDurationMs - variantHeadTrimMs;
|
|
289
345
|
}
|
|
346
|
+
// Resolve freeze-frame holds for variant
|
|
347
|
+
const variantResolvedFreezes = resolveFreezes(freezeSpecs, variantPlacements);
|
|
348
|
+
if (variantResolvedFreezes.length > 0) {
|
|
349
|
+
variantPlacements = adjustPlacementsForFreezes(variantPlacements, variantResolvedFreezes);
|
|
350
|
+
variantShiftedDurationMs += totalFreezeDurationMs(variantResolvedFreezes);
|
|
351
|
+
}
|
|
290
352
|
// Export variant
|
|
291
|
-
console.log('
|
|
353
|
+
console.log('🎞️ Cutting the final take...');
|
|
292
354
|
const variantChapterPath = join('.argo', variantSubdir, 'chapters.txt');
|
|
293
355
|
writeFileSync(variantChapterPath, generateChapterMetadata(variantPlacements, variantShiftedDurationMs), 'utf-8');
|
|
294
356
|
// Subtitles — read from manifest file directly for text field
|
|
@@ -307,6 +369,19 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
307
369
|
writeFileSync(join(config.outputDir, `${demoName}.${variant.name}.vtt`), generateVtt(variantPlacements, variantSceneTexts), 'utf-8');
|
|
308
370
|
}
|
|
309
371
|
catch { /* subtitles are best-effort */ }
|
|
372
|
+
// Read camera moves for this variant if recorded
|
|
373
|
+
let variantCameraMoves = [];
|
|
374
|
+
const variantCameraMovesPath = join('.argo', variantSubdir, '.timing.camera-moves.json');
|
|
375
|
+
try {
|
|
376
|
+
if (existsSync(variantCameraMovesPath)) {
|
|
377
|
+
variantCameraMoves = JSON.parse(readFileSync(variantCameraMovesPath, 'utf-8'));
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
catch { /* optional */ }
|
|
381
|
+
if (variantCameraMoves.length > 0) {
|
|
382
|
+
variantCameraMoves = shiftCameraMoves(variantCameraMoves, variantHeadTrimMs);
|
|
383
|
+
variantCameraMoves = scaleCameraMoves(variantCameraMoves, config.video.deviceScaleFactor ?? 1);
|
|
384
|
+
}
|
|
310
385
|
const variantOutputPath = await exportVideo({
|
|
311
386
|
demoName: variantSubdir,
|
|
312
387
|
argoDir: '.argo',
|
|
@@ -322,8 +397,13 @@ export async function runPipeline(demoName, config, pipelineOpts) {
|
|
|
322
397
|
totalDurationMs: variantShiftedDurationMs,
|
|
323
398
|
headTrimMs: variantHeadTrimMs > 0 ? variantHeadTrimMs : undefined,
|
|
324
399
|
loudnorm: config.export.audio?.loudnorm,
|
|
400
|
+
musicPath: config.export.audio?.music,
|
|
401
|
+
musicVolume: config.export.audio?.musicVolume,
|
|
402
|
+
cameraMoves: variantCameraMoves.length > 0 ? variantCameraMoves : undefined,
|
|
403
|
+
watermark: config.export.watermark,
|
|
404
|
+
freezeSpecs: variantResolvedFreezes.length > 0 ? variantResolvedFreezes : undefined,
|
|
325
405
|
});
|
|
326
|
-
console.log(
|
|
406
|
+
console.log(`🚀 Variant saved to: ${variantOutputPath}`);
|
|
327
407
|
}
|
|
328
408
|
}
|
|
329
409
|
return outputPath;
|
package/dist/pipeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/preview.d.ts
CHANGED
|
@@ -18,6 +18,10 @@ export interface PreviewExportConfig {
|
|
|
18
18
|
formats?: Array<'1:1' | '9:16' | 'gif'>;
|
|
19
19
|
transition?: import('./config.js').TransitionConfig;
|
|
20
20
|
speedRamp?: import('./config.js').SpeedRampConfig;
|
|
21
|
+
loudnorm?: boolean;
|
|
22
|
+
musicPath?: string;
|
|
23
|
+
musicVolume?: number;
|
|
24
|
+
watermark?: import('./config.js').WatermarkConfig;
|
|
21
25
|
}
|
|
22
26
|
export interface PreviewOptions {
|
|
23
27
|
demoName: string;
|
package/dist/preview.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkBH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,aAAa,EAAE,gBAAgB,CAAC;IACpD,SAAS,CAAC,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC;CACnD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAyXD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAihB7G"}
|