Skip to content
cccskills
FreePublished on GitHub

ffmpeg-expert

FFmpegを使用したマルチメディア処理の専門スキル。動画・音声の変換、編集、最適化を効率的に支援。フォーマット変換、コーデック選択、フィルタ適用、ストリーミング準備、ハードウェアアクセラレーションなど幅広い操作をカバー。

Use when converting video/audio formats, transcoding codecs, trimming/cutting media, creating GIFs, extracting audio, adding watermarks, preparing for streaming (HLS/DASH), or optimizing media files for web/mobile.

The English summary is being prepared. Showing the original description.

Run score Not tested

See how to install

Files included (8)

  • SKILL.md14.9 KB
  • references/codec_guide.md11.4 KB
  • references/filter_reference.md13.8 KB
  • references/quick_reference.md10.2 KB
  • references/troubleshooting.md13.9 KB
  • scripts/ffprobe_analyzer.py23.0 KB
  • scripts/tests/__init__.py41 B
  • scripts/tests/test_ffprobe_analyzer.py10.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

FFmpeg Expert

Overview

FFmpegは、動画・音声の変換、編集、ストリーミング処理を行う最も強力なオープンソースツールです。このスキルは、FFmpegを使用した効率的なマルチメディア処理、最適なコーデック選択、フィルタ適用、パフォーマンス最適化を支援します。

When to Use This Skill

  • 動画フォーマットを変換したい(MP4, WebM, MKV, MOV, AVI等)
  • コーデックを変更したい(H.264, H.265/HEVC, VP9, AV1, ProRes)
  • 動画をトリミング・カットしたい
  • 動画を結合したい
  • 解像度やフレームレートを変更したい
  • 音声を抽出・変換したい(MP3, AAC, FLAC, WAV)
  • GIFを作成したい
  • サムネイルを生成したい
  • ストリーミング用に準備したい(HLS/DASH)
  • ハードウェアアクセラレーションを使いたい(NVENC, QSV, VideoToolbox)
  • フィルタを適用したい(ぼかし、色補正、字幕、ウォーターマーク等)

Example triggers:

  • "この動画をMP4に変換して"
  • "動画から音声だけ抽出したい"
  • "動画をGIFにしたい"
  • "1分から3分までカットして"
  • "H.265で圧縮したい"
  • "HLS用にセグメント化して"
  • "ウォーターマークを追加して"
  • "動画を720pにリサイズして"
  • "ffmpegコマンドを教えて"

Prerequisites

macOS (Homebrew)

# 基本インストール
brew install ffmpeg

# 全オプション付き(推奨)
brew install ffmpeg --with-fdk-aac --with-libvpx --with-libvorbis

Linux (apt/dnf)

# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg

# Fedora
sudo dnf install ffmpeg

# CentOS/RHEL (EPEL + RPM Fusion必要)
sudo yum install epel-release
sudo yum install ffmpeg

Windows

# Chocolatey
choco install ffmpeg

# Scoop
scoop install ffmpeg

# winget
winget install FFmpeg

確認コマンド

# バージョン確認
ffmpeg -version

# 利用可能なエンコーダ確認
ffmpeg -encoders

# 利用可能なデコーダ確認
ffmpeg -decoders

# ハードウェアアクセラレーション確認
ffmpeg -hwaccels

Workflow

Workflow 1: 動画フォーマット変換

1. 入力ファイル確認(ffprobe) → 2. 出力形式の選択 → 3. コーデック選択 → 4. 変換実行

Step 1: 入力ファイルの確認

# ファイル情報を確認
ffprobe -v error -show_format -show_streams input.mp4

# 簡易確認
ffprobe -v error -show_entries format=duration,size,bit_rate -of default=noprint_wrappers=1 input.mp4

Step 2: 基本変換

# 最もシンプルな変換(自動コーデック選択)
ffmpeg -i input.avi output.mp4

