Lesson 251: DaVinci Trailer Handoff OBS Highlight Receipt on BUILD_RECEIPT (2026)

Direct answer: Before July playtest highlight reels run Lesson 243 consent concat, file trailer_handoff_receipt_v1.json proving a mezzanine export, handoff_map_v1.json rows link Resolve TC ↔ OBS clip_id, fps matches between timeline and Replay Buffer, and ffprobe duration covers every out point—then promote BUILD_RECEIPT trailer_handoff_ok. Distinct from Lesson 250 (VO WAV metadata) and Lesson 234 (store stereo).

Lesson hero for DaVinci trailer handoff OBS highlight receipt

Why this matters now (July 2027 playtest highlight reels)

July 2026–2027 teams export a Resolve playtest-trailer master Monday and merge OBS Replay Buffer clips Tuesday—without handoff_map_v1.json, editors guess in/out points, drift against the mezzanine, and re-cut the same boss fight three times. Lesson 250 owns VO consent metadata; Lesson 243 owns clip consent concat251 owns editorial timecode linkage between lanes.

The Resolve playtest trailer handoff preflight is the ninety-second gate—251 is the BUILD_RECEIPT milestone. Pair GIF vs WebM deliverable discipline for store exports (separate lane).

Beginner path (mezzanine → map → receipt)

Step Action Success check
1 Export playtest mezzanine from Resolve T1 pass + SHA-256 logged
2 Lock timeline fps = OBS capture fps T2 pass
3 Write handoff_map_v1.json per highlight T3 no orphan obs_clip_id
4 ffprobe mezzanine duration vs last TC out T4 pass
5 Spot-check OBS clip duration ±2s T5 pass
6 File receipt + BUILD_RECEIPT trailer_handoff_ok: true

Time: ~58 minutes first wave; ~12 minutes when mezzanine preset + map template exist.

Developer path (gates T1–T6)

Gate Check Fail when
T1 Mezzanine on disk Social H.264 only, no TC reference
T2 timeline_fps = OBS setting 30 vs 60 silent drift
T3 handoff_map_v1.json complete Missing obs_clip_id row
T4 Mezzanine duration covers resolve_tc_out Short master export
T5 OBS file exists + duration sanity Renamed inbox clip
T6 Receipt + BUILD_RECEIPT Promote before T3 GREEN

T1 — cousin receipt crosswalk

Field Cousin (243) This lesson (251)
Schema playtest_clip_consent_receipt_v1 trailer_handoff_receipt_v1
Scope Consent + concat manifest Resolve TC ↔ OBS map
Path release-evidence/playtest/vod/PLAYTEST_CLIP_CONSENT_RECEIPT.json release-evidence/playtest/trailer/TRAILER_HANDOFF_RECEIPT.json
Order Run 251 first Then 243

Do not embed consent rows inside handoff_map—reference shared clip_id only.

handoff_map_v1.json

{
  "schema": "handoff_map_v1",
  "build_label": "playtest-july-2027-rc1",
  "timeline_fps": 60,
  "mezzanine_path": "deliver/playtest_mezzanine_playtest-july-2027-rc1.mov",
  "mezzanine_sha256": "abc123…",
  "highlights": [
    {
      "handoff_id": "h7f2a1b0-0001-4000-8000-000000000001",
      "resolve_tc_in": "00:12:04:12",
      "resolve_tc_out": "00:12:46:00",
      "resolve_frame_in": 43452,
      "resolve_frame_out": 45960,
      "obs_clip_id": "clip03",
      "obs_path": "playtest-vod/highlights/inbox/clip03.mkv",
      "facilitator_note": "Boss phase 2 — consent pending Lesson 243"
    }
  ]
}

trailer_handoff_receipt_v1.json

