mcpField
F
ffmpeg-karaoke-animated-text

ffmpeg-karaoke-animated-text

github.com/josiahsiegelクリエイティブ・メディア59103 回インストール19 週間前に更新
リポジトリ

ffmpeg-karaoke-animated-text について

FFmpegでカラオケ字幕やアニメーション文字を作るための、動画制作者向けスキルです。ASSとdrawtextの選び方、コマンド例、時間単位を解説します。

主な機能

  1. 01ASSによるカラオケ字幕効果
  2. 02drawtextによる動的な文字表示
  3. 03ASSとdrawtextの使い分け
  4. 04センチ秒・ミリ秒・秒の区別
  5. 05FFmpegのコマンドと手順

活用シーン

  1. 01単語ごとに色が変わる歌詞字幕の作成
  2. 02スクロールクレジットやローワーサードの追加
  3. 03タイプライター文字、タイトル、カウントダウンの作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill ffmpeg-karaoke-animated-text

インストール後、Claude Code で/ffmpeg-karaoke-animated-textを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
drawtext-animation-recipes.md
karaoke-ass-patterns.md
scrolling-credits-and-expressions.md

詳細

重要なガイドライン

Windows のファイルパス要件

必須:Windows ではファイルパスに必ずバックスラッシュを使用してください

Windows で Edit または Write ツールを使用する場合、ファイルパスにはスラッシュ(/)ではなく、必ずバックスラッシュ(\)を使用してください。


FFmpeg のカラオケ字幕とアニメーションテキスト

カラオケ字幕、キネティックタイポグラフィ、スクロールするクレジット、アニメーション付きのローワーサード、タイプライター風テキスト、タイマー、動的なテキストオーバーレイには、このスキルを使用してください。回答は実用的なものにしてください。ASS と drawtext のどちらが適切かを判断し、そのままコピーして使えるコマンドまたは ASS のスニペットを提示して、タイミングの単位も明示してください。

クイックリファレンス

効果パターン
カラオケ ASSASS 形式を使用し、タイミングタグには \k、\kf、または \ko を指定します
カラオケ字幕を映像に焼き込むffmpeg -i input.mp4 -vf "ass=karaoke.ass" -c:v libx264 -crf 18 -c:a copy output.mp4
スクロールするクレジット-vf "drawtext=textfile=credits.txt:y=h-80*t"
タイプライター風テキストdrawtext のレイヤーを enable='gte(t,...)' で順次表示します
テキストのフェードイン-vf "drawtext=text='Title':alpha='min(1,t/2)'"
バウンスするテキスト-vf "drawtext=text='Bounce':y='h/2+50*sin(t*5)'"
移動するテキスト-vf "drawtext=text='Move':x='w-mod(t*100,w+tw)'"
回転ASS(\frz、\frx、\fry)を使用します。drawtext は標準ではテキストを回転できません

このスキルを使用する場面

アニメーションテキストやカラオケ字幕には、次の用途で使用してください。

  • カラオケ風のハイライト付きミュージックビデオの歌詞
  • 映画風のスクロールするクレジット
  • アニメーション付きのタイトルとローワーサード
  • タイプライター風のテキスト表示
  • キネティックタイポグラフィと単語のポップ表示
  • カウントダウンタイマー、ストップウォッチ、フレームカウンター、タイムコードのオーバーレイ
  • 複数行のテキストと、テキストファイルを使ったオーバーレイ

ツールの選択:ASS と drawtext

必要な処理最適なツール理由
単語や音節のカラオケハイライトASS\k、\kf、\ko をネイティブにサポートしています
縁取り、グロー、回転を使ったスタイル付き字幕ASS豊富な字幕スタイルと変形タグを利用できます
シンプルなテキストオーバーレイdrawtext高速で直接使える FFmpeg フィルターです
タイムコード、フレーム番号、メタデータのテキストdrawtext変数展開が組み込まれています
スクロールするクレジットやニュースティッカーdrawtext位置の式を簡単に指定できます
単語ごとのキネティックキャプションASS または複数の drawtext レイヤー回転や拡大縮小には ASS のほうが簡単で、数式による動きには drawtext が直接使えます

重要:ASS の時間単位リファレンス

ASS では異なる 2 種類の時間単位が使われます。よくある不具合の原因です。 カラオケタグではセンチ秒、ASS のアニメーションタグではミリ秒、FFmpeg の drawtext 式では秒を使います。

カラオケタグ=センチ秒(1/100 秒)
タグ単位例継続時間
\kセンチ秒{\k50}0.5 秒
\kfセンチ秒{\kf100}1.0 秒
\koセンチ秒{\ko25}0.25 秒

換算:秒 * 100 = センチ秒。

アニメーションタグ=ミリ秒(1/1000 秒)
タグ単位例継続時間
\t(t1,t2,...)ミリ秒\t(0,500,...)0~500ms のアニメーション
\fad(in,out)ミリ秒\fad(200,300)200ms でフェードイン、300ms でフェードアウト
\move(x1,y1,x2,y2,t1,t2)ミリ秒\move(0,0,100,100,0,1000)1 秒間の移動

