Back to Skills

ffmpeg-animation-timing-reference

verified

Definitive reference for FFmpeg and ASS/SSA animation timing units, optimal durations, and best practices. PROACTIVELY activate for: (1) Animation timing questions, (2) ASS subtitle timing, (3) Karaoke timing tags, (4) Caption duration calculation, (5) Transition duration selection, (6) Fade/zoom timing, (7) Frame rate considerations, (8) Platform-specific timing (TikTok/Shorts/Reels), (9) Readability formulas, (10) Audio-video sync tolerances. Provides: Complete time unit reference tables, optimal duration guidelines, psychology-based timing recommendations, caption readability formulas, and platform-specific timing profiles.

View on GitHub

Marketplace

claude-plugin-marketplace

JosiahSiegel/claude-plugin-marketplace

Plugin

ffmpeg-master

Repository

JosiahSiegel/claude-plugin-marketplace
7stars

plugins/ffmpeg-master/skills/ffmpeg-animation-timing-reference/SKILL.md

Last Verified

January 20, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/JosiahSiegel/claude-plugin-marketplace/blob/main/plugins/ffmpeg-master/skills/ffmpeg-animation-timing-reference/SKILL.md -a claude-code --skill ffmpeg-animation-timing-reference

Installation paths:

Claude
.claude/skills/ffmpeg-animation-timing-reference/
Powered by add-skill CLI

Instructions

## CRITICAL GUIDELINES

### Windows File Path Requirements

**MANDATORY: Always Use Backslashes on Windows for File Paths**

When using Edit or Write tools on Windows, you MUST use backslashes (`\`) in file paths, NOT forward slashes (`/`).

### Documentation Guidelines

**NEVER create new documentation files unless explicitly requested by the user.**

---

# FFmpeg Animation Timing Reference (2025-2026)

## Quick Reference Card

| Context | Unit | Example |
|---------|------|---------|
| FFmpeg filters (fade, xfade, drawtext) | **Seconds** | `duration=1.5` |
| FFmpeg zoompan `d=` parameter | **Frames** | `d=150` (150 frames) |
| FFmpeg time variable `t` | **Seconds** | `enable='gte(t,2)'` |
| ASS karaoke tags (\k, \kf, \ko) | **Centiseconds** | `{\k100}` = 1 second |
| ASS animation tags (\t, \fad, \move) | **Milliseconds** | `\t(0,500,...)` = 0.5s |
| ASS dialogue timestamps | **H:MM:SS.CC** | `0:00:05.50` |

---

# CRITICAL: ASS Has TWO Different Time Units!

**This is the most common source of confusion in subtitle animations.**

## ASS/SSA Time Unit Disambiguation

| Tag Type | Unit | Conversion | Example |
|----------|------|------------|---------|
| **Karaoke tags** (\k, \kf, \ko, \K) | **Centiseconds** (1/100s) | × 100 | `{\k50}` = 0.5 seconds |
| **Animation tags** (\t) | **Milliseconds** (1/1000s) | × 1000 | `\t(0,200,...)` = 0.2 seconds |
| **Fade tags** (\fad) | **Milliseconds** | × 1000 | `\fad(300,0)` = 0.3s fade in |
| **Move tags** (\move) | **Milliseconds** | × 1000 | `\move(x1,y1,x2,y2,0,500)` = 0.5s |
| **Dialogue timestamps** | **H:MM:SS.CC** | Centiseconds | `0:00:01.50` = 1.5 seconds |

### Example: Same Duration, Different Units

```ass
; Both animations last 0.5 seconds but use DIFFERENT UNITS:

; Karaoke: 50 CENTISECONDS = 0.5 seconds
{\k50}Word

; Animation: 500 MILLISECONDS = 0.5 seconds
{\t(0,500,\fscx120)}Word
```

---

# Section 1: FFmpeg Time Units (All Filters)

## Complete FFmpeg Time Unit Reference

| Filter/Context | Parameter | Un

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
33749 chars