본문으로 건너뛰기
cccskills
무료GitHub에 공개

frame-inspect

動画・画像のフレーム抽出、Remotion レンダリング、仕様チェック、目視検証を行う汎用ビデオツールキット。

ffmpeg / ffprobe / remotion still / remotion render を統一シェルスクリプト (video-tool.sh) で操作し、 Read ツール(マルチモーダル対応)で実際の見た目を確認して品質レポートを出す。

Use when: 動画のフレームを確認したい、レンダリング結果を検証したい、 画像の品質を目視チェックしたい、Remotion プロジェクトを MP4 に出力したい、 動画の仕様(解像度・fps・長さ)をチェックしたい。

Triggers: "フレーム確認", "フレーム検証", "動画チェック", "frame inspect", "フレーム抽出", "動画の中身を見たい", "レンダリング確認", "動画検証", "MP4 確認", "動画のスクショ", "frame check", "動画を出力", "Remotion render", "動画レンダリング", "仕様チェック", "spec check", "video render"

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md9.2 KB
  • scripts/video-tool.sh9.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

frame-inspect スキル

動画・画像のフレーム抽出、Remotion レンダリング、仕様チェック、目視検証の統合ツールキット。

シェルスクリプト

scripts/video-tool.sh で全操作を統一的に実行できる:

TOOL={スキルディレクトリ}/scripts/video-tool.sh

$TOOL info   <video>                       # 動画情報を表示
$TOOL check  <video> --spec KEY=VAL ...    # 仕様チェック
$TOOL frames <video> <outdir> [--fps N]    # フレーム抽出
$TOOL still  <dir> <outdir> [--frame N]    # Remotion still
$TOOL render <dir> <output> [--comp ID]    # Remotion → MP4
$TOOL gif    <video> <output> [--fps N]    # GIF 作成

Step 1: 入力の特定

ユーザーから以下を確認:

  • 対象ファイル/ディレクトリ: 動画ファイルのパス、または Remotion プロジェクトのディレクトリ
  • やりたいこと: フレーム抽出 / レンダリング / 仕様チェック / 目視検証
  • 確認したいポイント(任意): 特定のシーン、タイミング、品質基準など

Step 2: 入力タイプの判定

入力判定方法使えるコマンド
.mp4 / .mov / .webm / .avi拡張子で判定info, check, frames, gif
.png / .jpg / .jpeg / .gif / .webp拡張子で判定Read で直接表示
ディレクトリ + package.json に remotionpackage.json を Readstill, render + 上記全て
ディレクトリ + 動画ファイル群ls で確認各ファイルに対して上記

Step 3: 操作の実行

3A: 動画情報の確認

$TOOL info {videoPath}

出力: 解像度、fps、長さ、コーデック、ファイルサイズ

3B: 仕様チェック(ffprobe ベース)

# App Store プレビュー動画の仕様チェック例
$TOOL check {videoPath} \
  --spec width=886 \
  --spec height=1920 \
  --spec fps=30 \
  --spec codec=h264 \
  --spec max_duration=25 \
  --spec max_size_mb=500

# 汎用的な仕様チェック
$TOOL check {videoPath} \
  --spec width=1920 \
  --spec height=1080 \
  --spec fps=60

チェック可能な項目:

キー説明チェック方法
width横幅 (px)完全一致
height縦幅 (px)完全一致
fpsフレームレート完全一致
codecコーデック名完全一致 (h264, hevc 等)
max_duration最大長さ (秒)以下
max_size_mb最大サイズ (MB)以下

3C: フレーム抽出(動画 → PNG)

# 1秒に1枚(デフォルト)
$TOOL frames {videoPath} {outDir}

# 0.5秒に1枚
$TOOL frames {videoPath} {outDir} --fps 2

# サムネイル用(2秒に1枚)
$TOOL frames {videoPath} {outDir} --fps 0.5

3D: Remotion still(特定フレーム抽出)

# フレーム 0
$TOOL still {projectDir} {outDir} --frame 0

# フレーム 90(30fps なら 3秒目)
$TOOL still {projectDir} {outDir} --frame 90

# コンポジション ID を明示
$TOOL still {projectDir} {outDir} --frame 0 --comp MyComposition

3E: Remotion render(MP4 出力)

# 自動検出(Root.tsx から composition ID を取得)
$TOOL render {projectDir} out/preview.mp4

# コンポジション ID を明示
$TOOL render {projectDir} out/preview.mp4 --comp AppStorePreview

レンダリング後は自動的に check で仕様確認するのを推奨:

