Agent Skills by ALSEL
Anthropic ClaudeEC・マーケティング⭐ リポ 0品質スコア 50/100

ffmpeg

FFmpegを使用した動画・音声の処理を行います。フォーマット変換、リサイズ、圧縮、音声抽出、Remotion向けアセットの準備などに活用できます。GIFからMP4への変換、動画のリサイズ、音声抽出、ファイル圧縮など、あらゆるメディア変換タスクで自動的に呼び出されます。

description の原文を見る

Video and audio processing with FFmpeg. Use for format conversion, resizing, compression, audio extraction, and preparing assets for Remotion. Triggers include converting GIF to MP4, resizing video, extracting audio, compressing files, or any media transformation task.

SKILL.md 本文

ビデオプロダクション向けFFmpeg

FFmpegはビデオ・オーディオ処理に必須のツールです。このスキルはRemotionビデオプロジェクト向けの一般的な操作をカバーしています。

クイックリファレンス

GIFからMP4へ(Remotion対応)

ffmpeg -i input.gif -movflags faststart -pix_fmt yuv420p \
  -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4

フラグの意味:

  • -movflags faststart - メタデータを先頭に移動してWebストリーミングに対応
  • -pix_fmt yuv420p - ほとんどのプレイヤーとの互換性を確保
  • scale=trunc(...) - 偶数の解像度に統一(ほとんどのコーデックで必須)

ビデオのリサイズ

# 1920x1080にリサイズ(アスペクト比を維持、黒帯を追加)
ffmpeg -i input.mp4 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" output.mp4

# 1920x1080にリサイズ(トリミングして埋める)
ffmpeg -i input.mp4 -vf "scale=1920:1080:force_original_aspect_ratio=increase,crop=1920:1080" output.mp4

# 幅を指定して自動高さ計算
ffmpeg -i input.mp4 -vf "scale=1280:-2" output.mp4

ビデオの圧縮

# 良好な品質で小さいファイル(CRF 23がデフォルト、数値が低いほど高品質)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

# Webプレビュー向けの高度な圧縮
ffmpeg -i input.mp4 -c:v libx264 -crf 28 -preset fast -c:a aac -b:a 96k output.mp4

# ファイルサイズを指定(例:60秒ビデオで約10MB = 約1.3Mbps)
ffmpeg -i input.mp4 -c:v libx264 -b:v 1300k -c:a aac -b:a 128k output.mp4

音声の抽出

# MP3に抽出
ffmpeg -i input.mp4 -vn -acodec libmp3lame -q:a 2 output.mp3

# AACに抽出
ffmpeg -i input.mp4 -vn -acodec aac -b:a 192k output.m4a

# WAV形式で抽出(無圧縮)
ffmpeg -i input.mp4 -vn output.wav

オーディオフォーマットの変換

# M4AからMP3へ(ElevenLabsボイスサンプル向け)
ffmpeg -i input.m4a -codec:a libmp3lame -qscale:a 2 output.mp3

# WAVからMP3へ
ffmpeg -i input.wav -codec:a libmp3lame -b:a 192k output.mp3

# ボリュームを調整
ffmpeg -i input.mp3 -filter:a "volume=1.5" output.mp3

ビデオのトリム・カット

# タイムスタンプから期間指定でカット(推奨 - 安定している)
ffmpeg -i input.mp4 -ss 00:00:30 -t 00:00:15 -c:v libx264 -c:a aac output.mp4

# タイムスタンプ間でカット
ffmpeg -i input.mp4 -ss 00:00:30 -to 00:00:45 -c:v libx264 -c:a aac output.mp4

# ストリームコピー(高速だがカット箇所でフレームが失われる可能性)
# ソースにキーフレームが頻繁に存在する場合のみ使用
ffmpeg -i input.mp4 -ss 00:00:30 -t 00:00:15 -c copy output.mp4

注意: トリミングは再エンコーディングを推奨します。ストリームコピー(-c copy)は、シークポイントがキーフレームと整合しないと、静かにビデオをドロップすることがあります。

再生速度の変更

# 2倍速(ビデオとオーディオ)
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4

# 0.5倍速(スローモーション)
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=2.0*PTS[v];[0:a]atempo=0.5[a]" -map "[v]" -map "[a]" output.mp4

# ビデオのみ(音声なし)
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4

ビデオの連結