# コーデックをコピー(再エンコードなし・高速)
ffmpeg -i input.mkv -c copy output.mp4

# H.264で変換(汎用性最高)
ffmpeg -i input.avi -c:v libx264 -c:a aac output.mp4

Step 3: 品質調整

# CRF値で品質指定(低い=高品質、推奨: 18-28)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac output.mp4

# プリセットで速度/圧縮効率調整
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium output.mp4
# プリセット: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow

Workflow 2: 動画編集(カット・結合)

1. タイムスタンプ確認 → 2. カット方法の選択 → 3. 実行

カット(トリミング)

# 開始時間から指定時間(再エンコードなし・高速だがキーフレーム依存)
ffmpeg -ss 00:01:00 -i input.mp4 -t 00:02:00 -c copy output.mp4

# 開始時間から終了時間まで
ffmpeg -ss 00:01:00 -i input.mp4 -to 00:03:00 -c copy output.mp4

# 精密カット(再エンコード必要だが正確)
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:03:00 -c:v libx264 -c:a aac output.mp4

結合

# Step 1: ファイルリストを作成
cat > list.txt << EOF
file 'part1.mp4'
file 'part2.mp4'
file 'part3.mp4'
EOF

# Step 2: 結合(同じコーデックなら再エンコードなし)
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4

Workflow 3: 音声処理

1. 入力確認 → 2. 出力形式・品質設定 → 3. 変換/抽出

音声抽出

# MP3で抽出
ffmpeg -i input.mp4 -vn -acodec mp3 -ab 192k output.mp3

# AACで抽出
ffmpeg -i input.mp4 -vn -acodec aac -ab 256k output.aac

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

# 元のコーデックのまま抽出
ffmpeg -i input.mp4 -vn -c:a copy output.m4a

音声操作

# 音声削除
ffmpeg -i input.mp4 -an output.mp4

# 音声置換
ffmpeg -i video.mp4 -i new_audio.mp3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4

# 音量調整(2倍)
ffmpeg -i input.mp4 -af "volume=2.0" output.mp4

# 音量正規化(ラウドネス基準)
ffmpeg -i input.mp4 -af "loudnorm=I=-16:TP=-1.5:LRA=11" output.mp4

Workflow 4: GIF・画像生成

1. 区間指定 → 2. パレット生成(高品質の場合) → 3. GIF生成

シンプルGIF生成

# 基本GIF(最初の5秒、10fps、幅320px)
ffmpeg -i input.mp4 -t 5 -vf "fps=10,scale=320:-1" output.gif

高品質GIF生成(パレット使用)

# Step 1: パレット生成
ffmpeg -i input.mp4 -t 5 -vf "fps=10,scale=320:-1,palettegen" palette.png

# Step 2: パレット適用してGIF生成
ffmpeg -i input.mp4 -i palette.png -t 5 -lavfi "fps=10,scale=320:-1[x];[x][1:v]paletteuse" output.gif

サムネイル・フレーム抽出

# 指定位置から1フレーム抽出
ffmpeg -ss 00:00:10 -i input.mp4 -frames:v 1 thumbnail.jpg

# 毎秒1フレーム抽出
ffmpeg -i input.mp4 -vf "fps=1" frame_%04d.jpg

# シーン変化で自動抽出
ffmpeg -i input.mp4 -vf "select='gt(scene,0.4)'" -vsync vfr scene_%04d.jpg

Workflow 5: ストリーミング準備

1. 入力分析 → 2. エンコード設定 → 3. HLS/DASH生成

HLS (HTTP Live Streaming) 生成

# 基本HLS
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -hls_time 10 -hls_list_size 0 output.m3u8

# 複数ビットレート(Adaptive Bitrate)
ffmpeg -i input.mp4 \
  -map 0:v -map 0:a -c:v libx264 -c:a aac \
  -b:v:0 5M -s:v:0 1920x1080 \
  -b:v:1 3M -s:v:1 1280x720 \
  -b:v:2 1M -s:v:2 640x360 \
  -var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2" \
  -hls_time 10 -hls_list_size 0 \
  -master_pl_name master.m3u8 \
  stream_%v.m3u8