{
  "schema": "trailer_handoff_receipt_v1",
  "build_label": "playtest-july-2027-rc1",
  "handoff_map_path": "playtest-vod/highlights/handoff_map_v1.json",
  "mezzanine_path": "deliver/playtest_mezzanine_playtest-july-2027-rc1.mov",
  "mezzanine_sha256": "abc123…",
  "timeline_fps": 60,
  "highlight_rows": 4,
  "orphan_obs_clips": 0,
  "fps_mismatch": false,
  "cousin_receipts": {
    "playtest_clip_consent": "release-evidence/playtest/vod/PLAYTEST_CLIP_CONSENT_RECEIPT.json",
    "gif_deliverable_slot": "deliver/gif_deliverable_slot_receipt_v1.json"
  },
  "gates": {
    "T1_mezzanine": "pass",
    "T2_fps_lock": "pass",
    "T3_handoff_map": "pass",
    "T4_mezzanine_duration": "pass",
    "T5_obs_duration": "pass",
    "T6_build_receipt": "pass"
  },
  "handoff_ok": true,
  "playtest_promotion_allowed": true
}

Pin under release-evidence/playtest/trailer/TRAILER_HANDOFF_RECEIPT.json.

BUILD_RECEIPT row (T6)

Column Pass when
trailer_handoff handoff_ok: true
playtest_clip_consent Cousin Lesson 243 independent column
vo_consent_metadata Cousin Lesson 250 independent column
ALTER TABLE release_publish_gate ADD COLUMN IF NOT EXISTS
  trailer_handoff_blocked BOOLEAN NOT NULL DEFAULT false;

Thursday row reviewtrailer handoff line: map rows Y/N.

Key takeaways

  1. Store GIF/WebM ≠ playtest handoffGIF vs WebM preflight is a different lane.
  2. handoff_map_v1.json is source of truth for clip_id ↔ Resolve TC.
  3. Run 251 before 243 consent concat—manifest needs real in-points.
  4. Lesson 250 VO metadata is parallel, not a substitute.
  5. Lesson 220 Whisper batch is audio triage—separate from highlight reels.
  6. Evening OBS concat pipeline — capture stack only.
  7. playtest_promotion_allowed here ≠ Q4 capstone 253.
  8. Forward: Lesson 252 Spline LCP under load BUILD_RECEIPT.
    8b. October store stills: Lesson 254 HDR→SDR Steam capture (distinct from playtest handoff).
  9. Pair 16 OBS/ffmpeg tools for capture; this lesson owns the map.
  10. Top 20 receipts hub — handoff row in playtest→public map.

Common mistakes

  • Filing 243 while 251 map still missing—consent cannot fix wrong in-points.
  • Mixing 30 fps OBS with 60 fps Resolve without retime note.
  • Renaming clip03.mkv after map written—orphan obs_clip_id.
  • Skipping T4 because timeline “looks fine”—mezzanine shorter than last resolve_tc_out.
  • Merging trailer_handoff_receipt into playtest_clip_consent_receipt schemas.

Troubleshooting

Symptom Lane
Highlights drift vs master Re-export mezzanine; bump map version
OBS clip longer than map delta Replay Buffer padding—note in facilitator_note
Consent GREEN, editorial wrong This lesson T3–T5
Store trailer fine, highlights wrong Skipped handoff—store lane ≠ playtest lane
Whisper triage blocked Lesson 220 — separate

Mini exercise (50 minutes)

  1. Export mezzanine without TC—confirm T1/T4 fail modes.
  2. Write handoff_map_v1.json for two clips.
  3. Link cousin path placeholder for Lesson 243.
  4. ffprobe mezzanine + OBS durations.
  5. File receipt; BUILD_RECEIPT GREEN.

Continuity — Q4 2027 July playtest scale (245–253)

Lesson Receipt focus
250 Audacity VO consent metadata
251 (this) DaVinci trailer handoff → OBS
252 Spline playtest LCP under load
253 Q4 capstone (queued)

Previous: Lesson 250 — Audacity VO consent metadata
Next: Lesson 252 — Spline playtest landing LCP spot

FAQ

Same as Lesson 243?
243 = consent + concat manifest; 251 = Resolve TC map—run 251 first.

Same as the DaVinci guide chapter?
Guide = T1–T6 checklist; 251 = BUILD_RECEIPT promotion.

Same as Lesson 250?
250 = VO WAV metadata; 251 = video editorial handoff.

Need ProRes mezzanine?
Team policy—document codec in receipt; social-only export fails T4 when TC out exceeds duration.


Highlights cut blind from Resolve fail every July scale wave—mezzanine hash, fps lock, handoff_map_v1.json, then trailer_handoff_ok before Lesson 243 consent concat.