media-processing について
FFmpeg と ImageMagick を使ってメディアを処理するコマンドラインスキルです。開発者やメディア関連の作業向けに、変換、編集、最適化、バッチ処理、ストリーミング出力を扱います。
主な機能
- 01音声・動画の変換とエンコード
- 02画像の切り抜き、拡大縮小、効果適用
- 03音声や動画フレームの抽出
- 04HLS または DASH の出力作成
- 05ファイルの一括処理と最適化
- 06メディア属性の確認
活用シーン
- 01必要な形式やコーデックへのメディア変換
- 02動画から音声、クリップ、サムネイルを抽出
- 03画像の一括リサイズと最適化
- 04動画用 HLS プレイリストの生成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mrgoonie/ claudekit-skills --skill media-processingインストール後、Claude Code で/media-processingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/ffmpeg-encoding.mdffmpeg-filters.mdffmpeg-streaming.mdformat-compatibility.mdimagemagick-batch.mdimagemagick-editing.mdscripts/batch_resize.pymedia_convert.pyrequirements.txtvideo_optimize.pyscripts/tests/.coveragerequirements.txttest_batch_resize.pytest_media_convert.pytest_video_optimize.py詳細
メディア処理スキル
FFmpeg と ImageMagick のコマンドラインツールを使用して、変換、最適化、ストリーミング、編集などのタスクで動画、音声、画像を処理します。
このスキルを使用する場面
次の場合に使用します:
- メディア形式(動画、音声、画像)を変換する
- コーデック(H.264、H.265、VP9、AV1)を使って動画をエンコードする
- 画像を処理する(サイズ変更、切り抜き、効果、ウォーターマーク)
- 動画から音声を抽出する
- ストリーミング用マニフェスト(HLS/DASH)を作成する
- サムネイルやプレビューを生成する
- メディアファイルを一括処理する
- ファイルサイズと品質を最適化する
- フィルターや効果を適用する
- 合成画像や動画を作成する
ツールの選択ガイド
FFmpeg:動画/音声処理
次の場合に FFmpeg を使用します:
- 動画のエンコード、変換、トランスコード
- 音声の抽出、変換、ミキシング
- ライブストリーミング(RTMP、HLS、DASH)
- 動画フィルター(スケール、切り抜き、回転、オーバーレイ)
- ハードウェアアクセラレーションによるエンコード
- メディアファイルの検査(ffprobe)
- フレームの抽出、連結
- コーデックの選択と最適化
ImageMagick:画像処理
次の場合に ImageMagick を使用します:
- 画像形式の変換(PNG、JPEG、WebP、GIF)
- サイズ変更、切り抜き、変換
- 画像の一括処理(mogrify)
- 視覚効果(ぼかし、シャープ化、セピア)
- テキストのオーバーレイとウォーターマーク
- 画像の合成とモンタージュ
- 色調整、フィルター
- サムネイルの生成
選択マトリクス
| タスク | ツール | 理由 |
|---|---|---|
| 動画エンコード | FFmpeg | ネイティブな動画コーデックのサポート |
| 音声抽出 | FFmpeg | ストリームを直接操作できる |
| 画像サイズ変更 | ImageMagick | 静止画像に最適化されている |
| 画像の一括処理 | ImageMagick | mogrify でその場で編集できる |
| 動画サムネイル | FFmpeg | フレーム抽出機能を内蔵 |
| GIF の作成 | FFmpeg または ImageMagick | 動画ソースには FFmpeg、画像には ImageMagick |
| ストリーミング | FFmpeg | ライブストリーミングプロトコル |
| 画像効果 | ImageMagick | 豊富なフィルターライブラリ |
インストール
macOS
brew install ffmpeg imagemagick
Ubuntu/Debian
sudo apt-get install ffmpeg imagemagick
Windows
# Using winget
winget install ffmpeg
winget install ImageMagick.ImageMagick
# Or download binaries
# FFmpeg: https://ffmpeg.org/download.html
# ImageMagick: https://imagemagick.org/script/download.php
インストールの確認
ffmpeg -version
ffprobe -version
magick -version
# or
convert -version
クイックスタートの例
動画変換
# Convert format (copy streams, fast)
ffmpeg -i input.mkv -c copy output.mp4
# Re-encode with H.264
ffmpeg -i input.avi -c:v libx264 -crf 22 -c:a aac output.mp4
# Resize video to 720p
ffmpeg -i input.mp4 -vf scale=-1:720 -c:a copy output.mp4
音声抽出
# Extract audio (no re-encoding)
ffmpeg -i video.mp4 -vn -c:a copy audio.m4a
# Convert to MP3
ffmpeg -i video.mp4 -vn -q:a 0 audio.mp3
画像処理
# Convert format
magick input.png output.jpg
# Resize maintaining aspect ratio
magick input.jpg -resize 800x600 output.jpg
# Create square thumbnail
magick input.jpg -resize 200x200^ -gravity center -extent 200x200 thumb.jpg
画像の一括サイズ変更
# Resize all JPEGs to 800px width
mogrify -resize 800x -quality 85 *.jpg
# Output to separate directory
mogrify -path ./output -resize 800x600 *.jpg
動画のサムネイル
# Extract frame at 5 seconds
ffmpeg -ss 00:00:05 -i video.mp4 -vframes 1 -vf scale=320:-1 thumb.jpg
HLS ストリーミング
# Generate HLS playlist
ffmpeg -i input.mp4 \
-c:v libx264 -preset fast -crf 22 -g 48 \
-c:a aac -b:a 128k \
-f hls -hls_time 6 -hls_playlist_type vod \
playlist.m3u8
画像のウォーターマーク
# Add watermark to corner
magick input.jpg watermark.png -gravity southeast \
-geometry +10+10 -composite output.jpg
よくあるワークフロー
Web 向けに動画を最適化する
# H.264 with good compression
ffmpeg -i input.mp4 \
-c:v libx264 -preset slow -crf 23 \
-c:a aac -b:a 128k \
-movflags +faststart \
output.mp4
レスポンシブ画像を作成する
# Generate multiple sizes
for size in 320 640 1024 1920; do
magick input.jpg -resize ${size}x -quality 85 "output-${size}w.jpg"
done
動画の一部分を抽出する
# From 1:30 to 3:00 (re-encode for precision)
ffmpeg -i input.mp4 -ss 00:01:30 -to 00:03:00 \
-c:v libx264 -c:a aac output.mp4
画像を一括最適化する
# Convert PNG to optimized JPEG
mogrify -path ./optimized -format jpg -quality 85 -strip *.png
動画から GIF を作成する
# High quality GIF with palette
ffmpeg -i input.mp4 -vf "fps=15,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif
画像にぼかし効果を適用する
# Gaussian blur
magick input.jpg -gaussian-blur 0x8 output.jpg
高度なテクニック
マルチパス動画エンコード
# Pass 1 (analysis)
ffmpeg -y -i input.mkv -c:v libx264 -b:v 2600k -pass 1 -an -f null /dev/null
# Pass 2 (encoding)
ffmpeg -i input.mkv -c:v libx264 -b:v 2600k -pass 2 -c:a aac output.mp4
ハードウェアアクセラレーションによるエンコード
# NVIDIA NVENC
ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc -preset fast -crf 22 output.mp4
# Intel QuickSync
ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -c:v h264_qsv output.mp4
複雑な画像処理パイプライン
# Resize, crop, border, adjust
magick input.jpg \
-resize 1000x1000^ \
-gravity center \
-crop 1000x1000+0+0 +repage \
-bordercolor black -border 5x5 \
-brightness-contrast 5x10 \
-quality 90 \
output.jpg
動画フィルターチェーン
# Scale, denoise, watermark
ffmpeg -i video.mp4 -i logo.png \
-filter_complex "[0:v]scale=1280:720,hqdn3d[v];[v][1:v]overlay=10:10" \
-c:a copy output.mp4
画像からアニメーション GIF を作成する
# Create with delay
magick -delay 100 -loop 0 frame*.png animated.gif
# Optimize size
magick animated.gif -fuzz 5% -layers Optimize optimized.gif
メディア分析
動画のプロパティを調べる
# Detailed JSON output
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4
# Get resolution
ffprobe -v error -select_streams v:0 \
-show_entries stream=width,height \
-of csv=s=x:p=0 input.mp4
画像情報
# Basic info
identify image.jpg
# Detailed format
identify -verbose image.jpg
# Custom format
identify -format "%f: %wx%h %b\n" image.jpg
パフォーマンスのヒント
- 品質管理には CRF を使用する - 動画ではビットレートより優れています
- 可能な場合はストリームをコピーする -
-c copyを使い、再エンコードを避けます - ハードウェアアクセラレーション - GPU エンコードは 5~10 倍高速です
- 適切なプリセットを選ぶ - 速度と圧縮率のバランスを取ります
- mogrify で一括処理する - 画像をその場で処理できます
- メタデータを削除する -
-stripでファイルサイズを削減します - プログレッシブ JPEG -
-interlace Planeで Web ページの読み込みを改善します - メモリを制限する - 大量のファイルを処理する際のクラッシュを防ぎます
- サンプルでテストする - 一括処理の前に設定を確認します
- 並列処理 - 複数のファイルには GNU Parallel を使用します
リファレンスドキュメント
詳細なガイドは references/ にあります:
- ffmpeg-encoding.md - 動画/音声コーデック、品質の最適化、ハードウェアアクセラレーション
- ffmpeg-streaming.md - HLS/DASH、ライブストリーミング、アダプティブビットレート
- ffmpeg-filters.md - 動画/音声フィルター、複雑なフィルターグラフ
- imagemagick-editing.md - 形式変換、効果、変換
- imagemagick-batch.md - 一括処理、mogrify、並列処理
- format-compatibility.md - 形式のサポート、コーデックの推奨事項
よく使うパラメーター
FFmpeg Video
-c:v- Video codec (libx264, libx265, libvpx-vp9)-crf- Quality (0-51, lower=better, 23=default)-preset- Speed/compression (ultrafast to veryslow)-b:v- Video bitrate (e.g., 2M, 2500k)-vf- Video filters
FFmpeg Audio
-c:a- Audio codec (aac, mp3, opus)-b:a- Audio bitrate (e.g., 128k, 192k)-ar- Sample rate (44100, 48000)
ImageMagick Geometry
800x600- Fit within (maintains aspect)800x600!- Force exact size800x600^- Fill (may crop)800x- Width onlyx600- Height only50%- Scale percentage
Troubleshooting
FFmpeg "Unknown encoder"
# Check available encoders
ffmpeg -encoders | grep h264
# Install codec libraries
sudo apt-get install libx264-dev libx265-dev
ImageMagick "not authorized"
# Edit policy file
sudo nano /etc/ImageMagick-7/policy.xml
# Change <policy domain="coder" rights="none" pattern="PDF" />
# to <policy domain="coder" rights="read|write" pattern="PDF" />
Memory errors
# Limit memory usage
ffmpeg -threads 4 input.mp4 output.mp4
magick -limit memory 2GB -limit map 4GB input.jpg output.jpg
Resources
- FFmpeg: https://ffmpeg.org/documentation.html
- FFmpeg Wiki: https://trac.ffmpeg.org/
- ImageMagick: https://imagemagick.org/
- ImageMagick Usage: https://imagemagick.org/Usage/
コメント
Markdown 対応