FFmpeg
Process video and audio with correct codec selection, filtering, and encoding settings.
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 5 · 2.3k · 29 current installs · 29 all-time installs
byIván@ivangdavila
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (FFmpeg processing) match the SKILL.md content. The only required binary is ffmpeg, which is exactly what the skill needs to perform the documented tasks.
Instruction Scope
SKILL.md contains usage guidance and example ffmpeg command lines (seeking, mapping, filters, encoding, hardware accel, etc.). It does not instruct the agent to read unrelated system files, environment variables, or to transmit data to external endpoints; examples reference user media files and local lists/subtitle files, which is expected for this functionality.
Install Mechanism
No install spec (instruction-only). Nothing is downloaded or written to disk by the skill itself, which minimizes install-time risk.
Credentials
The skill requests no environment variables, credentials, or config paths. That is proportionate for a tool that just builds/runs ffmpeg commands locally.
Persistence & Privilege
always is false and the skill does not request persistent agent-level privileges or modify other skills/configs. Autonomous invocation is allowed (platform default) but not an additional privilege here.
Assessment
This skill is an instruction-only FFmpeg guide and appears coherent. Before using it, ensure you have ffmpeg installed from a trusted source and that you trust any media files you allow the agent to operate on. The agent will construct and run ffmpeg commands — review commands before execution to avoid accidental overwrites or processing of sensitive files. If the agent runs shell commands on filenames supplied by users, watch for possible command/filename injection depending on how execution is implemented; prefer safe argument passing (no unescaped shell interpolation) or sandboxing. Finally, note hardware-acceleration flags require appropriate drivers and devices and may behave differently on different hosts.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
Runtime requirements
🎬 Clawdis
OSLinux · macOS · Windows
Binsffmpeg
SKILL.md
Input Seeking (Major Difference)
-ssBEFORE-i: fast seek, may be inaccurate—starts from nearest keyframe-ssAFTER-i: frame-accurate but slow—decodes from start- Combine both:
-ss 00:30:00 -i input.mp4 -ss 00:00:05—fast seek then accurate trim - For cutting, add
-avoid_negative_ts make_zeroto fix timestamp issues
Stream Selection
- Default: first video + first audio—may not be what you want
- Explicit selection:
-map 0:v:0 -map 0:a:1—first video, second audio - All streams of type:
-map 0:a—all audio streams - Copy specific:
-map 0 -c copy—all streams, no re-encoding - Exclude:
-map 0 -map -0:s—all except subtitles
Encoding Quality
- CRF (Constant Rate Factor): lower = better quality, larger file—18-23 typical for H.264
-preset: ultrafast to veryslow—slower = smaller file at same quality- Two-pass for target bitrate: first pass analyzes, second pass encodes
-crfand-b:vmutually exclusive—use one or the other
Container vs Codec
- Container (MP4, MKV, WebM): wrapper format holding streams
- Codec (H.264, VP9, AAC): compression algorithm for stream
- Not all codecs fit all containers—H.264 in MP4/MKV, not WebM; VP9 in WebM/MKV, not MP4
- Copy codec to new container:
-c copy—fast, no quality loss
Filter Syntax
- Simple:
-vf "scale=1280:720"—single filter chain - Complex:
-filter_complex "[0:v]scale=1280:720[scaled]"—named outputs for routing - Chain filters:
-vf "scale=1280:720,fps=30"—comma-separated - Filter order matters—scale before crop gives different result than crop before scale
Common Filters
- Scale:
scale=1280:720orscale=-1:720for auto-width maintaining aspect - Crop:
crop=640:480:100:50—width:height:x:y from top-left - FPS:
fps=30—change framerate - Trim:
trim=start=10:end=20,setpts=PTS-STARTPTS—setpts resets timestamps - Overlay:
overlay=10:10—position from top-left
Audio Processing
- Sample rate:
-ar 48000—standard for video - Channels:
-ac 2—stereo - Audio codec:
-c:a aac -b:a 192k—AAC at 192kbps - Normalize:
-filter:a loudnorm—EBU R128 loudness normalization - Extract audio:
-vn -c:a copy output.m4a—no video, copy audio
Concatenation
- Same codec/params: concat demuxer—
-f concat -safe 0 -i list.txt -c copy - Different formats: concat filter—
-filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1" - list.txt format:
file 'video1.mp4'per line—escape special characters - Different resolutions: scale/pad to match before concat filter
Subtitles
- Burn-in (hardcode):
-vf "subtitles=subs.srt"—cannot be turned off - Mux as stream:
-c:s mov_text(MP4) or-c:s srt(MKV)—user toggleable - From input:
-map 0:s—include subtitle streams - Extract:
-map 0:s:0 subs.srt—first subtitle to file
Hardware Acceleration
- Decode:
-hwaccel cudaor-hwaccel videotoolbox(macOS) - Encode:
-c:v h264_nvenc(NVIDIA),-c:v h264_videotoolbox(macOS) - Not always faster—setup overhead; benefits show on long videos
- Quality may differ—software encoding often produces better quality
Common Mistakes
- Forgetting
-c copywhen not re-encoding—defaults to re-encode, slow and lossy -ssafter-ifor long videos—takes forever seeking- Audio desync after cutting—use
-async 1or-af aresample=async=1 - Filter on stream copy—filters require re-encoding;
-c copy+-vf= error - Output extension doesn't set codec—
output.mp4without-c:vuses default, may not be H.264
Files
1 totalSelect a file
Select a file to preview.
Comments
Loading comments…
