Go to file
JSLMPR 1da0661eea Automatic two-tier highlight director + source-adaptive rendering
Rendering (whole service, driven by source measurements, not constants):
- Orientation-aware geometry: FfmpegClipInspector reads display rotation and
  stores effective dims; HighlightFfmpegRenderer.outputGeometry renders portrait
  sources portrait and skips the 2.39 letterbox on portrait (landscape unchanged).
- Dynamic exposure: probeSourceLuma measures the frames; exposureNormalizationFilter
  maps the mean toward a target; the grade is now exposure-preserving (no crushed
  subjects: bowling final went ~63 -> ~100 mean luma).
- Motion-adaptive in-shot push-in (zoompan), amount from per-shot YDIF.
- Audio mix ducks source audio under the generated score so it leads.
- Highlight duration is no longer capped (validator + config).

Automatic director (plans were hand-authored before):
- Tier 1 HighlightMontageDirector: composes the montage from measured motion (YDIF)
  and audio-energy (RMS) curves -- setup, continuous action/tension, slow-mo payoff
  on the audio climax, resolution button, camera-whip tail trimmed.
- Tier 2 HighlightVisionDirector + tools/vision_caption.py: a local, offline
  vision-language model (moondream2) captions the payoff frame and augments the
  montage with a semantic overlay ("STRIKE") and scene-informed music; fails soft.
- Wired into the scheduler behind auto-director-enabled / vision-director-enabled
  (on in the localpoc profile).

Docs: cinematic-quality-rules.md (R1-R5, R9 both tiers), poc-plan milestones.
Tests: mvn -o verify -> 262 passing, 0 failures.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MPuJXQyAeWpFcTtcnxo1UN
2026-07-23 22:49:05 +02:00
.claude Automatic two-tier highlight director + source-adaptive rendering 2026-07-23 22:49:05 +02:00
.idea I added an importable Grafana dashboard at dashboards/video-clipping-overview-grafana.json:1 and the companion setup note in docs/dashboards.md:1. The dashboard covers queue backlog and age, DLQ and processing counts, API 2026-07-10 00:14:13 +02:00
dashboards I added an importable Grafana dashboard at dashboards/video-clipping-overview-grafana.json:1 and the companion setup note in docs/dashboards.md:1. The dashboard covers queue backlog and age, DLQ and processing counts, API 2026-07-10 00:14:13 +02:00
docs Automatic two-tier highlight director + source-adaptive rendering 2026-07-23 22:49:05 +02:00
input/source • Added missing tests and a 100% coverage gate for the new folder scheduler package. 2026-07-10 01:02:08 +02:00
output - Implement end-to-end cinematic highlight rendering pipeline 2026-07-12 01:20:18 +02:00
src Automatic two-tier highlight director + source-adaptive rendering 2026-07-23 22:49:05 +02:00
tools Automatic two-tier highlight director + source-adaptive rendering 2026-07-23 22:49:05 +02:00
.gitignore Fix local CV visual-analysis client (HTTP/1.1) to enable YOLO selection 2026-07-22 11:14:48 +02:00
pom.xml Configure folder scheduler in YAML 2026-07-10 12:24:16 +02:00