mcpField
V
video-format-conversion

video-format-conversion

github.com/eachlabsクリエイティブ・メディア44226 回インストール今日更新
リポジトリ

video-format-conversion について

video-format-conversion は、動画の形式変換やアスペクト比の調整を行う each::sense のスキルです。配信先に応じた設定、ストリーミング向け最適化、複数動画の連続処理に対応します。

主な機能

  1. 01動画形式の変換
  2. 02コーデックのトランスコード
  3. 03アスペクト比の変更
  4. 04配信先に合わせた最適化
  5. 05ビットレートと画質の調整
  6. 06動画の一括処理

活用シーン

  1. 01TikTok向け縦型動画の作成
  2. 02Web配信用ファイルの作成
  3. 03編集用ProResへの書き出し
  4. 04複数動画の設定を統一して変換

インストール

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

$npx skills add https://github.com/eachlabs/skills --skill video-format-conversion

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

同梱ファイルreferences/SSE-EVENTS.md

詳細

動画フォーマット変換

each::sense を使用して、動画のフォーマット、コーデック、アスペクト比を変換します。このスキルでは、フォーマット変換、コーデックのトランスコード、アスペクト比の変更、さまざまなプラットフォームや用途に合わせた最適化に対応します。

機能

  • フォーマット変換:MP4、WebM、MOV、GIF などの間で変換
  • コーデックのトランスコード:H.264、H.265/HEVC、VP9、ProRes など
  • アスペクト比の変更:16:9 から 9:16、1:1、4:3、カスタム比率への変更
  • プラットフォーム向け最適化:Instagram、TikTok、YouTube、Twitter 向けに最適化した出力
  • Web ストリーミング:HLS 対応および Web 向けに最適化したエンコード
  • 品質管理:ビットレート、解像度、圧縮の設定
  • バッチ処理:複数の動画を順番に変換

クイックスタート

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this video to MP4 H.264 format optimized for web playback"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/source-video.mov"]
  }'

対応フォーマットとコーデック

フォーマットコーデック用途
MP4H.264, H.265/HEVC汎用再生、Web、モバイル
WebMVP9, VP8Web ブラウザー、ファイルサイズの縮小
MOVProRes, H.264プロ向け編集、Apple エコシステム
GIF-ソーシャルメディア、プレビュー、ループ動画
MKVH.264, H.265, VP9アーカイブ、高画質

アスペクト比

比率解像度用途
16:91920x1080YouTube、標準的な横向き動画
9:161080x1920TikTok、Instagram Reels、Stories
1:11080x1080Instagram フィード、Twitter
4:31440x1080昔ながらのテレビ、プレゼンテーション
4:51080x1350Instagram の縦向き投稿
21:92560x1080シネマティックなウルトラワイド

使用例

1. MP4(H.264)に変換

最大限の互換性を実現する、H.264 コーデックを使用した標準的な MP4 変換です。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this video to MP4 with H.264 codec. Use high quality settings with a bitrate suitable for 1080p playback. Maintain original aspect ratio."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/source-video.mov"]
  }'
2. WebM に変換

効率的な Web 配信を実現する、VP9 コーデックを使用した WebM フォーマットです。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this MP4 video to WebM format using VP9 codec. Optimize for web streaming with good quality at smaller file size. Target around 5 Mbps bitrate."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/source-video.mp4"]
  }'
3. GIF に変換

ソーシャルメディアでの共有やプレビュー向けに、動画からアニメーション GIF を作成します。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this video to an animated GIF. Use the first 5 seconds, resize to 480px width, and optimize for file size under 10MB. Create a smooth loop if possible."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "eco",
    "image_urls": ["https://example.com/source-video.mp4"]
  }'
4. 16:9 から 9:16(縦向き)に変換

横向き動画を、モバイルプラットフォーム向けの縦向きフォーマットに変換します。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this 16:9 landscape video to 9:16 vertical format. Use smart cropping to keep the main subject centered. Output as MP4 H.264 at 1080x1920 resolution."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/landscape-video.mp4"]
  }'
5. 正方形の 1:1 に変換

Instagram フィードや Twitter 向けに、正方形フォーマットの動画を作成します。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this video to 1:1 square format at 1080x1080 resolution. Center crop the content and output as MP4 with H.264 codec optimized for social media."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/widescreen-video.mp4"]
  }'
6. 4:3 に変換

プレゼンテーションや旧式ディスプレイ向けの、従来型の 4:3 アスペクト比です。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this 16:9 video to 4:3 aspect ratio. Add letterboxing or pillarboxing as needed rather than cropping. Output at 1440x1080 resolution in MP4 format."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "eco",
    "image_urls": ["https://example.com/widescreen-video.mp4"]
  }'
7. Web ストリーミング向けに最適化

