playwright-recast 0.3.0 → 0.3.2

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 CHANGED
@@ -187,6 +187,8 @@ Every stage is optional and composable:
187
187
  | `.subtitles(textFn)` | Generate subtitles from trace actions |
188
188
  | `.subtitlesFromSrt(path)` | Load subtitles from an external SRT file |
189
189
  | `.subtitlesFromTrace()` | Auto-generate subtitles from BDD step titles in trace |
190
+ | `.autoZoom(config)` | Auto-zoom to user interaction targets detected from trace |
191
+ | `.enrichZoomFromReport(steps)` | Apply zoom coordinates from external report data |
190
192
  | `.voiceover(provider)` | Generate TTS audio from subtitle text |
191
193
  | `.render(config)` | Render final video (format, resolution, fps, styled subtitle burn-in) |
192
194
  | `.toFile(path)` | Execute pipeline and write output |
@@ -258,6 +260,77 @@ Requires `ELEVENLABS_API_KEY` environment variable or `apiKey` option.
258
260
 
259
261
  ---
260
262
 
263
+ ## Zoom
264
+
265
+ Zoom into specific areas of the video during steps — focus the viewer's attention on the relevant UI element.
266
+
267
+ ### Auto-zoom from trace
268
+
269
+ Automatically zoom into user interaction targets (clicks, fills) detected from the trace:
270
+
271
+ ```typescript
272
+ await Recast
273
+ .from('./traces')
274
+ .parse()
275
+ .subtitlesFromSrt('./narration.srt')
276
+ .autoZoom({ actionLevel: 1.5 }) // 1.5x zoom on detected actions
277
+ .render({ format: 'mp4' })
278
+ .toFile('demo.mp4')
279
+ ```
280
+
281
+ `autoZoom()` finds click/fill/type actions in the trace, extracts their cursor coordinates, and applies crop-and-scale zoom during the matching subtitle's time window.
282
+
283
+ ### Zoom from report data
284
+
285
+ Apply zoom coordinates from an external source (e.g., a demo report with per-step zoom data):
286
+
287
+ ```typescript
288
+ const reportSteps = [
289
+ { zoom: null }, // Step 1: no zoom
290
+ { zoom: { x: 0.5, y: 0.8, level: 1.4 } }, // Step 2: zoom to input area
291
+ { zoom: null }, // Step 3: no zoom
292
+ { zoom: { x: 0.78, y: 0.45, level: 1.3 }}, // Step 4: zoom to sidebar
293
+ ]
294
+
295
+ await Recast
296
+ .from('./traces')
297
+ .parse()
298
+ .subtitlesFromSrt('./narration.srt')
299
+ .enrichZoomFromReport(reportSteps)
300
+ .render({ format: 'mp4' })
301
+ .toFile('demo.mp4')
302
+ ```
303
+
304
+ ### Zoom from step helpers
305
+
306
+ Capture zoom coordinates during Playwright test execution using the `zoom()` helper:
307
+
308
+ ```typescript
309
+ import { zoom } from 'playwright-recast'
310
+
311
+ When('the user opens the sidebar', async ({ page }) => {
312
+ const sidebar = page.locator('.sidebar-panel')
313
+ await zoom(sidebar, 1.3) // Record zoom target for this step
314
+ await sidebar.click()
315
+ })
316
+ ```
317
+
318
+ The helper captures the element's bounding box as a Playwright annotation. Use `enrichZoomFromReport()` to apply these coordinates during video generation.
319
+
320
+ ### Zoom coordinates
321
+
322
+ All zoom coordinates use viewport-relative fractions (0.0–1.0):
323
+
324
+ | Field | Description | Default |
325
+ |-------|-------------|---------|
326
+ | `x` | Center X (0 = left, 1 = right) | 0.5 |
327
+ | `y` | Center Y (0 = top, 1 = bottom) | 0.5 |
328
+ | `level` | Zoom level (1.0 = no zoom, 2.0 = 2x) | 1.0 |
329
+
330
+ The renderer applies zoom by cropping the video to `(width/level × height/level)` centered at `(x, y)`, then scaling back to the output resolution.
331
+
332
+ ---
333
+
261
334
  ## Speed Processing