$TOOL render {projectDir} out/preview.mp4
$TOOL check out/preview.mp4 --spec width=886 --spec height=1920 --spec fps=30

3F: GIF 作成(プレビュー用)

# デフォルト(5fps, 幅320px)
$TOOL gif {videoPath} out/preview.gif

# 高品質(10fps)
$TOOL gif {videoPath} out/preview.gif --fps 10

Step 4: 目視検証

抽出したフレーム画像を Read ツールで確認する。

Read: {outDir}/frame_001.png
Read: {outDir}/frame_005.png
Read: {outDir}/frame_010.png

チェック項目

レイアウト

  • テキストや要素が画面外にはみ出していないか
  • 要素同士が不自然に重なっていないか
  • 余白のバランスが適切か

テキスト

  • 文字が読めるサイズか
  • テキストと背景のコントラストが十分か
  • 文字化けや欠けがないか

カラー・ビジュアル

  • 意図した色が使われているか
  • 背景が意図せず真っ白/真っ黒になっていないか
  • 画像が正しく表示されているか(壊れ、欠け、歪みがないか)

アニメーション状態(動画の場合)

  • シーン遷移が自然か(空白フレームがないか)
  • アニメーションの途中状態が意図通りか

エンコード品質(MP4 の場合)

  • 圧縮アーティファクト(ブロックノイズ)が目立たないか
  • テキストがエンコードで潰れていないか
  • 先頭・末尾に不要な空白フレームがないか

Step 5: レポート出力

検証結果をユーザーに報告:

## フレーム検証レポート

### 対象
- ファイル: {fileName}
- 種類: {MP4 / Remotion / 画像}
- 解像度: {width} x {height}
- fps: {fps}
- 長さ: {duration}(動画の場合)
- コーデック: {codec}
- サイズ: {size}MB

### 仕様チェック
| 項目 | 値 | 判定 |
|------|-----|------|
| 解像度 | {W}x{H} | OK/NG |
| fps | {fps} | OK/NG |
| 長さ | {duration}s | OK/NG |
| コーデック | {codec} | OK/NG |
| サイズ | {size}MB | OK/NG |

### フレーム検証結果

| フレーム | タイミング | 判定 | コメント |
|---------|-----------|------|---------|
| frame_001.png | 0:01 | OK | - |
| frame_003.png | 0:03 | NG | テキストが右端で切れている |
| frame_005.png | 0:05 | OK | トランジションがスムーズ |

### 問題点
1. **frame_003.png (0:03)**: テキストが画面右端で切れている
   - 推定原因: テキスト要素の x 座標が大きすぎる

### 良好な点
- 全体のカラーバランスが良い
- シーン遷移が滑らか

シェルスクリプトなしで直接実行する場合

スクリプトが使えない環境では、以下のコマンドを直接実行:

ffprobe(動画情報・仕様チェック)

# 基本情報
ffprobe -v error -select_streams v:0 \
  -show_entries stream=width,height,r_frame_rate,codec_name,duration \
  -show_entries format=duration,size \
  -of default=noprint_wrappers=1 input.mp4

# JSON 形式(パース用)
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

ffmpeg(フレーム抽出)

# 等間隔フレーム抽出(1fps)
ffmpeg -i input.mp4 -vf "fps=1" out/frame_%03d.png -y

# 特定秒のフレーム
ffmpeg -i input.mp4 -ss 5.5 -frames:v 1 out/at_5s.png -y

# 特定フレーム番号(0-indexed)
ffmpeg -i input.mp4 -vf "select=eq(n\,60)" -frames:v 1 out/frame_060.png -y

# GIF 作成
ffmpeg -i input.mp4 -vf "fps=5,scale=320:-1:flags=lanczos" out/preview.gif -y

# 先頭 N 秒だけ切り出し
ffmpeg -i input.mp4 -t 5 -c copy out/first_5s.mp4 -y

Remotion

# still(特定フレーム抽出)
cd {projectDir} && npx remotion still {compositionId} out/frame.png --frame=0

# render(MP4 出力)
cd {projectDir} && npx remotion render {compositionId} out/preview.mp4

# フレーム番号の計算(30fps)
# 1秒 = 30フレーム, 3秒 = 90, 5.5秒 = 165

典型的なワークフロー例

Remotion プロジェクトの検証

# 1. MP4 にレンダリング
$TOOL render ./preview-video out/preview.mp4

# 2. 仕様チェック
$TOOL check out/preview.mp4 --spec width=886 --spec height=1920 --spec fps=30 --spec codec=h264 --spec max_duration=25

# 3. フレーム抽出
$TOOL frames out/preview.mp4 out/video-frames --fps 2

