video-format-conversion について
video-format-conversion は、動画の形式変換やアスペクト比の調整を行う each::sense のスキルです。配信先に応じた設定、ストリーミング向け最適化、複数動画の連続処理に対応します。
主な機能
- 01動画形式の変換
- 02コーデックのトランスコード
- 03アスペクト比の変更
- 04配信先に合わせた最適化
- 05ビットレートと画質の調整
- 06動画の一括処理
活用シーン
- 01TikTok向け縦型動画の作成
- 02Web配信用ファイルの作成
- 03編集用ProResへの書き出し
- 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"]
}'
対応フォーマットとコーデック
| フォーマット | コーデック | 用途 |
|---|---|---|
| MP4 | H.264, H.265/HEVC | 汎用再生、Web、モバイル |
| WebM | VP9, VP8 | Web ブラウザー、ファイルサイズの縮小 |
| MOV | ProRes, H.264 | プロ向け編集、Apple エコシステム |
| GIF | - | ソーシャルメディア、プレビュー、ループ動画 |
| MKV | H.264, H.265, VP9 | アーカイブ、高画質 |
アスペクト比
| 比率 | 解像度 | 用途 |
|---|---|---|
| 16:9 | 1920x1080 | YouTube、標準的な横向き動画 |
| 9:16 | 1080x1920 | TikTok、Instagram Reels、Stories |
| 1:1 | 1080x1080 | Instagram フィード、Twitter |
| 4:3 | 1440x1080 | 昔ながらのテレビ、プレゼンテーション |
| 4:5 | 1080x1350 | Instagram の縦向き投稿 |
| 21:9 | 2560x1080 | シネマティックなウルトラワイド |
使用例
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 未満
- フォーマット: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- 既存の動画を編集・強化します