DASH (Dynamic Adaptive Streaming over HTTP) 生成

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f dash output.mpd

Video Operations Reference

解像度・スケーリング

# 固定解像度
ffmpeg -i input.mp4 -vf "scale=1920:1080" output.mp4

# アスペクト比維持(幅基準)
ffmpeg -i input.mp4 -vf "scale=1280:-1" output.mp4

# アスペクト比維持(偶数保証)
ffmpeg -i input.mp4 -vf "scale=1280:-2" output.mp4

# 高品質スケーリング(Lanczos)
ffmpeg -i input.mp4 -vf "scale=1920:1080:flags=lanczos" output.mp4

フレームレート変換

# 30fpsに変換
ffmpeg -i input.mp4 -vf "fps=30" output.mp4

# 24fps(映画風)
ffmpeg -i input.mp4 -vf "fps=24" output.mp4

回転・反転

# 時計回り90度
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

# 反時計回り90度
ffmpeg -i input.mp4 -vf "transpose=2" output.mp4

# 180度回転
ffmpeg -i input.mp4 -vf "transpose=1,transpose=1" output.mp4

# 水平反転
ffmpeg -i input.mp4 -vf "hflip" output.mp4

# 垂直反転
ffmpeg -i input.mp4 -vf "vflip" output.mp4

クロップ

# 中央から640x480をクロップ
ffmpeg -i input.mp4 -vf "crop=640:480" output.mp4

# 左上から640x480をクロップ
ffmpeg -i input.mp4 -vf "crop=640:480:0:0" output.mp4

# 16:9にクロップ
ffmpeg -i input.mp4 -vf "crop=ih*16/9:ih" output.mp4

速度変更

# 2倍速
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" -af "atempo=2.0" output.mp4

# 0.5倍速(スローモーション)
ffmpeg -i input.mp4 -vf "setpts=2.0*PTS" -af "atempo=0.5" output.mp4

# 4倍速(音声は2回atempo適用)
ffmpeg -i input.mp4 -vf "setpts=0.25*PTS" -af "atempo=2.0,atempo=2.0" output.mp4

Audio Operations Reference

フォーマット変換

# MP3変換(高品質)
ffmpeg -i input.wav -acodec mp3 -ab 320k output.mp3

# AAC変換
ffmpeg -i input.mp3 -acodec aac -ab 256k output.m4a

# FLAC(ロスレス)
ffmpeg -i input.wav -acodec flac output.flac

# Opus(Web/VoIP向け高効率)
ffmpeg -i input.mp3 -acodec libopus -ab 128k output.opus

サンプルレート・チャンネル変換

# サンプルレート変更
ffmpeg -i input.mp3 -ar 44100 output.mp3

# モノラルに変換
ffmpeg -i input.mp3 -ac 1 output.mp3

# ステレオに変換
ffmpeg -i input.mp3 -ac 2 output.mp3

Advanced Operations

ハードウェアアクセラレーション

NVIDIA NVENC (CUDA)

# H.264 NVENC
ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc -preset p7 output.mp4

# H.265/HEVC NVENC
ffmpeg -hwaccel cuda -i input.mp4 -c:v hevc_nvenc -preset p7 output.mp4

Intel QSV (Quick Sync Video)

# H.264 QSV
ffmpeg -hwaccel qsv -i input.mp4 -c:v h264_qsv -preset veryslow output.mp4

# H.265/HEVC QSV
ffmpeg -hwaccel qsv -i input.mp4 -c:v hevc_qsv output.mp4

Apple VideoToolbox (macOS)

# H.264 VideoToolbox
ffmpeg -i input.mp4 -c:v h264_videotoolbox -b:v 5M output.mp4

# H.265/HEVC VideoToolbox
ffmpeg -i input.mp4 -c:v hevc_videotoolbox -b:v 5M output.mp4