# 4. Read で目視確認
Read: out/video-frames/frame_001.png
Read: out/video-frames/frame_010.png
Read: out/video-frames/frame_020.png

既存 MP4 の品質チェック

# 1. 情報確認
$TOOL info input.mp4

# 2. フレーム抽出
$TOOL frames input.mp4 out/frames

# 3. Read で目視確認
Read: out/frames/frame_001.png
Read: out/frames/frame_005.png

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

This skill should be used when the user asks to "create a team", "spawn agents", "parallel execution", "delegate tasks to agents", "use a swarm", "team workflow", "split work across agents", "run tasks in parallel", or mentions wanting multiple agents to collaborate on a complex task.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

sean-sunagaku/claude-code-plugin382026년 7월 30일 업데이트

Agent Teams スキルを設計・構築するためのベストプラクティスガイド。 サブエージェント定義、SendMessage 通信プロトコル、タスク依存管理、 PostToolUse Hook によるログ、MCP ツール統合、コンテキストファイル設計を網羅。 7つの実績あるチームスキル(app-naming, ui-review, logo-design, persona-creation, skill-creator-team, ui-variations, aso-optimize)から抽出したパターン集。 Use when: Agent Teams を使ったスキルを新規作成したい、 既存のチームスキルの品質を改善したい、エージェント間通信のデバッグ、 チームスキルの設計パターンを知りたい。 Triggers: "agent team", "チームスキル", "エージェントチーム", "サブエージェント定義", "SendMessage パターン", "チーム設計", "エージェント間通信", "team skill", "swarm pattern"

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

sean-sunagaku/claude-code-plugin382026년 7월 30일 업데이트

アプリ名・サービス名の命名を、5つの専門エージェントチームで多角的に評価・決定するスキル。 ブランディング、商標/法的リスク、デジタルプレゼンス(SEO/ASO/SNS)、国際展開(多言語/発音)の 4観点から候補を提案・調査・議論し、コンテキストファイルと議事録で次回セッションへ引き継ぐ。 Use when: アプリ名を決めたい、サービス名を変更したい、プロダクト名を検討したい、 ネーミングブレスト、名前の商標チェック、アプリ名のリネーム。 Triggers: "アプリ名", "サービス名", "プロダクト名", "ネーミング", "名前を決め", "リネーム", "rename", "app name", "naming", "ブランド名", "商標チェック"

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

sean-sunagaku/claude-code-plugin382026년 7월 30일 업데이트

App Store プレビュー動画を Remotion (React) で生成する Agent Team スキル。 video-director が構成を設計し、script-writer がナレーション台本を作成し、 motion-designer が Remotion コードを実装し、preview-reviewer がコードレビューし、 frame-inspector がレンダリング結果を目視検証する。 Use when: App Store プレビュー動画を作りたい、アプリのプロモーション動画を作りたい、 Remotion で動画を生成したい。 Triggers: "プレビュー動画", "App Store 動画", "アプリ動画", "preview movie", "Remotion", "動画作成", "app preview"

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

sean-sunagaku/claude-code-plugin382026년 7월 30일 업데이트

アプリのトーン&マナー(トンマナ)を8名のエージェントチームで設計するスキル。 ブランドアーキタイプ・パーソナリティ定義から、カラー・タイポグラフィ・ビジュアルスタイル・ トーン・オブ・ボイスまでを一貫設計し、Pencil (.pen) + Markdown で成果物を出力する。 「デザインテンション」(矛盾ペア)を核に、AIっぽくない独自のブランドアイデンティティを生成する。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

sean-sunagaku/claude-code-plugin382026년 7월 30일 업데이트

仕様書・要件定義からソフトウェアアーキテクチャを設計するスキル。 5人の専門エージェント(Architecture Lead・Module Designer・Dependency Analyst・ Platform Expert・Devil's Advocate)が協議しながら、 モジュール分割・依存関係・データフロー・インターフェース設計を行う。 成果物は構造化されたアーキテクチャ設計書(Markdown)。 Use when: 仕様書からどう設計するか迷っている時、モジュール分割の方針を決めたい時、 技術スタックに合ったアーキテクチャパターンを選びたい時、 設計書を作成したい時。 Triggers: "アーキテクチャ設計", "arch design", "仕様書から設計", "モジュール分割", "設計書を作りたい", "アーキテクチャを考えて", "コンポーネント設計", "依存関係を設計", "どう設計する", "design the architecture", "design from spec"

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

sean-sunagaku/claude-code-plugin382026년 7월 30일 업데이트

sean-sunagaku의 스킬 모두 보기

이 스킬의 문제 신고