ffmpeg-animation-timing-reference について
FFmpegフィルターとASS/SSA字幕のタイミングを確認できるリファレンススキルです。アニメーション、トランジション、キャプション、同期の設計向けに、秒・フレーム・センチ秒・ミリ秒の違いを説明します。
主な機能
- 01FFmpegフィルターごとの時間単位
- 02ASS/SSAタグの単位の違い
- 03時間とフレームレートの指針
- 04プラットフォームと同期の資料
- 05イージングとアニメーションパターン
- 06すぐ使えるタイミング例
活用シーン
- 01キャプションやトランジションの時間を決める
- 02zoompanのフレーム数を秒に換算
- 03ASSのカラオケ・アニメーションタグの時間ミスを防ぐ
- 04フレームレートや同期許容範囲に照らして確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill ffmpeg-animation-timing-referenceインストール後、Claude Code で/ffmpeg-animation-timing-referenceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/caption-readability.mdcopy-paste-patterns.mdeasing-and-springs.mdoptimal-durations.mdplatform-and-sync.md詳細
重要なガイドライン
Windows のファイルパス要件
必須:Windows ではファイルパスに必ずバックスラッシュを使用してください
Windows で Edit または Write ツールを使用する場合、ファイルパスにはスラッシュ(/)ではなく、必ずバックスラッシュ(\)を使用してください。
ドキュメント作成ガイドライン
ユーザーから明示的に依頼されない限り、新しいドキュメントファイルを作成しないでください。
FFmpeg アニメーションのタイミングに関するリファレンス
このスキルは、FFmpeg フィルターおよび ASS/SSA 字幕の「このタイミング値の単位は何か?」や「このアニメーションの長さはどれくらいにすべきか?」という問いに対する決定版です。アニメーション、トランジション、キャプション、同期のタイミングを扱うときは、いつでも参照してください。
クイックリファレンスカード
| コンテキスト | 単位 | 例 |
|---|---|---|
| FFmpeg フィルター(fade、xfade、drawtext) | 秒 | duration=1.5 |
FFmpeg zoompan の d= パラメーター | フレーム | d=150(150 フレーム) |
FFmpeg 時間変数 t | 秒 | enable='gte(t,2)' |
ASS カラオケタグ(\k、\kf、\ko) | センチ秒 | {\k100} = 1 秒 |
ASS アニメーションタグ(\t、\fad、\move) | ミリ秒 | \t(0,500,...) = 0.5 秒 |
| ASS ダイアログのタイムスタンプ | H:MM:SS.CC | 0:00:05.50 |
重要:ASS には異なる時間単位が2種類あります!
これは字幕アニメーションで最もよくある混乱の原因です。 カラオケタグはセンチ秒を使用し、それ以外(アニメーション、フェード、移動)はすべてミリ秒を使用します。混同すると、アニメーションが10倍速く、または10倍遅くなります。
ASS/SSA 時間単位の見分け方
| タグの種類 | 単位 | 換算 | 例 |
|---|---|---|---|
カラオケタグ(\k、\kf、\ko、\K) | センチ秒(1/100 秒) | x 100 | {\k50} = 0.5 秒 |
アニメーションタグ(\t) | ミリ秒(1/1000 秒) | x 1000 | \t(0,200,...) = 0.2 秒 |
フェードタグ(\fad) | ミリ秒 | x 1000 | \fad(300,0) = 0.3 秒のフェードイン |
移動タグ(\move) | ミリ秒 | x 1000 | \move(x1,y1,x2,y2,0,500) = 0.5 秒 |
| ダイアログのタイムスタンプ | H:MM:SS.CC | センチ秒 | 0:00:01.50 = 1.5 秒 |
同じ長さでも単位は異なります
; 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
カラオケ、フェード、移動の完全な例と、センチ秒/ミリ秒の換算表については、references/copy-paste-patterns.md を参照してください。
FFmpeg の時間単位(早見表)
FFmpeg のフィルターの大半は秒(浮動小数点数)を使用します。大きな例外は フレーム 単位の zoompan d= です。
| フィルター/コンテキスト | パラメーター | 単位 |
|---|---|---|
fade / afade | d、st | 秒 |
xfade / acrossfade | duration、offset | 秒 |
drawtext | t 変数、enable | 秒 |
zoompan | d | フレーム |
zoompan | z= 内の t 変数 | 秒 |
trim | start、end | 秒 |
fps | fps | フレーム/秒 |
Zoompan の長さ:秒ではなくフレーム
# d= is FRAMES. For a 2-second zoom:
# 30fps: d=60 (60 frames / 30fps)
# 60fps: d=120 (120 frames / 60fps)
# Formula: frames = seconds * fps
ffmpeg -i input.mp4 -vf "zoompan=z='1.2':d=60:s=1080x1920" output.mp4
バイラル風のフックでは、必ず d=1(フレームごとの処理)を使用し、if(lt(t,0.5),...) のような時間条件で効果を適用してください。d=60 に設定すると、動画の残りの部分が静止します。フックの完全な数式とプラットフォーム別のズームパラメーターについては、references/optimal-durations.md を参照してください。
基本的なワークフロー
- コンテキスト(FFmpeg フィルター、ASS カラオケ、ASS アニメーション、ダイアログのタイムスタンプのいずれか)を特定し、クイックリファレンスカードを読んで単位を確認します。
- 目標の長さを知覚に基づいて選び(
references/optimal-durations.md)、プラットフォームのテンポに合わせます(references/platform-and-sync.md)。 - 値が短い(<300ms)場合は、
references/platform-and-sync.mdのフレームセーフ表を使って、フレーム境界に合わせます。 - 動きに磨きをかける必要がある場合は、イージングカーブを選びます(
references/easing-and-springs.md)。 - アニメーションがフリッカーのしきい値を下回ったり、リップシンクが崩れたりしないよう、知覚のしきい値と同期の許容範囲に照らして検証します。
references/copy-paste-patterns.mdから一致するパターンをコピーし、パラメーターを調整します。
有効化ガイダンス
質問に応じて、適切なリファレンスを読み込みます。
| 質問の内容 | 読み込むファイル |
|---|---|
| 「このキャプション/トランジション/フックはどのくらいの長さにすべきですか?」 | references/optimal-durations.md |
| 「キャプションが速すぎる、または WCAG に準拠しないのはなぜですか?」 | references/caption-readability.md |
| 「これは TikTok/Shorts/Reels/放送で使えますか?」 | references/platform-and-sync.md |
| 「リップシンク/ビートシンクは許容範囲内ですか?」 | references/platform-and-sync.md |
| 「この長さは 30fps/60fps で滑らかに見えますか?」 | references/platform-and-sync.md |
| 「どのイージングカーブ/スプリングを使うべきですか?」 | references/easing-and-springs.md |
| 「そのまま貼り付けられるタイミングのスニペットを教えてください。」 | references/copy-paste-patterns.md |
長さの早見表
| 長さ | 用途 |
|---|---|
| 50-100ms | グリッチ、フラッシュ |
| 100-200ms | すばやい UI フィードバック |
| 200-300ms | 標準的なアニメーション |
| 300-500ms | 滑らかなトランジション |
| 500-800ms | はっきりとした動き |
| 800-1500ms | 劇的な効果 |
| 1.5-3s | キャプションの表示 |
| 3-5s | 長文を読む場合 |
最低基準:WCAG におけるキャプションの最短表示時間は 1.5s です。認識可能なアニメーションの最短時間は、30fps で約 67ms、60fps で約 33ms です。リップシンクの許容誤差は +/-80ms(目標は +/-40ms)です。
リファレンスマップ
スキル内のリファレンス(必要に応じて読み込みます):
references/optimal-durations.md- 人間の知覚閾値、テキストアニメーション、動画トランジション、フック効果、カラオケに推奨される長さ、バイラル動画における 1.3s の注目閾値、プラットフォーム別のズームパラメーター/フックの計算式。references/caption-readability.md- 読む速さの基準(WPM)、キャプション表示時間の計算式、Python 実装、WCAG 2.2 のアクセシビリティ要件。references/platform-and-sync.md- TikTok/YouTube Shorts/Instagram Reels/放送向けのタイミングプロファイル、音声と映像の同期許容誤差(リップシンク、音楽、カラオケ、SFX)、フレームレートの精度、フレームに安全な長さの表。references/easing-and-springs.md- Material Design のタイミング、FFmpeg のイージング式、イージングの全計算式(線形、二次、三次、指数、正弦、円、弾性、バウンス、バック)、スプリング物理学(質量-スプリング-ダンパー)、振動/波/リサージュの計算式、疑似乱数ノイズ、ジッター/シェイク、フェード/スケール/位置/回転のクックブック、生体リズム、情報源。references/copy-paste-patterns.md- そのまま貼り付けられる FFmpeg および ASS のタイミングスニペット、フレームレート変換表、zoompan の長さの計算。
関連スキル
ffmpeg-karaoke-animated-text- カラオケ字幕の作成viral-video-animated-captions- CapCut スタイルのアニメーションffmpeg-transitions-effects- 動画トランジションviral-video-hook-templates- フックのタイミングパターンffmpeg-captions-subtitles- 字幕の基本