video-to-60fps · git:20260827.ae998b6 · 2026-08-27 · sha256 92f394edb7141791
video-to-60fps git:20260827.ae998b6A
Immutable. This exact content is served forever at /api/v1/blob/92f394edb7141791.
--- name: video-to-60fps description: >- Interpolates video to 60fps with Video2X RIFE at source resolution. Already ~60fps files are skipped (nothing is written). Below 60fps uses RIFE, not FFmpeg frame duplication. Above 60fps drops to 60 with FFmpeg. Use when the user wants video-to-60fps, 插帧, frame interpolation, RIFE, 24 to 60, 30 to 60, or convert fps to 60 before video-to-4k. disable-model-invocation: true --- # Video to 60fps 如果视频已经是60帧,那就什么都不做。如果不是60帧,就用你刚才说的转为60帧。 Convert supported videos to **60fps at the source resolution** via [Video2X](https://github.com/k4yt3x/video2x) RIFE. Run this **before** `video-to-4k`. | Spec | Value | |------|-------| | Frame rate | 60 FPS | | Resolution | Unchanged | | Already ~60fps (59.5–60.5, includes 59.94) | **Skip** — no output file | | Below 60fps | Video2X RIFE interpolate, then snap to 60 | | Above 60fps | FFmpeg `fps=60` drop (RIFE cannot reduce fps) | | Video | H.265 Main10 (`libx265`, `yuv420p10le`, CRF 12) | | Audio | AAC 320 kbps when present | | Container | MP4 (`.mp4`, `hvc1` tag) | ## Pipeline 1. **Probe** fps with ffprobe. 2. **Already ~60?** → skip (do nothing). 3. **Above 60?** → FFmpeg drop to 60fps → `60fps/`. 4. **Below 60?** → Video2X RIFE (`-m` integer multiplier) at source resolution → FFmpeg to exact 60fps MP4 → `60fps/`. ## Rules When this skill applies, read and follow [skill-dependency-manager](../skill-dependency-manager.md) — run scripts as documented, install missing tools into `.dependency/`. - Run `convert.py` through **`.dependency/python/python`**. Never use host `python` / `ffmpeg` / `video2x`. - **Never overwrite sources.** Outputs go under `60fps/`. - Use the bundled script — do not hand-write equivalent `video2x` / `ffmpeg` commands. - Do **not** use FFmpeg `fps=60` duplication to fake 60fps on below-60 sources. ## Setup (first run) Same Video2X CLI + FFmpeg + Python as `video-to-4k`. Populate `ffmpeg`, `python`, and `video2x` under `.dependency/`. Requires a **Vulkan** GPU and AVX2 CPU. ## Quick Start ```bash .dependency/python/python .cursor/skills/video-to-60fps/scripts/convert.py path/to/video_or_folder ``` Example: ``` assets/video/clip.mp4 (1280×720 24fps) → assets/video/60fps/clip.mp4 (1280×720 60fps) ``` Already-60fps source → no `60fps/` file; log `[skip]`. Batch with subfolders: ```bash .dependency/python/python .cursor/skills/video-to-60fps/scripts/convert.py Video/Cutscenes -r ``` Then upscale (fps kept): ```bash .dependency/python/python .cursor/skills/video-to-4k/scripts/convert.py assets/video/60fps/clip.mp4 ``` ## Defaults | Setting | Default | Notes | |---------|---------|-------| | Interpolator | RIFE `rife-v4.6` | Video2X `-p rife` | | Multiplier | Auto | Smallest integer `-m` so `src_fps × m` is at least ~60 | | UHD mode | Auto | `--rife-uhd` when width ≥ 1920 | | Existing `60fps/` file | Skipped | Pass `--overwrite` to replace | | Already ~60fps | Skipped | No file written | ## Common Flags `-r` · `-o` / `--output-dir` · `--rife-model` · `--uhd` · `--gpu` · `--dry-run` · `--overwrite` ```bash .dependency/python/python .cursor/skills/video-to-60fps/scripts/convert.py clip.mp4 --dry-run .dependency/python/python .cursor/skills/video-to-60fps/scripts/convert.py clip.mp4 --gpu 0 --overwrite ``` **Never overwrite source files.** Supported inputs: `.mp4`, `.mkv`, `.mov`, `.avi`, `.webm`, `.wmv`, `.flv`, `.m4v`, `.mpeg`, `.mpg`, `.ts`, `.mts`, `.m2ts`, `.3gp`, `.ogv`, `.ogg`. ## Agent Notes 1. Use the bundled script only. 2. Missing Python / FFmpeg / Video2X → populate `.dependency/`, set `populated: true`, retry the same command. 3. Tell the user where `60fps/` outputs are; they swap assets manually. Skipped ~60fps files have **no** output. 4. Interpolate at **source resolution**, then `video-to-4k`. Do not 4K-upscale first. 5. Video2X `-m` is an integer. 30fps → ×2 = 60. 24fps → ×3 = 72, then FFmpeg snaps to 60. 6. Pipeline / FFmpeg / Video2X details: [reference.md](reference.md)