高速再生開始と適応型品質に対応した、Web 向け最適化動画を作成します。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Optimize this video for web streaming. Convert to MP4 H.264 with faststart enabled for progressive download. Use 2-pass encoding, target 3-5 Mbps bitrate, AAC audio at 128kbps. Ensure moov atom is at the beginning for instant playback."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/raw-video.mov"]
  }'
8. Apple ProRes に変換

動画編集ワークフロー向けの、プロ仕様の ProRes フォーマットです。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this video to Apple ProRes 422 format in a MOV container. Maintain original resolution and frame rate. This is for professional editing in Final Cut Pro and DaVinci Resolve."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/compressed-video.mp4"]
  }'
9. ソーシャルメディア向けに変換(Instagram/TikTok)

Instagram Reels と TikTok 向けに最適化した動画です。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this video for Instagram Reels and TikTok. Use 9:16 aspect ratio at 1080x1920, MP4 H.264 codec, 30fps, and optimize for mobile playback. Keep file size under 100MB and duration under 60 seconds."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/source-video.mov"]
  }'
10. 複数の動画を一括変換

一貫した設定を使用して、複数の動画を1回のセッションで処理します。

# Start batch conversion session
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "I need to convert multiple videos to MP4 H.264 format at 1080p. All videos should use the same encoding settings: H.264 High Profile, 8 Mbps bitrate, AAC audio at 192kbps. Start with this first video."}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "batch-convert-001",
    "mode": "eco",
    "image_urls": ["https://example.com/video1.mov"]
  }'

# Continue with second video (same session)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert the next video with the same settings."}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "batch-convert-001",
    "mode": "eco",
    "image_urls": ["https://example.com/video2.mov"]
  }'

# Continue with third video
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this one too, same format."}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "batch-convert-001",
    "mode": "eco",
    "image_urls": ["https://example.com/video3.mov"]
  }'

モードの選択

変換の前に、ユーザーに確認してください。

「高速で低コストにしますか、それとも高画質にしますか?」

モード最適な用途速度品質
max最終納品物、ProRes、プロ向けワークフロー遅め最高
ecoクイックプレビュー、バッチ処理、下書き変換速め良好

複数ターンにわたる変換セッション

反復変換でコンテキストを維持するには、session_id を使用します。

# Initial conversion
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Convert this video to MP4 for YouTube at 1080p"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "youtube-upload-project",
    "image_urls": ["https://example.com/raw-footage.mov"]
  }'

# Request different format from same source
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Now create a vertical version of that same video for YouTube Shorts at 9:16"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "youtube-upload-project"
  }'

# Request thumbnail extraction
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Extract a thumbnail from the best frame of that video"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "youtube-upload-project"
  }'

プラットフォーム別の設定

YouTube
  • フォーマット:MP4(H.264)
  • 解像度:1080p または 4K
  • フレームレート:ソースに合わせる(24、30、または 60fps)
  • ビットレート:1080p では 8~12 Mbps、4K では 35~45 Mbps
Instagram Reels / TikTok
  • フォーマット:MP4(H.264)
  • アスペクト比:9:16
  • 解像度:1080x1920
  • 再生時間:60秒未満(Reels)/3分(TikTok)
  • ファイルサイズ:100MB 未満
Twitter/X
  • フォーマット:MP4(H.264)
  • アスペクト比:16:9、1:1、または 9:16
  • 解像度:最大 1920x1200
  • 再生時間:最大 2:20(140秒)
  • ファイルサイズ:512MB 未満
LinkedIn
  • フォーマット:MP4(H.264)
  • アスペクト比:16:9 または 1:1
  • 解像度:最大 1080p
  • 再生時間:最大10分

エラー処理

エラー原因解決方法
Failed to create prediction: HTTP 422残高不足eachlabs.ai でチャージします
タイムアウト動画ファイルが大きい、または変換が複雑クライアントのタイムアウトを最低10分に設定します
未対応の形式ソース形式が認識されない先に中間形式に変換します
ファイルサイズが大きすぎる動画がサイズ制限を超えている変換前に動画を圧縮または分割します

ベストプラクティス

品質
  • 最終成果物やプロ向けの出力には max モードを使用します
  • プレビューや一括処理には eco モードを使用します
  • ファイルサイズを予測しやすくするため、目標ビットレートを指定します
  • 低いビットレートで品質を高めるには、2パスエンコードをリクエストします
パフォーマンス
  • 動画処理では、クライアントのタイムアウトを最低10分に設定します
  • 大規模な一括処理を短時間で完了するには、eco モードを使用します
  • 設定のテストでは、短いクリップを処理します
互換性
  • H.264 は最も幅広く互換性のあるコーデックです
  • WebM/VP9 は圧縮率に優れていますが、対応デバイスは少なくなります
  • ProRes は編集ワークフローに最適ですが、ファイルサイズが大きくなります
  • 出力は必ず対象のデバイス/プラットフォームでテストします

関連スキル

  • each-sense - コア API ドキュメント
  • video-generation - テキスト/画像から動画を生成します
  • video-editing - 既存の動画を編集・強化します

コメント