video-stabilization

Stabilize shaky video footage using each::sense AI. Remove camera shake from handheld footage, action cameras, drones, and more with intelligent motion correction.

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-stabilization" with this command: npx skills add eachlabs/skills/eachlabs-skills-video-stabilization

Video Stabilization

Stabilize shaky video footage using each::sense. This skill applies intelligent motion correction to remove camera shake, smooth handheld footage, and create professional-looking stable video from various sources.

Features

  • Shake Removal: Basic camera shake correction for mildly unstable footage
  • Handheld Stabilization: Smooth out natural hand movement from phone/camera footage
  • Action Camera: Stabilize high-motion GoPro and action camera footage
  • Walking/Running: Fix bounce and shake from movement while filming
  • Drone Footage: Smooth aerial footage affected by wind or vibration
  • Vehicle Footage: Stabilize dashcam and in-car recording
  • Low Light: Handle shaky footage shot in challenging lighting conditions
  • Lock Shot: Aggressive stabilization for tripod-like results
  • Subtle Stabilization: Preserve natural camera movement while reducing shake
  • Crop Optimization: Balance stabilization strength with frame cropping

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": "Stabilize this shaky video, remove the camera shake",
    "mode": "max",
    "video_urls": ["https://example.com/shaky-video.mp4"]
  }'

Stabilization Modes

ModeDescriptionBest For
SubtleLight stabilization, keeps natural movementDocumentary, vlog style
StandardBalanced shake removalGeneral purpose
AggressiveMaximum stabilization, locked shotProfessional, tripod-like

Use Case Examples

1. Basic Shake Removal

Simple camera shake correction for mildly unstable footage.

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": "Stabilize this video and remove the camera shake. Apply standard stabilization.",
    "mode": "max",
    "video_urls": ["https://example.com/shaky-footage.mp4"]
  }'

2. Handheld Footage Stabilization

Smooth out natural hand movement from smartphone or camera footage.

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": "This is handheld smartphone footage. Stabilize it to look smoother while keeping it natural, not too robotic. Remove the jitter from hand movement.",
    "mode": "max",
    "video_urls": ["https://example.com/handheld-phone-video.mp4"]
  }'

3. Action Camera Stabilization

Stabilize high-motion GoPro and action camera footage from extreme sports.

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": "Stabilize this GoPro action camera footage. It has significant shake from mountain biking. Apply strong stabilization to smooth out the bumps while preserving the sense of motion.",
    "mode": "max",
    "video_urls": ["https://example.com/gopro-mtb-footage.mp4"]
  }'

4. Walking/Running Footage Fix

Remove bounce and vertical shake from footage shot while moving on foot.

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": "Fix this walking footage. Remove the up and down bounce from each step while keeping the forward motion smooth. The camera was handheld while walking through a market.",
    "mode": "max",
    "video_urls": ["https://example.com/walking-market-footage.mp4"]
  }'

5. Drone Footage Smoothing

Smooth aerial footage affected by wind, vibration, or gimbal issues.

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": "Stabilize this drone footage. There is micro-vibration and some wind shake affecting the shot. Make it smooth and cinematic for a real estate showcase video.",
    "mode": "max",
    "video_urls": ["https://example.com/drone-aerial-footage.mp4"]
  }'

6. Car/Vehicle Footage Stabilization

Stabilize dashcam, in-car, or vehicle-mounted camera footage.

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": "Stabilize this dashcam footage from a car driving on rough roads. Remove the vibration and bumps from the road while keeping the driving perspective stable.",
    "mode": "max",
    "video_urls": ["https://example.com/dashcam-rough-road.mp4"]
  }'

7. Low Light Shaky Footage

Handle shaky footage shot in challenging low-light conditions.

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": "Stabilize this low light concert footage. It was shot handheld at night with significant shake. Be careful with the stabilization as low light footage can show more artifacts. Prioritize smooth motion over aggressive correction.",
    "mode": "max",
    "video_urls": ["https://example.com/concert-lowlight-shaky.mp4"]
  }'

8. Aggressive Stabilization (Lock Shot)

Maximum stabilization for tripod-like locked shot results.

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": "Apply aggressive stabilization to lock this shot completely. I want it to look like it was shot on a tripod. Remove all camera movement and shake. It is okay to crop more of the frame if needed for maximum stability.",
    "mode": "max",
    "video_urls": ["https://example.com/interview-handheld.mp4"]
  }'

