video-format-conversion

Convert videos between formats, codecs, and aspect ratios using each::sense AI. Support for MP4, WebM, GIF, ProRes, and social media optimized outputs.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "video-format-conversion" with this command: npx skills add eachlabs/skills/eachlabs-skills-video-format-conversion

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

FormatCodecsUse Cases
MP4H.264, H.265/HEVCUniversal playback, web, mobile
WebMVP9, VP8Web browsers, smaller file sizes
MOVProRes, H.264Professional editing, Apple ecosystem
GIF-Social media, previews, loops
MKVH.264, H.265, VP9Archival, high quality

Aspect Ratios

RatioResolutionUse Case
16:91920x1080YouTube, standard landscape
9:161080x1920TikTok, Instagram Reels, Stories
1:11080x1080Instagram feed, Twitter
4:31440x1080Classic TV, presentations
4:51080x1350Instagram portrait posts
21:92560x1080Cinematic 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?"

ModeBest ForSpeedQuality
maxFinal deliverables, ProRes, professional workflowsSlowerHighest
ecoQuick previews, batch processing, draft conversionsFasterGood

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: 1080x1920
  • 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 1920x1200
  • 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

ErrorCauseSolution
Failed to create prediction: HTTP 422Insufficient balanceTop up at eachlabs.ai
TimeoutLarge video file or complex conversionSet client timeout to minimum 10 minutes
Unsupported formatSource format not recognizedConvert to intermediate format first
File too largeVideo exceeds size limitsCompress 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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

qr-code-generation

No summary provided by upstream source.

Repository SourceNeeds Review
General

poster-design-generation

No summary provided by upstream source.

Repository SourceNeeds Review
General

eachlabs-image-edit

No summary provided by upstream source.

Repository SourceNeeds Review
General

subtitle-generation

No summary provided by upstream source.

Repository SourceNeeds Review