Cookbook

29.97 drop-frame edit from timecode

Convert timecode to seconds for ffmpeg trim points.

Skills: `timecode` → `video-transformation` → `inspect`

Steps

Step 1 — timecode
# 1. Detect format if unknown
cd skills/timecode
uv run scripts/detect_format.py --timecode 01:00:00;00 --fps 29.97

# 2. Convert in/out points to seconds (wall-clock for ffmpeg -ss)
uv run scripts/to_seconds.py --timecode 00:10:00;00 --fps 29.97
uv run scripts/to_seconds.py --timecode 00:12:30;00 --fps 29.97

# 3. Trim using seconds_realtime from JSON
cd ../video-transformation
uv run scripts/trim.py --input clip.mov --start <in_seconds> --end <out_seconds>
Step 2 — timecode
cd skills/timecode
uv run scripts/convert.py \
  --timecode 00:10:00:00 \
  --from-fps 24 \
  --to-fps 29.97
Step 3
uv run scripts/convert_df.py \
  --timecode 01:00:00;00 \
  --fps 29.97 \
  --to non-drop-frame
Step 4
uv run scripts/extract.py --input master.mov
uv run scripts/calculate.py --timecode 00:58:40;00 --op add --offset-seconds 80.013 --fps 30000/1001
Step 5
# 4. Confirm trim duration ≈ (end − start) from to_seconds
cd ../inspect
uv run scripts/describe.py --input <trimmed_output>

Agent notes

  • Semicolon (`;`) in frame field = drop-frame display.
  • Prefer `seconds_realtime` for ffmpeg on NTSC DF material.
  • See `skills/timecode/references/DF_NDF.md` for background.
esc

Try trim, captions, timecode, or broadcast