video-trim について
video-trim は、ffmpeg を使った動画のトリミングを案内するスキルです。時間指定に加え、圧縮、音声、形式の設定や出力確認を扱います。
主な機能
- 01時間を指定した動画の切り出し
- 02圧縮とエンコード方式の選択
- 03音声の保持・削除・再エンコード
- 04出力形式とパスの指定
- 05長さとファイルサイズの確認
活用シーン
- 01動画から指定区間を切り出す
- 02トリミング後の動画を圧縮する
- 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 ツールを使ってユーザーの希望を確認します。
-
開始時間:何時点から開始しますか?(形式:HH:MM:SS または秒数)
- ユーザーに手動で入力してもらいます
-
終了位置:どこで終了しますか?
- 選択肢:
- 「終了時間を指定」
- 「長さを指定」
- 「動画の末尾までトリミング」
- 選択肢:
-
圧縮設定:出力ファイルを圧縮しますか?
- 選択肢:
- 「圧縮しない - ストリームをそのままコピー(最速、無劣化)(Recommended)」
- 「軽度に圧縮(CRF 23、画質良好)」
- 「中程度に圧縮(CRF 28、バランス重視)」
- 「強く圧縮(CRF 32、ファイルサイズを縮小)」
- 「CRF 値を指定」
- 選択肢:
-
音声処理:音声をどのように処理しますか?
- 選択肢:
- 「元の音声を保持 (Recommended)」
- 「音声を完全に削除」
- 「音声を再エンコード(AAC 128k)」
- 「音声を再エンコード(AAC 256k、高品質)」
- 選択肢:
-
追加オプション(複数選択可):ほかに必要なオプションはありますか?
- 選択肢:
- 「カット位置にフェードイン/フェードアウト効果を追加」
- 「中間点にサムネイルを生成」
- 「開始位置にキーフレームを強制(より正確にトリミング)」
- 「追加オプションなし」
- 選択肢:
-
出力形式:どの形式で出力しますか?
- 選択肢:「入力と同じ (Recommended)」、「MP4」、「MKV」、「WebM」、「MOV」
-
出力先のパス:どこに保存しますか?(デフォルトの推奨値: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:実行と報告
- 実行前に、ffmpeg コマンド全体をユーザーに提示します
- コマンドを実行し、進行状況を表示します
- 成功または失敗を報告します
- 出力ファイルのパスとサイズの比較を表示します
コマンドのテンプレート
# 基础裁剪,使用流复制(最快)
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 までトリミングしてください」