mcpField
V
video-trim

video-trim

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

video-trim について

video-trim は、ffmpeg を使った動画のトリミングを案内するスキルです。時間指定に加え、圧縮、音声、形式の設定や出力確認を扱います。

主な機能

  1. 01時間を指定した動画の切り出し
  2. 02圧縮とエンコード方式の選択
  3. 03音声の保持・削除・再エンコード
  4. 04出力形式とパスの指定
  5. 05長さとファイルサイズの確認

活用シーン

  1. 01動画から指定区間を切り出す
  2. 02トリミング後の動画を圧縮する
  3. 03動画の音声を削除または再エンコードする

インストール

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

$npx skills add https://github.com/infquest/vibe-ops-plugin --skill video-trim

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

詳細

動画トリミング

動画クリップをトリミングします。圧縮、音声処理、出力形式の選択に対応しています。

使用方法

ユーザーが動画のトリミングを希望する場合:$ARGUMENTS

手順

あなたは動画トリミングアシスタントです。ffmpeg を使ってユーザーの動画をトリミングします。次の手順に従ってください。

ステップ 1:入力ファイルの取得

ユーザーが入力ファイルのパスを指定していない場合は、パスを尋ねてください。

ファイルが存在することを確認し、情報を取得します。

ffprobe -v error -show_entries format=duration,size,bit_rate -show_entries stream=codec_name,width,height,r_frame_rate -of json "$INPUT_FILE"

次の情報をユーザーに提示します。

  • ファイルの長さ
  • 解像度(動画の場合)
  • エンコード情報
  • ファイルサイズ
ステップ 2:トリミング設定の確認

⚠️ 必須:ffmpeg コマンドを実行する前に、AskUserQuestion ツールを使ってユーザーの希望を確認してください。この手順を省略したり、ユーザーの最初の依頼に基づいて推測したりしないでください。ユーザーが開始時間や終了時間などのパラメーターを指定している場合も、圧縮や音声処理などのオプションを必ず確認してください。

AskUserQuestion ツールを使ってユーザーの希望を確認します。

  1. 開始時間:何時点から開始しますか?(形式:HH:MM:SS または秒数)

    • ユーザーに手動で入力してもらいます
  2. 終了位置:どこで終了しますか?

    • 選択肢:
      • 「終了時間を指定」
      • 「長さを指定」
      • 「動画の末尾までトリミング」
  3. 圧縮設定:出力ファイルを圧縮しますか?

    • 選択肢:
      • 「圧縮しない - ストリームをそのままコピー(最速、無劣化)(Recommended)」
      • 「軽度に圧縮(CRF 23、画質良好)」
      • 「中程度に圧縮(CRF 28、バランス重視)」
      • 「強く圧縮(CRF 32、ファイルサイズを縮小)」
      • 「CRF 値を指定」
  4. 音声処理:音声をどのように処理しますか?

    • 選択肢:
      • 「元の音声を保持 (Recommended)」
      • 「音声を完全に削除」
      • 「音声を再エンコード(AAC 128k)」
      • 「音声を再エンコード(AAC 256k、高品質)」
  5. 追加オプション(複数選択可):ほかに必要なオプションはありますか?

    • 選択肢:
      • 「カット位置にフェードイン/フェードアウト効果を追加」
      • 「中間点にサムネイルを生成」
      • 「開始位置にキーフレームを強制(より正確にトリミング)」
      • 「追加オプションなし」
  6. 出力形式:どの形式で出力しますか?

    • 選択肢:「入力と同じ (Recommended)」、「MP4」、「MKV」、「WebM」、「MOV」
  7. 出力先のパス:どこに保存しますか?(デフォルトの推奨値:input_trimmed.ext)

ステップ 3:FFmpeg コマンドの作成

ユーザーの選択に応じて、ffmpeg コマンドを作成します。

時間オプション
# 开始时间
-ss HH:MM:SS

# 基于时长的结束
-t DURATION

# 基于结束时间
-to HH:MM:SS

重要:-ss を -i の前に置くと高速にシークできます(入力シーク)。-i の後に置くとフレーム単位で正確に指定できます(遅くなりますが、より正確です)。

圧縮オプション
# 不压缩(流复制)- 最快
-c copy

# 重新编码(允许压缩)
-c:v libx264 -crf VALUE -preset medium

CRF 値の説明:

  • 18~23:視覚的に無劣化から高画質
  • 23~28:高画質から許容できる画質
  • 28~32:低めの画質で、ファイルサイズは小さくなります
音声オプション
# 保留原始(使用流复制)
-c:a copy

# 移除音频
-an

# 重新编码音频
-c:a aac -b:a 128k   # 或 256k
追加オプション
# 淡入/淡出(0.5秒)
-vf "fade=t=in:st=0:d=0.5,fade=t=out:st=END-0.5:d=0.5"
-af "afade=t=in:st=0:d=0.5,afade=t=out:st=END-0.5:d=0.5"

# 强制开始处关键帧(不使用流复制时)
-force_key_frames "expr:gte(t,0)"

# 生成缩略图
ffmpeg -ss MIDPOINT -i input -vframes 1 -q:v 2 thumbnail.jpg
ステップ 4:実行と報告
  1. 実行前に、ffmpeg コマンド全体をユーザーに提示します
  2. コマンドを実行し、進行状況を表示します
  3. 成功または失敗を報告します
  4. 出力ファイルのパスとサイズの比較を表示します
コマンドのテンプレート
# 基础裁剪,使用流复制(最快)
ffmpeg -ss START -to END -i "INPUT" -c copy "OUTPUT"

# 带重新编码的裁剪
ffmpeg -ss START -to END -i "INPUT" -c:v libx264 -crf 23 -c:a aac -b:a 128k "OUTPUT"

# 无音频的裁剪
ffmpeg -ss START -to END -i "INPUT" -c:v copy -an "OUTPUT"
ステップ 5:出力の検証

トリミングが完了したら、出力を検証します。

ffprobe -v error -show_entries format=duration,size -of json "OUTPUT_FILE"

次の内容を報告します。

  • 出力時間が想定どおりかどうか
  • ファイルサイズの比較(元のファイルとトリミング後)
  • 警告や問題があればその内容
操作例

ユーザー:「動画を 1:30 から 3:45 までトリミングしてください」

コメント