# ファイルリストを作成
echo "file 'clip1.mp4'" > list.txt
echo "file 'clip2.mp4'" >> list.txt
echo "file 'clip3.mp4'" >> list.txt

# 連結(同じコーデック・解像度)
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4

# 連結して再エンコード(異なるソース)
ffmpeg -f concat -safe 0 -i list.txt -c:v libx264 -c:a aac output.mp4

フェードイン・フェードアウト

# 最初の1秒でフェードイン、最後の1秒でフェードアウト(30fps動画)
ffmpeg -i input.mp4 -vf "fade=t=in:st=0:d=1,fade=t=out:st=9:d=1" -c:a copy output.mp4

# オーディオフェード
ffmpeg -i input.mp4 -af "afade=t=in:st=0:d=1,afade=t=out:st=9:d=1" -c:v copy output.mp4

ビデオ情報の取得

# 長さ、解像度、コーデック情報
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4

# 詳細情報
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

Remotion固有のパターン

Remotion向けビデオ速度調整

FFmpegとRemotionのplaybackRateの使い分け:

シナリオFFmpegを使用Remotionを使用
一定速度(1.5倍、2倍)どちらでも可✅ シンプル
極端な速度(4倍以上または0.25倍以下)✅ より安定問題が生じる可能性
可変速度(時間とともに加速)✅ 前処理複雑な回避方法が必要
完璧なオーディオ同期が必要✅ 保証済み通常は問題ない
デモがボイスオーバータイミングに合わせる必要✅ 事前計算実行時調整

Remotion制限: playbackRateは定数でなければなりません。playbackRate={interpolate(frame, [0, 100], [1, 5])}のような動的補間はRemotionがフレームを独立して評価するため、正しく機能しません。

# デモの速度を上げてシーンに合わせる(例:60秒デモを20秒に = 3倍速)
ffmpeg -i demo-raw.mp4 \
  -filter_complex "[0:v]setpts=0.333*PTS[v];[0:a]atempo=3.0[a]" \
  -map "[v]" -map "[a]" \
  public/demos/demo-fast.mp4

# 強調用スローモーション(0.5倍速)
ffmpeg -i action.mp4 \
  -filter_complex "[0:v]setpts=2.0*PTS[v];[0:a]atempo=0.5[a]" \
  -map "[v]" -map "[a]" \
  public/demos/action-slow.mp4

# 音声なしで速度を上げる(スクリーン録画で一般的)
ffmpeg -i demo.mp4 -filter:v "setpts=0.5*PTS" -an public/demos/demo-2x.mp4

# タイムラプス効果(10倍速、音声削除)
ffmpeg -i long-demo.mp4 -filter:v "setpts=0.1*PTS" -an public/demos/timelapse.mp4

速度係数の計算:

  • ビデオのX秒をシーンのY秒に収めるには:speed = X / Y
  • setptsの乗数 = 1 / speed(例:3倍速 = setpts=0.333*PTS)
  • atempo値 = speed(例:3倍速 = atempo=3.0)

極端な速度(2倍以上の音声): atemoフィルタをチェーン(各フィルタは0.5~2.0の範囲に制限):

# 4倍速オーディオ
-filter_complex "[0:a]atempo=2.0,atempo=2.0[a]"

# 8倍速オーディオ
-filter_complex "[0:a]atempo=2.0,atempo=2.0,atempo=2.0[a]"

デモ録画をRemotion용に準備

# 標準1080p、30fps、Remotion対応
ffmpeg -i raw-recording.mp4 \
  -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,fps=30" \
  -c:v libx264 -crf 18 -preset slow \
  -c:a aac -b:a 192k \
  -movflags faststart \
  public/demos/demo.mp4

スクリーン録画をRemotionアセットに

# iPhone/iPad録画から(通常60fps、解像度は不定)
ffmpeg -i iphone-recording.mov \
  -vf "scale=1920:-2,fps=30" \
  -c:v libx264 -crf 20 \
  -an \
  public/demos/mobile-demo.mp4

GIFの一括変換