262
335
 
263
336
  The speed processor classifies every moment of the trace:
@@ -308,8 +381,7 @@ await base.subtitlesFromSrt('./cs.srt').render({ burnSubtitles: true }).toFile('
308
381
 
309
382
  ## Roadmap
310
383
 
311
- - [x] **Burned-in subtitles** — Render styled subtitles directly into the video with customizable font, size, color, background box, and position
312
- - [ ] **Smooth zoom transitions** — Animated crop-and-zoom on elements during specific steps
384
+ - [ ] **Smooth zoom transitions** — Animated easing between zoom states (currently hard-cut)
313
385
  - [ ] **Edge TTS provider** — Free TTS without API key using Microsoft Edge's online voices
314
386
  - [ ] **Playwright Reporter plugin** — Auto-generate demo videos as part of your test run
315
387
  - [ ] **Multi-language support** — Generate video variants from the same trace with different SRT/voiceover per language
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/render/renderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAKpD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA+B3E;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAA;IACnF,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;CAC/B;AAiKD;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,IAAI,CA6GN"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/render/renderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAKpD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA+B3E;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAA;IACnF,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;CAC/B;AAiMD;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,IAAI,CA8HN"}
@@ -44,6 +44,43 @@ export function detectBlankLeadIn(videoPath, tmpDir) {
44
44
  function ffmpeg(args) {
45
45
  execFileSync('ffmpeg', args, { stdio: 'pipe' });
46
46
  }
47
+ /**
48
+ * Get video duration in seconds, handling containers without duration metadata
49
+ * (e.g., Playwright webm recordings). Tries format duration first, then falls
50
+ * back to probing the last packet timestamp.
51
+ */
52
+ function getVideoDuration(videoPath) {
53
+ // Try format-level duration first (fast)
54
+ const durationStr = execFileSync('ffprobe', [
55
+ '-v', 'quiet', '-show_entries', 'format=duration', '-of', 'csv=p=0', videoPath,
56
+ ]).toString().trim();
57
+ const duration = Number(durationStr);
58
+ if (!Number.isNaN(duration) && duration > 0)
59
+ return duration;
60
+ // Fallback: probe stream duration (some containers have it per-stream)
61
+ const streamStr = execFileSync('ffprobe', [
62
+ '-v', 'quiet', '-select_streams', 'v:0',
63
+ '-show_entries', 'stream=duration', '-of', 'csv=p=0', videoPath,
64
+ ]).toString().trim();
65
+ const streamDuration = Number(streamStr);
66
+ if (!Number.isNaN(streamDuration) && streamDuration > 0)
67
+ return streamDuration;
68
+ // Final fallback: compute from packet count and frame rate
69
+ const probeOut = execFileSync('ffprobe', [
70
+ '-v', 'quiet', '-select_streams', 'v:0', '-count_packets',
71
+ '-show_entries', 'stream=nb_read_packets,r_frame_rate', '-of', 'csv=p=0', videoPath,
72
+ ]).toString().trim();
73
+ const [fpsStr, nbPackets] = probeOut.split(',');
74
+ const packets = Number(nbPackets);
75
+ // Parse fractional fps like "25/1"
76
+ const fpsParts = (fpsStr ?? '').split('/');
77
+ const fps = fpsParts.length === 2
78
+ ? Number(fpsParts[0]) / Number(fpsParts[1])
79
+ : Number(fpsStr);
80
+ if (packets > 0 && fps > 0)
81
+ return packets / fps;
82
+ throw new Error(`Cannot determine duration of video: ${videoPath}`);
83
+ }
47
84
  /**
48
85
  * Render with zoom by splitting video into segments:
49
86
  * - Non-zoomed segments pass through at full resolution
@@ -53,11 +90,8 @@ function ffmpeg(args) {
53
90
  */
54
91
  function renderWithZoom(sourceVideo, subtitles, width, height, tmpDir) {
55
92
  const segments = [];
56
- // Get video duration
57
- const durationStr = execFileSync('ffprobe', [
58
- '-v', 'quiet', '-show_entries', 'format=duration', '-of', 'csv=p=0', sourceVideo,
59
- ]).toString().trim();
60
- const videoDuration = Number(durationStr);
93
+ // Get video duration (handles webm without duration header)
94
+ const videoDuration = getVideoDuration(sourceVideo);
61
95
  const zoomSubs = subtitles.filter((s) => s.zoom && s.zoom.level > 1.0);
62
96
  let cursor = 0;
63
97
  for (const sub of zoomSubs) {
@@ -121,11 +155,8 @@ function renderWithSpeed(sourceVideo, speedSegments, baselineMs, tmpDir) {
121
155
  const allRealtime = speedSegments.every((s) => Math.abs(s.speed - 1.0) < 0.01);
122
156
  if (allRealtime)
123
157
  return sourceVideo;
124
- // Get source video duration for clamping
125
- const durationStr = execFileSync('ffprobe', [
126
- '-v', 'quiet', '-show_entries', 'format=duration', '-of', 'csv=p=0', sourceVideo,
127
- ]).toString().trim();
128
- const videoDuration = Number(durationStr);
158
+ // Get source video duration for clamping (handles webm without duration header)
159
+ const videoDuration = getVideoDuration(sourceVideo);
129
160
  // Convert speed segments from trace monotonic time to video-relative seconds.
130
161
  // baselineMs is the first screencast frame timestamp — the video's t=0 reference.
131
162
  // Segments before baseline (from hidden setup context) get negative times → filtered out.
@@ -209,12 +240,27 @@ export function renderVideo(trace, config, outputPath, tmpDir) {
209
240
  if (hasZoom && trace.subtitles) {
210
241
  videoInput = renderWithZoom(videoInput, trace.subtitles, resolution.width, resolution.height, tmpDir);
211
242
  }
212
- // Phase 4: Final encode (audio merge + subtitle burn + format)
243
+ // Phase 4: Compute extra padding needed if audio is longer than video.
244
+ // The tpad filter will be added in Phase 5's vFilters to hold the last frame.
245
+ let tpadDuration = 0;
246
+ if (hasAudio && trace.voiceover) {
247
+ const videoDur = getVideoDuration(videoInput);
248
+ const audioDur = trace.voiceover.totalDurationMs / 1000;
249
+ if (audioDur > videoDur + 0.5) {
250
+ tpadDuration = audioDur - videoDur + 1.0; // +1s buffer
251
+ console.log(` Will pad video by ${tpadDuration.toFixed(1)}s to match audio (${audioDur.toFixed(1)}s)`);
252
+ }
253
+ }
254
+ // Phase 5: Final encode (audio merge + subtitle burn + format)
213
255
  const ffmpegArgs = ['-y', '-i', videoInput];
214
256
  if (hasAudio && trace.voiceover) {
215
257
  ffmpegArgs.push('-i', trace.voiceover.audioTrackPath);
216
258
  }
217
259
  const vFilters = [];
260
+ // Pad video with last frame to match audio duration
261
+ if (tpadDuration > 0) {
262
+ vFilters.push(`tpad=stop_mode=clone:stop_duration=${tpadDuration.toFixed(3)}`);
263
+ }
218
264
  // Scale (only if no zoom was applied — zoom already scaled)
219
265
  if (!hasZoom) {
220
266
  vFilters.push(`scale=${resolution.width}:${resolution.height}`);
@@ -249,7 +295,7 @@ export function renderVideo(trace, config, outputPath, tmpDir) {
249
295
  ffmpegArgs.push('-c:v', config.codec ?? 'libvpx-vp9', '-crf', String(crf), '-b:v', '0');
250
296
  }
251
297
  if (hasAudio) {
252
- ffmpegArgs.push('-c:a', 'aac', '-b:a', '128k', '-shortest');
298
+ ffmpegArgs.push('-c:a', 'aac', '-b:a', '128k');
253
299
  }
254
300
  if (config.fps) {
255
301
  ffmpegArgs.push('-r', String(config.fps));
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/render/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/render/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAItD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEjE;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,MAAc;IACjE,MAAM,SAAS,GAAG,GAAG,CAAA,CAAC,UAAU;IAChC,MAAM,QAAQ,GAAG,GAAG,CAAA,CAAC,8BAA8B;IACnD,MAAM,cAAc,GAAG,MAAM,CAAA,CAAC,yCAAyC;IAEvE,IAAI,aAAa,GAAG,CAAC,CAAC,CAAA;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QACtE,IAAI,CAAC;YACH,YAAY,CAAC,QAAQ,EAAE;gBACrB,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS;gBACvC,WAAW,EAAE,GAAG,EAAE,SAAS;aAC5B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YAErB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAA;YACxC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAExB,IAAI,IAAI,IAAI,cAAc,EAAE,CAAC;gBAC3B,aAAa,GAAG,CAAC,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,OAAO,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAK;QACP,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,OAAO,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC;AAcD,SAAS,MAAM,CAAC,IAAc;IAC5B,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AACjD,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,SAAiB;IACzC,yCAAyC;IACzC,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE;QAC1C,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;KAC/E,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAA;IAE5D,uEAAuE;IACvE,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE;QACxC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK;QACvC,eAAe,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;KAChE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IACpB,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC;QAAE,OAAO,cAAc,CAAA;IAE9E,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE;QACvC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,gBAAgB;QACzD,eAAe,EAAE,qCAAqC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;KACpF,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IACpB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IACjC,mCAAmC;IACnC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClB,IAAI,OAAO,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,OAAO,GAAG,GAAG,CAAA;IAEhD,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,EAAE,CAAC,CAAA;AACrE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,WAAmB,EACnB,SAA0B,EAC1B,KAAa,EACb,MAAc,EACd,MAAc;IAId,MAAM,QAAQ,GAAc,EAAE,CAAA;IAE9B,4DAA4D;IAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;IACtE,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;QACnC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAA;QAE/B,uBAAuB;QACvB,IAAI,QAAQ,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QACvD,CAAC;QACD,iBAAiB;QACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QACnD,MAAM,GAAG,MAAM,CAAA;IACjB,CAAC;IACD,4BAA4B;IAC5B,IAAI,MAAM,GAAG,aAAa,GAAG,GAAG,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,WAAW,CAAA,CAAC,iBAAiB;IACtC,CAAC;IAED,sBAAsB;IACtB,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAA;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;QACtD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE1B,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAE9F,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;YAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAA;YAClE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAA;YAEnE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,MAAM,EAAE,CAAC,CAAA;QAC/G,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAC7E,MAAM,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;IAED,uBAAuB;IACvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACvD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAE/E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC3D,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAE1F,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CACtB,WAAmB,EACnB,aAA6B,EAC7B,UAAkB,EAClB,MAAc;IAEd,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAA;IAElD,8CAA8C;IAC9C,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IAC9E,IAAI,WAAW;QAAE,OAAO,WAAW,CAAA;IAEnC,gFAAgF;IAChF,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAEnD,8EAA8E;IAC9E,kFAAkF;IAClF,0FAA0F;IAC1F,MAAM,aAAa,GAAG,aAAa;SAChC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAE,GAAG,CAAC,aAAwB,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;QAC1E,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAE,GAAG,CAAC,WAAsB,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;QAClF,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAE9C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAA;IAElD,OAAO,CAAC,GAAG,CAAC,YAAY,aAAa,CAAC,MAAM,qBAAqB,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAE7F,uBAAuB;IACvB,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAE,CAAA;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAA;QAC1C,MAAM,cAAc,GAAG,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAA;QAE3C,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YAC5D,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,cAAc,GAAG,CAAC,KAAK,EAAE;YACtC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK;YACzD,OAAO;SACR,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,CAAA;QAEZ,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAClI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,2BAA2B;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IACxD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAE/E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IAC5D,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAE1F,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,KAAsB,EACtB,MAAoB,EACpB,UAAkB,EAClB,MAAc;IAEd,MAAM,WAAW,GAAG,KAAK,CAAC,eAAe,CAAA;IACzC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAA;IACrC,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAA;IAE5B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,KAAK,CAAA;IACnF,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,cAAc;QAC9C,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QACpE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IAEjE,wDAAwD;IACxD,IAAI,UAAU,GAAG,WAAW,CAAA;IAC5B,MAAM,WAAW,GAAG,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IACzD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;QAC1D,MAAM,CAAC;YACL,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU;YAClD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI;YACvD,WAAW;SACZ,CAAC,CAAA;QACF,UAAU,GAAG,WAAW,CAAA;IAE1B,CAAC;IAED,2EAA2E;IAC3E,sEAAsE;IACtE,iFAAiF;IACjF,IAAI,QAAQ,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAC7C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7D,MAAM,eAAe,GAAG,eAAe;YACrC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;QAC3E,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;YAClD,CAAC,CAAE,eAAe,CAAC,CAAC,CAAE,CAAC,SAAoB;YAC3C,CAAC,CAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC,aAAwB,CAAA;QACrD,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAA;IAC1F,CAAC;IAED,6FAA6F;IAC7F,IAAI,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC/B,UAAU,GAAG,cAAc,CACzB,UAAU,EACV,KAAK,CAAC,SAAS,EACf,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,MAAM,EACjB,MAAM,CACP,CAAA;IACH,CAAC;IAED,uEAAuE;IACvE,8EAA8E;IAC9E,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,IAAI,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAA;QACvD,IAAI,QAAQ,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;YAC9B,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA,CAAC,aAAa;YACtD,OAAO,CAAC,GAAG,CAAC,uBAAuB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACzG,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,MAAM,UAAU,GAAa,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IAErD,IAAI,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,oDAAoD;IACpD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,sCAAsC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAChF,CAAC;IAED,4DAA4D;IAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IACjE,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,sEAAsE;YACtE,IAAI,WAAW,GAAG,KAAK,CAAC,SAAS,CAAA;YACjC,IAAI,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;gBACtC,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;YAC9E,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;YACvD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAA;YAClF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACvE,QAAQ,CAAC,IAAI,CAAC,QAAQ,WAAW,GAAG,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACN,+CAA+C;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;YACvD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;YACpD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACvE,QAAQ,CAAC,IAAI,CAAC,cAAc,WAAW,GAAG,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5F,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IACzF,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3B,MAAM,CAAC,UAAU,CAAC,CAAA;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"voiceover-processor.d.ts","sourceRoot":"","sources":["../../src/voiceover/voiceover-processor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAkB,MAAM,uBAAuB,CAAA;AAuB1F;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAmH3B"}
1
+ {"version":3,"file":"voiceover-processor.d.ts","sourceRoot":"","sources":["../../src/voiceover/voiceover-processor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAkB,MAAM,uBAAuB,CAAA;AAuB1F;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CA0F3B"}
@@ -30,7 +30,12 @@ export async function generateVoiceover(trace, provider, tmpDir) {
30
30
  const entries = [];
31
31
  const segmentFiles = [];
32
32
  let cursor = 0;
33
- for (const subtitle of trace.subtitles) {
33
+ let timeShift = 0; // cumulative shift from TTS overflows
34
+ for (let si = 0; si < trace.subtitles.length; si++) {
35
+ const subtitle = trace.subtitles[si];
36
+ // Apply accumulated time shift from previous overflows
37
+ subtitle.startMs += timeShift;
38
+ subtitle.endMs += timeShift;
34
39
  // Insert silence for gap before this segment
35
40
  if (subtitle.startMs > cursor) {
36
41
  const silencePath = path.join(tmpDir, `silence-${subtitle.index}.mp3`);
@@ -59,48 +64,19 @@ export async function generateVoiceover(trace, provider, tmpDir) {
59
64
  cursor = subtitle.endMs;
60
65
  }
61
66
  else {
62
- // Audio overflows the window. Strategy:
63
- // 1. Speed up slightly (max 1.4x) to keep natural sound
64
- // 2. Then TRUNCATE to fit the window exactly
65
- // This ensures perfect sync — no overflow cascading to later subtitles.
66
- const speedFactor = Math.min(1.4, audioDuration / windowDuration);
67
- let inputFile = segPath;
68
- if (speedFactor > 1.01) {
69
- const fittedPath = path.join(tmpDir, `fitted-${subtitle.index}.mp3`);
70
- execFileSync('ffmpeg', [
71
- '-y', '-i', segPath,
72
- '-filter:a', `atempo=${speedFactor.toFixed(4)}`,
73
- '-c:a', 'libmp3lame', '-q:a', '2',
74
- fittedPath,
75
- ], { stdio: 'pipe' });
76
- inputFile = fittedPath;
77
- }
78
- // Truncate to window duration (hard cut ensures sync)
79
- const truncPath = path.join(tmpDir, `trunc-${subtitle.index}.mp3`);
80
- const windowSec = Math.max(0.1, windowDuration / 1000);
81
- execFileSync('ffmpeg', [
82
- '-y', '-i', inputFile,
83
- '-t', windowSec.toFixed(3),
84
- // Fade out the last 200ms to avoid harsh cut
85
- '-af', `afade=t=out:st=${Math.max(0, windowSec - 0.2).toFixed(3)}:d=0.2`,
86
- '-c:a', 'libmp3lame', '-q:a', '2',
87
- truncPath,
88
- ], { stdio: 'pipe' });
89
- segmentFiles.push(truncPath);
90
- const truncDuration = getAudioDurationMs(truncPath);
91
- const pad = windowDuration - truncDuration;
92
- if (pad > 50) {
93
- const padPath = path.join(tmpDir, `pad-${subtitle.index}.mp3`);
94
- generateSilence(pad, padPath);
95
- segmentFiles.push(padPath);
96
- }
67
+ // Audio overflows the window — play at raw speed (never modify TTS tempo).
68
+ // Extend this subtitle and shift all subsequent subtitles forward.
69
+ const overflow = audioDuration - windowDuration;
70
+ segmentFiles.push(segPath);
71
+ subtitle.endMs = subtitle.startMs + audioDuration;
72
+ timeShift += overflow;
97
73
  cursor = subtitle.endMs;
98
74
  }
99
75
  entries.push({
100
76
  subtitle,
101
77
  audio,
102
78
  outputStartMs: subtitle.startMs,
103
- outputEndMs: Math.max(subtitle.endMs, subtitle.startMs + audioDuration),
79
+ outputEndMs: subtitle.endMs,
104
80
  });
105
81
  }
106
82
  // Concat all segments into single audio track
@@ -1 +1 @@
1
- {"version":3,"file":"voiceover-processor.js","sourceRoot":"","sources":["../../src/voiceover/voiceover-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voiceover-processor.js","sourceRoot":"","sources":["../../src/voiceover/voiceover-processor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "playwright-recast",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "type": "module",
5
5
  "description": "Fluent pipeline library for processing Playwright traces into polished demo videos — TTS voiceover, subtitles, speed control, and zoom.",
6
6
  "license": "MIT",