video-format-conversion

📁 eachlabs/skills 📅 8 days ago
9
总安装量
8
周安装量
#32560
全站排名
安装命令
npx skills add https://github.com/eachlabs/skills --skill video-format-conversion

Agent 安装分布

gemini-cli 8
opencode 7
claude-code 7
github-copilot 7
codex 7
kimi-cli 7

Skill 文档

Video Format Conversion

Convert videos between formats, codecs, and aspect ratios using each::sense. This skill handles format conversion, codec transcoding, aspect ratio changes, and optimization for various platforms and use cases.

Features

  • Format Conversion: Convert between MP4, WebM, MOV, GIF, and more
  • Codec Transcoding: H.264, H.265/HEVC, VP9, ProRes, and others
  • Aspect Ratio Changes: 16:9 to 9:16, 1:1, 4:3, and custom ratios
  • Platform Optimization: Instagram, TikTok, YouTube, Twitter optimized outputs
  • Web Streaming: HLS-ready and web-optimized encoding
  • Quality Control: Bitrate, resolution, and compression settings
  • Batch Processing: Convert multiple videos in sequence

Quick Start

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Convert this video to MP4 H.264 format optimized for web playback",
    "mode": "max",
    "image_urls": ["https://example.com/source-video.mov"]
  }'

Supported Formats & Codecs

Format Codecs Use Cases
MP4 H.264, H.265/HEVC Universal playback, web, mobile
WebM VP9, VP8 Web browsers, smaller file sizes
MOV ProRes, H.264 Professional editing, Apple ecosystem
GIF Social media, previews, loops
MKV H.264, H.265, VP9 Archival, high quality

Aspect Ratios

Ratio Resolution Use Case
16:9 1920×1080 YouTube, standard landscape
9:16 1080×1920 TikTok, Instagram Reels, Stories
1:1 1080×1080 Instagram feed, Twitter
4:3 1440×1080 Classic TV, presentations
4:5 1080×1350 Instagram portrait posts
21:9 2560×1080 Cinematic ultrawide

Use Case Examples

1. Convert to MP4 (H.264)

Standard MP4 conversion with H.264 codec for maximum compatibility.

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Convert this video to MP4 with H.264 codec. Use high quality settings with a bitrate suitable for 1080p playback. Maintain original aspect ratio.",
    "mode": "max",
    "image_urls": ["https://example.com/source-video.mov"]
  }'

2. Convert to WebM

WebM format with VP9 codec for efficient web delivery.

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "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.",
    "mode": "max",
    "image_urls": ["https://example.com/source-video.mp4"]
  }'

3. Convert to GIF

Create animated GIF from video for social sharing and previews.

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "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.",
    "mode": "eco",
    "image_urls": ["https://example.com/source-video.mp4"]
  }'

4. Convert 16:9 to 9:16 (Vertical)

Transform landscape video to vertical format for mobile platforms.

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "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.",
    "mode": "max",
    "image_urls": ["https://example.com/landscape-video.mp4"]
  }'

5. Convert to Square 1:1

Create square format video for Instagram feed and Twitter.

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "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.",
    "mode": "max",
    "image_urls": ["https://example.com/widescreen-video.mp4"]
  }'

6. Convert to 4:3

Classic 4:3 aspect ratio for presentations and legacy displays.

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "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.",
    "mode": "eco",
    "image_urls": ["https://example.com/widescreen-video.mp4"]
  }'

7. Optimize for Web Streaming

Create web-optimized video with fast start and adaptive quality.

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "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.",
    "mode": "max",
    "image_urls": ["https://example.com/raw-video.mov"]
  }'

8. Convert to Apple ProRes

Professional ProRes format for video editing workflows.

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "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.",
    "mode": "max",
    "image_urls": ["https://example.com/compressed-video.mp4"]
  }'

9. Convert for Social Media (Instagram/TikTok)

Platform-optimized video for Instagram Reels and TikTok.

curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "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.",
    "mode": "max",
    "image_urls": ["https://example.com/source-video.mov"]
  }'

10. Batch Convert Multiple Videos

Process multiple videos in a single session with consistent settings.

# Start batch conversion session
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "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.",
    "session_id": "batch-convert-001",
    "mode": "eco",
    "image_urls": ["https://example.com/video1.mov"]
  }'

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

# Continue with third video
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Convert this one too, same format.",
    "session_id": "batch-convert-001",
    "mode": "eco",
    "image_urls": ["https://example.com/video3.mov"]
  }'

Mode Selection

Ask your users before converting:

“Do you want fast & cheap, or high quality?”

Mode Best For Speed Quality
max Final deliverables, ProRes, professional workflows Slower Highest
eco Quick previews, batch processing, draft conversions Faster Good

Multi-Turn Conversion Session

Use session_id to maintain context for iterative conversions:

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

# Request different format from same source
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Now create a vertical version of that same video for YouTube Shorts at 9:16",
    "session_id": "youtube-upload-project"
  }'

# Request thumbnail extraction
curl -X POST https://sense.eachlabs.run/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "message": "Extract a thumbnail from the best frame of that video",
    "session_id": "youtube-upload-project"
  }'

Platform-Specific Settings

YouTube

  • Format: MP4 (H.264)
  • Resolution: 1080p or 4K
  • Frame rate: Match source (24, 30, or 60fps)
  • Bitrate: 8-12 Mbps for 1080p, 35-45 Mbps for 4K

Instagram Reels / TikTok

  • Format: MP4 (H.264)
  • Aspect ratio: 9:16
  • Resolution: 1080×1920
  • Duration: Under 60 seconds (Reels) / 3 minutes (TikTok)
  • File size: Under 100MB

Twitter/X

  • Format: MP4 (H.264)
  • Aspect ratio: 16:9, 1:1, or 9:16
  • Resolution: Up to 1920×1200
  • Duration: Up to 2:20 (140 seconds)
  • File size: Under 512MB

LinkedIn

  • Format: MP4 (H.264)
  • Aspect ratio: 16:9 or 1:1
  • Resolution: 1080p maximum
  • Duration: 10 minutes maximum

Error Handling

Error Cause Solution
Failed to create prediction: HTTP 422 Insufficient balance Top up at eachlabs.ai
Timeout Large video file or complex conversion Set client timeout to minimum 10 minutes
Unsupported format Source format not recognized Convert to intermediate format first
File too large Video exceeds size limits Compress or split video before conversion

Best Practices

Quality

  • Use max mode for final deliverables and professional outputs
  • Use eco mode for previews and batch processing
  • Specify target bitrate for predictable file sizes
  • Request 2-pass encoding for better quality at lower bitrates

Performance

  • Set client timeout to minimum 10 minutes for video processing
  • Use eco mode for faster turnaround on large batches
  • Process shorter clips when testing settings

Compatibility

  • H.264 is the most universally compatible codec
  • WebM/VP9 offers better compression but less device support
  • ProRes is ideal for editing workflows but creates large files
  • Always test output on target devices/platforms

Related Skills

  • each-sense – Core API documentation
  • video-generation – Generate videos from text/images
  • video-editing – Edit and enhance existing videos