for f in assets/*.gif; do
  ffmpeg -i "$f" -movflags faststart -pix_fmt yuv420p \
    -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" \
    "public/demos/$(basename "$f" .gif).mp4"
done

よくある問題

「高さが2で割り切れない」

スケールフィルタを追加:-vf "scale=trunc(iw/2)*2:trunc(ih/2)*2"

ビデオがブラウザで再生されない

以下を使用:-movflags faststart -pix_fmt yuv420p -c:v libx264

速度変更後に音声がズレている

filter_complexをatemoで使用:-filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]"

ファイルが大きすぎる

CRFを増やす(23→28)または解像度を下げる

品質ガイドライン

用途CRFPreset備考
アーカイブ・マスター18slow最高品質、ファイルは大
本番20-22mediumバランスが良い
Web・プレビュー23-25fastファイルサイズが小
ドラフト・高速28以上veryfastエンコード高速

プラットフォーム別出力最適化

Remotionがビデオをレンダリングした後(通常out/video.mp4)、FFmpegを使用して各配布プラットフォーム向けに最適化します。

ワークフロー統合

Remotionレンダリング(マスター)  FFmpeg最適化       プラットフォームアップロード
       ↓                          ↓                       ↓
   out/video.mp4  ────────→  out/video-youtube.mp4  ───→  YouTube
                  ────────→  out/video-twitter.mp4  ───→  Twitter/X
                  ────────→  out/video-linkedin.mp4 ───→  LinkedIn
                  ────────→  out/video-web.mp4      ───→  ウェブサイト埋め込み

YouTube(推奨設定)

YouTubeはすべてを再エンコードするため、高品質をアップロード:

# YouTube最適化(1080p)
ffmpeg -i out/video.mp4 \
  -c:v libx264 -preset slow -crf 18 \
  -profile:v high -level 4.0 \
  -bf 2 -g 30 \
  -c:a aac -b:a 192k -ar 48000 \
  -movflags +faststart \
  out/video-youtube.mp4

# YouTubeショート(縦向き1080x1920)
ffmpeg -i out/video.mp4 \
  -vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2" \
  -c:v libx264 -crf 18 -c:a aac -b:a 192k \
  out/video-shorts.mp4

Twitter/X

Twitterは厳密な制限があります:最大140秒、512MB、1920x1200:

# Twitter最適化(15MB以下でアップロード高速)
ffmpeg -i out/video.mp4 \
  -c:v libx264 -preset medium -crf 24 \
  -profile:v main -level 3.1 \
  -vf "scale='min(1280,iw)':'min(720,ih)':force_original_aspect_ratio=decrease" \
  -c:a aac -b:a 128k -ar 44100 \
  -movflags +faststart \
  -fs 15M \
  out/video-twitter.mp4

# ファイルサイズと長さを確認
ffprobe -v error -show_entries format=duration,size -of csv=p=0 out/video-twitter.mp4

LinkedIn

LinkedInはAAC音声のMP4を推奨、最大10分:

# LinkedIn最適化
ffmpeg -i out/video.mp4 \
  -c:v libx264 -preset medium -crf 22 \
  -profile:v main \
  -vf "scale='min(1920,iw)':'min(1080,ih)':force_original_aspect_ratio=decrease" \
  -c:a aac -b:a 192k -ar 48000 \
  -movflags +faststart \
  out/video-linkedin.mp4

ウェブサイト・埋め込み(高速読み込み向けに最適化)

# Web最適化MP4(ファイルサイズ小、プログレッシブ読み込み)
ffmpeg -i out/video.mp4 \
  -c:v libx264 -preset medium -crf 26 \
  -profile:v baseline -level 3.0 \
  -vf "scale=1280:720" \
  -c:a aac -b:a 128k \
  -movflags +faststart \
  out/video-web.mp4

# WebM代替形式(圧縮率が良い、ブラウザ対応が広い)
ffmpeg -i out/video.mp4 \
  -c:v libvpx-vp9 -crf 30 -b:v 0 \
  -vf "scale=1280:720" \
  -c:a libopus -b:a 128k \
  -deadline good \
  out/video-web.webm

GIF(プレビュー・サムネイル用)

# 高品質GIF(最初の5秒)
ffmpeg -i out/video.mp4 -t 5 \
  -vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
  out/preview.gif

# ファイルサイズが小さいGIF
ffmpeg -i out/video.mp4 -t 3 \
  -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
  out/preview-small.gif

プラットフォーム要件クイックリファレンス

プラットフォーム最大解像度最大サイズ最大長オーディオ
YouTube8K256GB12時間AAC 48kHz
Twitter/X1920x1200512MB140秒AAC 44.1kHz
LinkedIn4096x23045GB10分AAC 48kHz
Instagramフィード1080x13504GB60秒AAC 48kHz
Instagramリール1080x19204GB90秒AAC 48kHz
TikTok1080x1920287MB10分AAC

すべてのプラットフォーム向け一括エクスポート

#!/bin/bash
# 保存方法:export-all-platforms.sh
INPUT="out/video.mp4"

# YouTube(高品質)
ffmpeg -i "$INPUT" -c:v libx264 -preset slow -crf 18 \
  -c:a aac -b:a 192k -movflags +faststart \
  out/video-youtube.mp4

# Twitter(圧縮済み)
ffmpeg -i "$INPUT" -c:v libx264 -crf 24 \
  -vf "scale='min(1280,iw)':'-2'" \
  -c:a aac -b:a 128k -movflags +faststart \
  out/video-twitter.mp4

# LinkedIn
ffmpeg -i "$INPUT" -c:v libx264 -crf 22 \
  -c:a aac -b:a 192k -movflags +faststart \
  out/video-linkedin.mp4

# Web埋め込み(小)
ffmpeg -i "$INPUT" -c:v libx264 -crf 26 \
  -vf "scale=1280:720" \
  -c:a aac -b:a 128k -movflags +faststart \
  out/video-web.mp4

echo "エクスポート完了:"
ls -lh out/video-*.mp4

エラーハンドリング

ビデオ処理時の一般的なエラーと対処方法:

# FFmpegが成功したかを確認
ffmpeg -i input.mp4 -c:v libx264 output.mp4 && echo "成功" || echo "失敗:入力ファイルを確認"

# 出力ファイルが再生可能かを検証
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of csv=p=0 output.mp4

# 詳細なエラー情報を取得
ffmpeg -v error -i input.mp4 -f null - 2>&1 | head -20

よくあるエラーの対処

エラー原因対処
「ファイルが見つからない」入力パスが間違っているパスを確認、スペースを含む場合はクォーテーション
「無効なデータ」入力が破損しているソースを再ダウンロード、または再録画
「高さが2で割り切れない」奇数の解像度truncを使用したスケールフィルタを追加
「エンコーダが見つからない」コーデックが不足している完全なコーデック付きFFmpegをインストール
出力が0バイト静かなエラーffmpegの完全な出力を確認

フィードバック・貢献

このスキルに改善の余地がある場合、または情報が不足している場合:

  • コマンドが不足? 必要だった処理について説明してください
  • エラーを見つけた? 何が間違っているか教えてください
  • 貢献したい? 以下のお手伝いができます:
    1. このスキルを改善で更新
    2. github.com/digitalsamba/claude-code-video-toolkitにPRを作成

「improve this skill」と言うだけで、.claude/skills/ffmpeg/SKILL.mdの更新方法をガイドします。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
digitalsamba
リポジトリ
digitalsamba/claude-code-video-toolkit
ライセンス
MIT
最終更新
不明

Source: https://github.com/digitalsamba/claude-code-video-toolkit / ライセンス: MIT

関連スキル

Anthropic ClaudeEC・マーケティング⭐ リポ 6,400

seo-maps

ローカルSEO向けのマップインテリジェンス機能です。ジオグリッドのランク追跡、APIを通じたGBPプロフィール監査、Google・Tripadvisor・Trustpilotなど複数プラットフォームのレビュー分析、Google・Bing・Apple・OSM間のNAP(名前・住所・電話番号)検証、競合他社の半径マッピング、APIデータからのLocalBusinessスキーマ生成が可能です。3段階の機能レベルで対応でき、無料版(Overpass + Geoapify)、DataForSEO(フル機能)、DataForSEO + Google(最大カバレッジ)から選択できます。「maps」「geo-grid」「rank tracking」「GBP audit」「review velocity」「competitor radius」「maps analysis」「local rank tracking」「Share of Local Voice」「SoLV」などのキーワードで利用できます。

by AgriciDaniel
Anthropic ClaudeEC・マーケティング⭐ リポ 6,400

seo-content-brief

セクションごとの文字数、競合スコアリング、キーワード密度ガイダンス、ページタイプテンプレートを含む競争力のあるSEOコンテンツブリーフを生成します。新規ページのブリーフと既存ページの改善ブリーフの両方に対応しています。ユーザーが「コンテンツブリーフ」「ブリーフを作成」「コンテンツアウトライン」「ブログブリーフ」「サービスページブリーフ」「ブリーフ〜」「ライティングブリーフ」「コンテンツプラン」「アウトライン〜」などと言った場合に使用します。

by AgriciDaniel
ALSEL独自Anthropic ClaudeEC・マーケティング

rakuten-seo

楽天市場の商品名・キャッチコピーをSEO最適化するスキル。「楽天SEO」「商品名最適化」「楽天の商品名」「キャッチコピー」「楽天のタイトル」「商品名を直して」「楽天検索対策」など、楽天市場の商品名やキャッチコピーの作成・改善・チェックに関するリクエストで必ずこのスキルを使う。既存の商品名の改善も、ゼロからの作成も対応。あらゆるジャンル(食品・ファッション・化粧品・家電・サプリ・インテリア・ベビー・ペット・業務用など)に対応。 【ALSEL独自スキル】株式会社ALSEL が、19年・5,000社超の EC 支援で得たノウハウをもとに開発したオリジナルスキルです。

by 株式会社ALSEL
ALSEL独自Anthropic ClaudeEC・マーケティング

amazon-seo-jp

Amazon.co.jp商品ページのSEO分析・最適化・自動採点スキル v2.0。 COSMO/Rufus/A10アルゴリズムに基づく採点。セラーセントラル出品レポート(.xlsm)を入力すると、 商品タイトル・箇条書き・検索キーワード・商品説明文を100点満点で採点し、 4項目すべての改善案を日本語で出力する。 トリガー: 「Amazon SEO」「商品ページ採点」「Amazon最適化」 「リスティング改善」「Amazon商品名」「箇条書き改善」 「COSMO対応」「Rufus最適化」「Amazon タイトル」 【ALSEL独自スキル】株式会社ALSEL が、19年・5,000社超の EC 支援で得たノウハウをもとに開発したオリジナルスキルです。

by 株式会社ALSEL
ALSEL独自Anthropic ClaudeEC・マーケティング

rakuten-bulk-control-csv

楽天RMSの一括登録/一括除外/一括更新用CSV(コントロールカラム,商品管理番号 の2列フォーマット)を作成するスキル。商品DL CSV・商品管理画面のコピペ・Excel・PDFなどから商品管理番号を抽出し、Shift-JIS+LF改行で出力する。「一括除外リスト作って」「楽天の除外CSV」「コントロールカラムnで」「2800円以下の商品をdで」「在庫0の商品を一括削除」「商品管理番号抜いてshift-jsで」「このフォーマットで」など、楽天RMSの商品一括処理用CSVを作るタスクで必ずこのスキルを使う。コントロールカラム値(n=新規/d=削除/u=更新)と抽出条件(全件・価格・在庫・販売状態など)をユーザー指示に応じて柔軟に切り替える。 【ALSEL独自スキル】株式会社ALSEL が、19年・5,000社超の EC 支援で得たノウハウをもとに開発したオリジナルスキルです。

by 株式会社ALSEL
ALSEL独自Anthropic ClaudeEC・マーケティング

amazon-a-plus-content-brief

Amazon A+コンテンツの構成・モジュール選定・画像指示・比較表・FAQを設計するスキル。「A+コンテンツ作って」「Aプラス構成」「ブランドストーリー」「比較表つきA+」「A+モジュール選定」「Amazonのページに画像入れたい」「A+のヘッダー画像」「A+コンテンツマネージャー」など、Amazon A+コンテンツの企画・設計・改善のリクエストで必ずこのスキルを使う。ベーシック17モジュール/Premium追加機能/画像サイズ規定/文字数目安/審査リジェクト要因を踏まえて、デザイナーに渡せるブリーフ形式で出力。あらゆるジャンル(家電・コスメ・食品・アパレル・日用品・ベビー・ペット等)に対応。※ブランドストア(マルチページ)の設計は別スキル `amazon-brand-store-planner`、タイトル・bullet改善は `amazon-title-bullet-rewriter-jp`、メイン画像のチェックは `amazon-main-image-checker`。 【ALSEL独自スキル】株式会社ALSEL が、19年・5,000社超の EC 支援で得たノウハウをもとに開発したオリジナルスキルです。

by 株式会社ALSEL
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: digitalsamba · digitalsamba/claude-code-video-toolkit · ライセンス: MIT