PluginBench
Skill
Pass
Audit score 90

video-edit

heygen-com/skills

Edit videos locally with ffmpeg—trim, concat, resize, compress, and convert.

What is video-edit?

A skill for running ffmpeg and ffprobe commands to edit videos without wrappers. Use it to trim clips, concatenate multiple videos, resize for social platforms, extract or replace audio, compress, convert formats, and retrieve video metadata.

  • Trim or cut video segments to specific timestamps
  • Concatenate multiple video clips into one file
  • Resize videos for specific platforms (TikTok, YouTube, Instagram, Twitter/X) with aspect-ratio preservation
  • Extract audio from video or replace audio tracks
  • Compress video files with adjustable quality settings
  • Convert between video formats (MOV to MP4, etc.)

How to install video-edit

npx skills add https://github.com/heygen-com/skills --skill video-edit
Prerequisites
  • ffmpeg installed (includes ffprobe); install via brew (macOS), apt (Ubuntu/Debian), or equivalent package manager
Claude Code
Cursor
Windsurf
Cline

How to use video-edit

  1. 1.Install ffmpeg on your system using the appropriate package manager for your OS
  2. 2.Verify installation by running `ffmpeg -version && ffprobe -version`
  3. 3.Use ffprobe to inspect video properties: `ffprobe -v quiet -print_format json -show_format -show_streams video.mp4`
  4. 4.Run ffmpeg commands for your task (trim, concat, resize, etc.) using the provided quick-reference examples
  5. 5.For platform-specific resizing, select the appropriate scale+pad filter from the Platform Presets table and apply it with `-vf`
  6. 6.Always include `-y` flag to overwrite output files without prompting

Use cases

Good for
  • Trim raw footage to remove unwanted sections before publishing
  • Combine multiple interview clips or scene recordings into a single video
  • Prepare a video for TikTok, YouTube, or Instagram by resizing to platform specs
  • Extract background music from a video or swap in a new audio track
  • Reduce file size for faster uploads or storage while maintaining acceptable quality
Who it's for
  • Video editors and content creators
  • Developers automating video processing pipelines
  • Social media managers preparing videos for multiple platforms
  • Anyone needing batch video conversion or compression

video-edit FAQ

Do I need to re-encode video when trimming or concatenating?

No. Use `-c copy` to stream-copy without re-encoding, which is much faster. Re-encoding is only needed when applying filters like resize or speed changes.

What CRF value should I use for compression?

CRF ranges from 18 (high quality, larger file) to 28 (lower quality, smaller file); 23 is the default. Choose based on your quality vs. file-size tradeoff.

How do I resize a video for TikTok without distortion?

Use the TikTok preset filter `scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black` which scales and pads with black bars to maintain aspect ratio.

Can I extract just the audio from a video?

Yes. Use `ffmpeg -y -i video.mp4 -vn -acodec libmp3lame audio.mp3` to extract audio without the video stream.

What if ffmpeg is not found after installation?

Verify installation with `ffmpeg -version`. On some systems you may need to restart your terminal or add ffmpeg to your PATH.

Full instructions (SKILL.md)

Source of truth, from heygen-com/skills.


name: video-edit description: | Edit videos locally using ffmpeg. Trim, concat, resize, speed, overlay, extract audio, compress, and convert. Use when: (1) Trimming or cutting video segments, (2) Concatenating multiple clips, (3) Resizing video for social platforms, (4) Extracting or replacing audio, (5) Compressing video, (6) Converting video formats, (7) Getting video info.

Video Edit

Edit videos locally by running ffmpeg/ffprobe directly. No wrapper scripts needed.

Prerequisites

Install ffmpeg (includes ffprobe):

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt update && sudo apt install -y ffmpeg

# Verify
ffmpeg -version && ffprobe -version

Quick Reference

Get video info

ffprobe -v quiet -print_format json -show_format -show_streams video.mp4

Trim

ffmpeg -y -ss 00:00:30 -to 00:01:45 -i video.mp4 -c copy trimmed.mp4

Concatenate clips

# 1. Create a file list
printf "file '%s'\n" clip1.mp4 clip2.mp4 clip3.mp4 > list.txt

# 2. Concat with stream copy
ffmpeg -y -f concat -safe 0 -i list.txt -c copy joined.mp4

Resize for platform

ffmpeg -y -i video.mp4 \
  -vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black" \
  -c:a copy tiktok.mp4

Change speed

# 2x faster
ffmpeg -y -i video.mp4 -filter:v "setpts=0.5*PTS" -filter:a "atempo=2.0" fast.mp4

# 0.5x (slow motion)
ffmpeg -y -i video.mp4 -filter:v "setpts=2.0*PTS" -filter:a "atempo=0.5" slow.mp4

Extract audio

ffmpeg -y -i video.mp4 -vn -acodec libmp3lame audio.mp3

Replace audio

ffmpeg -y -i video.mp4 -i audio.mp3 -c:v copy -map 0:v:0 -map 1:a:0 -shortest output.mp4

Compress

ffmpeg -y -i video.mp4 -crf 23 -preset medium -c:a copy compressed.mp4

Convert format

ffmpeg -y -i video.mov output.mp4

Add image overlay

# Logo in top-right corner
ffmpeg -y -i video.mp4 -i logo.png \
  -filter_complex "overlay=W-w-10:10" -c:a copy watermarked.mp4

Platform Presets

PlatformResolutionScale + pad filter
TikTok1080 x 1920scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black
YouTube1920 x 1080scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black
Instagram1080 x 1350scale=1080:1350:force_original_aspect_ratio=decrease,pad=1080:1350:(ow-iw)/2:(oh-ih)/2:black
Square1080 x 1080scale=1080:1080:force_original_aspect_ratio=decrease,pad=1080:1080:(ow-iw)/2:(oh-ih)/2:black
Twitter/X1920 x 1080scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black

Use the filter with: ffmpeg -y -i input.mp4 -vf "<filter>" -c:a copy output.mp4

Tips

  • Always use -y to overwrite output without prompting.
  • Use -c copy when you only need to cut/join (no re-encoding, very fast).
  • Lower CRF = better quality, larger file. Range 18-28 is typical; 23 is the default.
  • For detailed recipes and flag explanations, see references/operations.md.