2パスエンコード

# Pass 1
ffmpeg -i input.mp4 -c:v libx264 -b:v 5M -pass 1 -an -f null /dev/null

# Pass 2
ffmpeg -i input.mp4 -c:v libx264 -b:v 5M -pass 2 -c:a aac -b:a 192k output.mp4

ウォーターマーク・オーバーレイ

# 右下にロゴ配置
ffmpeg -i video.mp4 -i logo.png -filter_complex "[1:v]scale=100:-1[logo];[0:v][logo]overlay=W-w-10:H-h-10" output.mp4

# 中央に半透明ロゴ
ffmpeg -i video.mp4 -i logo.png -filter_complex "[1:v]scale=200:-1,format=rgba,colorchannelmixer=aa=0.5[logo];[0:v][logo]overlay=(W-w)/2:(H-h)/2" output.mp4

字幕

# SRT字幕を焼き込み
ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" output.mp4

# ASS字幕を焼き込み(スタイル保持)
ffmpeg -i input.mp4 -vf "ass=subtitle.ass" output.mp4

# 字幕ストリームとして追加
ffmpeg -i input.mp4 -i subtitle.srt -c copy -c:s mov_text output.mp4

Common Patterns

Pattern 1: Web用最適化

ffmpeg -i input.mp4 \
  -c:v libx264 -crf 23 -preset medium \
  -c:a aac -b:a 128k \
  -movflags +faststart \
  -pix_fmt yuv420p \
  output_web.mp4

Pattern 2: モバイル用最適化

ffmpeg -i input.mp4 \
  -c:v libx264 -crf 26 -preset fast \
  -vf "scale=-2:720" \
  -c:a aac -b:a 96k \
  -movflags +faststart \
  output_mobile.mp4

Pattern 3: アーカイブ用高品質

ffmpeg -i input.mp4 \
  -c:v libx265 -crf 22 -preset slow \
  -c:a flac \
  output_archive.mkv

Pattern 4: SNS投稿用(Instagram/Twitter)

# Instagram(正方形、60秒以内)
ffmpeg -i input.mp4 \
  -t 60 \
  -vf "crop=min(iw\,ih):min(iw\,ih),scale=1080:1080" \
  -c:v libx264 -crf 23 \
  -c:a aac -b:a 128k \
  output_instagram.mp4

# Twitter(16:9推奨)
ffmpeg -i input.mp4 \
  -t 140 \
  -vf "scale=1280:720" \
  -c:v libx264 -crf 23 \
  -c:a aac -b:a 128k \
  output_twitter.mp4

Pattern 5: バッチ処理

# 全MP4をWebM(VP9)に変換
for f in *.mp4; do
  ffmpeg -i "$f" -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus "${f%.mp4}.webm"
done

# ディレクトリ内の動画をサムネイル生成
for f in *.mp4; do
  ffmpeg -ss 00:00:05 -i "$f" -frames:v 1 "${f%.mp4}_thumb.jpg"
done

Best Practices

  1. 入力ファイルを先にffprobeで確認する

    • コーデック、解像度、ビットレートを把握してから変換
  2. コーデックコピー(-c copy)を活用

    • フォーマット変換のみなら再エンコード不要で高速
  3. CRF値で品質を制御する

    • ビットレート指定より品質が安定
    • H.264: 18-28(23がデフォルト)
    • H.265: 22-32(28がデフォルト)
  4. 2パスエンコードで品質を安定させる

    • 特にビットレート制限がある場合に有効
  5. ハードウェアアクセラレーションで高速化

    • 大量の動画処理時に特に効果的
    • ただしソフトウェアエンコードより品質が劣る場合あり
  6. faststart フラグを使用

    • Web配信用MP4には必須(-movflags +faststart)
    • メタデータを先頭に移動してストリーミング開始を高速化
  7. 出力先のディスク容量を確認

    • 大きな動画の変換前に十分な空き容量を確保