換算:秒 * 1000 = ミリ秒。

FFmpeg の drawtext=秒
式単位例
t秒t=2.5 は 2.5 秒を意味します
enable='between(t,0,3)'秒0~3 秒の間に表示されます
alpha='min(1,t/2)'秒2 秒かけてフェードします
よくある間違い
; WRONG - mixing units:
Dialogue: 0,0:00:00.00,0:00:02.00,Style,,0,0,0,,{\k100\t(0,100,...)}Word
; {\k100} = 1 second, but \t(0,100,...) = 0.1 seconds

; CORRECT - matched duration:
Dialogue: 0,0:00:00.00,0:00:02.00,Style,,0,0,0,,{\k100\t(0,1000,...)}Word

時間単位の完全なリファレンスについては、ffmpeg-animation-timing-reference を使用してください。


カラオケの基本パターン

[Script Info]
ScriptType: v4.00+
PlayResX: 1920
PlayResY: 1080

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Karaoke,Arial,72,&H00FFFFFF,&H000000FF,&H00000000,&H80000000,1,0,0,0,100,100,0,0,1,3,2,2,10,10,50,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:05.00,Karaoke,,0,0,0,,{\k50}Twinkle {\k50}twinkle {\k50}little {\k50}star

映像に焼き込む:

ffmpeg -i input.mp4 \
  -vf "ass=karaoke.ass" \
  -c:v libx264 -crf 18 -c:a copy \
  output_karaoke.mp4

高度なスタイル、ネオン/グラデーションのカラオケ字幕、文字ごとのタイミング、アニメーション付きのカラオケ変形については、references/karaoke-ass-patterns.md を参照してください。

drawtext のコアパターン

# Fade in title over 2 seconds
ffmpeg -i input.mp4 \
  -vf "drawtext=text='Title':fontsize=100:fontcolor=white:x=(w-tw)/2:y=(h-th)/2:alpha='min(1,t/2)'" \
  output.mp4

# Vertical bounce
ffmpeg -i input.mp4 \
  -vf "drawtext=text='BOUNCE':fontsize=80:fontcolor=yellow:x=(w-tw)/2:y='(h-th)/2+50*sin(t*5)'" \
  bounce.mp4

# Scroll credits upward at 80px/sec
ffmpeg -i input.mp4 \
  -vf "drawtext=textfile=credits.txt:fontsize=48:fontcolor=white:x=(w-tw)/2:y=h-80*t" \
  -c:v libx264 -crf 18 output.mp4

スプリング/弾性/揺れの数式、タイプライター効果、ローワーサード、カウントダウン、ストップウォッチ、メタデータのオーバーレイ、複数行テキストについては、references/drawtext-animation-recipes.md を参照してください。

ワークフロー

  1. ツール選択表を使って、ASS または drawtext を選択します。
  2. タグや式を記述する前に、タイミングの単位を確認します。
  3. 必要に応じて入力をプローブし(ffprobe)、長さ、フレームレート、解像度を確認します。
  4. テキストを焼き込むときは、出力エンコーディングを明示的に設定します(-c:v libx264 -crf 18。互換性がある場合に限り、音声をコピーします)。
  5. ミュージックビデオやエンドロール全体をレンダリングする前に、短いテストレンダリングを行います(-ss、-t)。
  6. 読みやすさを確認します。カラオケは約30ms以内に単語と同期させ、字幕には十分な表示時間を確保し、スクロールするクレジットは読める速さで移動させます。

リファレンス一覧

  • references/karaoke-ass-patterns.md - ASS カラオケの基本、\k/\kf/\ko、BPM タイミング、タグの選択、ネオン/グラデーションスタイル、文字単位のカラオケ、ASS のカラー形式、アニメーション付きカラオケ効果。
  • references/drawtext-animation-recipes.md - スプリングバウンス、弾性オーバーシュート、イージングの近似、揺れ/ぐらつき、パルス、ワイプ、タイプライター、フェード、テキストの移動、キネティックタイポグラフィ、ローワーサード、カウントダウン、ストップウォッチ、動的変数、複数行テキスト。
  • references/scrolling-credits-and-expressions.md - 音楽/教育/クレジットのタイミング、縦方向のクレジット、横方向のティッカー、ASS の回転の回避策、drawtext の変数と式のクックブック。

関連スキル

  • ffmpeg-animation-timing-reference - タイミングの単位、字幕の表示時間、イージング、同期の許容誤差
  • ffmpeg-captions-subtitles - 字幕の基礎、抽出、焼き込み、スタイリング
  • ffmpeg-kinetic-captions - 単語単位でポップ/バウンス/拡大する字幕効果
  • viral-video-animated-captions - ソーシャル動画向け字幕テンプレート
  • ffmpeg-shapes-graphics - ボックス、背景、グラフィックのオーバーレイ
  • ffmpeg-transitions-effects - xfade と動画トランジション

コメント