9. Subtle Stabilization (Keep Natural Movement)

Preserve natural camera movement while only reducing noticeable shake.

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": "Apply subtle stabilization to this documentary footage. I want to keep the natural handheld feel and intentional camera movements, but remove only the unwanted micro-shakes and jitter. Do not make it look too smooth or artificial.",
    "mode": "max",
    "video_urls": ["https://example.com/documentary-handheld.mp4"]
  }'

10. Stabilize and Crop Optimization

Balance stabilization strength with minimal frame cropping.

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": "Stabilize this footage but optimize for minimal cropping. The framing is important and I cannot lose too much of the edges. Find the best balance between stabilization quality and preserving the original frame as much as possible.",
    "mode": "max",
    "video_urls": ["https://example.com/tight-framing-shaky.mp4"]
  }'

Mode Selection

Ask your users before processing:

"Do you want fast processing or maximum quality?"

ModeBest ForSpeedQuality
maxFinal deliverables, professional projectsSlowerHighest
ecoQuick previews, draft reviews, high volumeFasterGood

Multi-Turn Stabilization Workflow

Use session_id to iterate on stabilization settings:

# Initial stabilization
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": "Stabilize this shaky video footage",
    "session_id": "stabilize-project-001",
    "video_urls": ["https://example.com/shaky-video.mp4"]
  }'

# Request adjustment
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": "The stabilization is too aggressive, it looks artificial. Can you apply a more subtle stabilization that keeps some natural movement?",
    "session_id": "stabilize-project-001"
  }'

# Further refinement
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": "Good, but now there is too much cropping. Can you reduce the crop while maintaining similar stabilization?",
    "session_id": "stabilize-project-001"
  }'

Batch Processing Multiple Videos

Process multiple videos with consistent settings:

# Video 1
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": "Stabilize this video with medium strength stabilization",
    "mode": "eco",
    "video_urls": ["https://example.com/clip1.mp4"]
  }'

# Video 2
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": "Stabilize this video with medium strength stabilization",
    "mode": "eco",
    "video_urls": ["https://example.com/clip2.mp4"]
  }'

# Video 3
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": "Stabilize this video with medium strength stabilization",
    "mode": "eco",
    "video_urls": ["https://example.com/clip3.mp4"]
  }'

Best Practices

Input Video Quality

  • Resolution: Higher resolution footage gives better stabilization results
  • Frame Rate: Higher frame rates (60fps+) provide smoother stabilization
  • Codec: Use high-quality source files, avoid heavily compressed inputs

Stabilization Settings

  • Start Subtle: Begin with lighter stabilization and increase if needed
  • Consider Cropping: More aggressive stabilization requires more cropping
  • Match Style: Keep stabilization consistent across clips in the same project

Common Scenarios

ScenarioRecommended Approach
Interview/talking headAggressive/lock shot
Documentary/vlogSubtle, natural feel
Sports/actionMedium, preserve motion
Drone/aerialMedium to aggressive
Walking tourMedium, reduce bounce
Low lightSubtle, avoid artifacts

Prompt Tips for Video Stabilization

When requesting stabilization, include these details:

  1. Source Type: What camera/device captured the footage?
  2. Shake Cause: Walking, vehicle, wind, handheld, etc.
  3. Desired Result: Lock shot, natural feel, smooth but dynamic
  4. Cropping Tolerance: Is the framing critical or flexible?
  5. Use Case: Social media, professional, documentary, etc.

Example Prompt Structure

"Stabilize this [source type] footage.
The shake is caused by [cause].
I want [desired result] stabilization.
[Cropping preference].
This is for [use case]."

Error Handling

ErrorCauseSolution
Failed to create prediction: HTTP 422Insufficient balanceTop up at eachlabs.ai
Video format not supportedIncompatible codecConvert to MP4/H.264
TimeoutLong video processingSet client timeout to minimum 10 minutes
Excessive croppingToo much shakeUse subtle mode or accept more crop

Related Skills

  • each-sense - Core API documentation
  • video-edit - General video editing capabilities
  • video-generation - AI video generation

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.

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