agentsclimarketplace

Video

Skill naveedharri/benai-skills/plugins/all-skills/skills/video

Install
npx -y skills add naveedharri/benai-skills --skill video

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Edit, process, and render videos using FFmpeg and Remotion. Handles stitching, transitions, captions, teasers, and transcription. USE THIS SKILL WHEN user mentions video, clip, footage, mp4, mov, avi, mkv, or any video format, wants to combine, stitch, merge, or join video files, asks about transitions, fades, crossfades, or effects between clips, needs captions, subtitles, or TikTok-style word highlighting, wants a teaser, trailer, or highlight reel from longer video, mentions FFmpeg, ffprobe, Remotion, or related errors, asks about video transcription or whisper speech-to-text, asks about video duration, resolution, fps, or trimming, has .mp4, .mov, .captions.json files or video folders, or asks about thumbnails, overlays, title cards, or graphics for video.

SKILL.md

6.4 KB, as published. Nobody here has run it

Video Editing Skill

Edits, processes, and renders videos using FFmpeg and Remotion.


Intelligent Editing Workflow

This skill enables Claude to act as a smart video editor. Before executing commands:

  1. Analyze - Examine videos (duration, resolution, audio) using ffprobe
  2. Transcribe - Get speech content for smart cuts (if needed)
  3. Ask - Clarify user intent and preferences
  4. Plan - Propose edit approach for approval
  5. QA Test - Run automated tests before user preview (see references/qa-testing.md)
  6. Preview - Only show to user after QA passes
  7. Iterate - Refine based on feedback

See references/intelligent-editing.md for detailed workflow, questions to ask, and quality checks.


Tool Selection

TaskFFmpegRemotion
StitchingSame codec, no effectsTransitions, overlays, programmatic
TransitionsSimple crossfadesMultiple types, custom timing
CaptionsSRT burn-inTikTok-style word highlighting
TeasersQuick clipsText overlays, branded elements

General guidance:

  • FFmpeg: Fast CLI operations, batch processing, format conversion
  • Remotion: Styled content, animations, preview before render, React components

Reference Files

Read these files as needed using the Read tool:

Intelligence Layer

FileContents
references/intelligent-editing.mdSmart editing workflow, questions, quality checks
references/video-analysis.mdAnalyze videos with ffprobe
references/transcription.mdWhisper transcription for speech analysis
references/qa-testing.mdQA tests before user preview

Core Editing

FileContents
references/stitching.mdCombine multiple clips into one video
references/transitions.mdAdd fade, slide, wipe between clips
references/captions.mdAdd subtitles and TikTok-style captions
references/teasers.mdCreate 30-second teasers/trailers
references/title-cards.mdAdd chapter headers, bumpers, section titles
references/graphics-generation.mdGenerate thumbnails, overlays, social graphics

Technical Reference

FileContents
references/ffmpeg-basics.mdCommon FFmpeg patterns and troubleshooting
references/remotion-setup.mdRemotion project setup and workflow
references/remotion-tips.mdAnimations, timing, springs, sequences, and captions
references/reference-implementation.mdComplete working code to recreate the project

Quick Start

Transcription (Fast)

# 1. Setup whisper.cpp (one-time)
npx ts-node scripts/setup-whisper.ts

# 2. Transcribe all videos (GPU accelerated)
npx ts-node scripts/transcribe-fast.ts

FFmpeg (CLI)

# Check installation
which ffmpeg || brew install ffmpeg

# Basic concat (same codec)
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4

# Burn in subtitles
ffmpeg -i video.mp4 -vf "subtitles=captions.srt" output.mp4

Remotion (React)

# Start preview (always do this first)
npm run dev

# Render (only when user requests)
npx remotion render CompositionName out/video.mp4

Key Lessons Learned

Transcription (IMPORTANT)

  • Use @remotion/install-whisper-cpp - NOT Python whisper (10x faster with GPU)
  • Use base.en model for speed, medium.en for final quality
  • Required parameter: whisperCppVersion: '1.5.5' in transcribe() call
  • Enable tokenLevelTimestamps: true for word-level captions
  • Whisper.cpp uses Metal GPU on Mac - 8.5min video in ~85 seconds

Teasers

  • Never start clips with: "But", "And", "So", "Now", "It", "This", "That", "They"
  • Each clip must have an explicit subject - not pronouns or references
  • Aim for 3-4 clips totaling 25-30 seconds
  • Playback speed: 1.3x for energy (1.5x is too fast)
  • Transitions: Smooth fade (0.4s) between clips
  • First clip: Must NOT overlap with intro start (avoid repetition)

Captions

  • Active word: Yellow #FFD700
  • Spoken words: White #FFFFFF
  • Upcoming words: Light gray #E0E0E0
  • Font: Roboto at 48px for 1080p
  • Black stroke outline (works on ANY background):
    WebkitTextStroke: '3px black',
    paintOrder: 'stroke fill',
    textShadow: '0px 0px 4px rgba(0,0,0,1), 0px 0px 8px rgba(0,0,0,0.8)'
    

Remotion Video Trimming

  • Use OffthreadVideo component
  • Set BOTH startFrom AND endAt props
  • Convert ms to frames: Math.round((ms / 1000) * fps)

Edge Cases & Gotchas

File Naming

  • Avoid spaces in video filenames: use intro.mp4 not Intro Video.mp4
  • Remotion Folder names can only contain letters, numbers, and hyphens

Ports

  • Remotion Studio may start on port 3001 if 3000 is in use

Codec Mismatch

  • FFmpeg concat demuxer (-c copy) fails silently with mismatched codecs
  • Use ffprobe to check codecs before concatenating
  • Use filter_complex for different codecs/resolutions

Workflow

  • Always preview in Remotion Studio before rendering
  • Never render automatically - wait for user approval
  • Copy videos to public/ folder for Remotion projects

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.