Troubleshooting

よくある問題と解決策の詳細は references/troubleshooting.md を参照してください。

主なエラー:

  • "Unknown encoder" → コーデック未インストール、ffmpeg -encoders で確認
  • "height not divisible by 2" → -vf "scale=1280:-2" で偶数に調整
  • カット位置のズレ → -c copy ではキーフレーム依存、精密カットは再エンコード
  • 音ズレ → ファイル間のコーデック/フレームレート統一が必要

Output

実行結果の形式:

  • 分析レポート: Markdownまたは JSON形式でメディアファイル情報を出力
  • 互換性チェック結果: Browser/Mobile互換性の警告・推奨事項
  • エンコードコマンド: 用途別(Web/Mobile/Archive/Streaming)の推奨ffmpegコマンド

Resources

scripts/

  • scripts/ffprobe_analyzer.py: メディアファイルの分析と最適エンコード設定の提案

使用例:

# 基本分析
python scripts/ffprobe_analyzer.py input.mp4

# Web用推奨コマンド付きレポート生成
python scripts/ffprobe_analyzer.py input.mp4 --use-case web --suggest-commands

# JSON形式で出力
python scripts/ffprobe_analyzer.py input.mp4 --format json --output report.json

references/

  • quick_reference.md: よく使うコマンドのチートシート
  • codec_guide.md: コーデック選択ガイド
  • filter_reference.md: フィルタ構文とサンプル
  • troubleshooting.md: トラブルシューティングガイド

assets/

このスキルにはアセットファイルは含まれません。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Track and update action item status from natural language updates like 'Seanのメールには返信しておいた' or 'Lu対応予定'. Integrates with daily-comms-ops workflow. Use when managing action items across communication channels.

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

AI活用提案の専門コンサルタントスキル。LLM・AIエージェントの活用事例知識を基に、業界別、部門別、シーン別に最適なAI導入提案を行います。システム化、業務改善、効率化を得意とし、具体的な活用事例、期待効果、導入ステップを含む実践的な提案を提供します。Use when proposing AI/LLM adoption strategies for specific industries, departments, or business scenarios.

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

Generate AI-powered BPO service proposals for Japanese companies in the US market. Use when creating outsourcing proposals with AI service menus, ROI estimation, implementation roadmaps, and bilingual (JA/EN) proposal documents for 在米日系企業向けAI実装.

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

AI(LLM)が生成した日本語テキストの「AI臭」を検出・診断し、人間らしい文章にリライトするスキル。 Use when: 「AIっぽい文章を直して」「人間らしくリライトして」「AI臭を消して」「この文章をもっと自然にして」 「テキストのAI感を減らして」「機械っぽさを取りたい」 "make this sound more human", "remove AI tone", "humanize this text", "detect if this is AI-generated". 6つのAI特有パターン(視覚的マーカー、単調なリズム、マニュアル的構成、非コミット姿勢、抽象語の濫用、 定型メタファー)を正規表現ベースで検出し、0-100のAI臭スコアを算出。3つの人間化技法 (バランスを崩す・客観を崩す・論理を崩す)でリライトを実行する。 Note: 検出スクリプトは日本語テキスト専用。英語テキストの場合はClaude自身がreferences/を参照して分析・リライトする。

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

Generate audit-ready internal control design documents from As-Is business process inventories. Produces control IDs, assertion mappings, procedures, SoD analysis, KPIs, materiality thresholds, and implementation roadmaps. Use when building internal controls for new audit engagements, SOX/J-SOX compliance, or process improvement initiatives.

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

Review audit-related documents (control design documents, bottleneck analyses, requirements definitions, etc.) for quality, scoring them 0-100 with a severity-rated findings list. Use when reviewing audit documents, checking control design quality, or verifying cross-document consistency. Supports documents governed by US GAAP, IFRS, or J-GAAP.

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

See all skills by takusaotome

Report a problem with this skill