<< All versions

Skill v1.0.0

currentAutomated scan100/100
atomicbot-ai/atomic-chat/ffmpeg
──Details
PublishedSeptember 29, 2026 at 06:33 PM
Content Hashsha256:02a85e1d40cf3cc6...
Git SHA
──Files
Files (1 file, 3.1 KB)
SKILL.md3.1 KBactive
SKILL.md · 91 lines · 3.1 KB

name: ffmpeg description: Process audio and video with the ffmpeg / ffprobe CLIs — convert, trim, extract audio, resize, change format, make GIFs, inspect media. Use for any audio/video transformation. version: 1.0.0 requires_tools:

  • os.shell.run

dangerous: false platforms:

  • darwin
  • linux
  • win32

ffmpeg

Transform audio and video files with `ffmpeg` and inspect them with ffprobe. Operations are non-destructive: always write to a new output file. Re-encoding can be slow on long media — set realistic expectations.

Setup health check (run first, every session)

Verify with one solo step:

[{ "tool": "os.shell.run", "args": { "cmd": "ffmpeg", "args": ["-version"] } }]

Outcome map:

  • exit 0 + version → ready, proceed.
  • command not found: ffmpeg → enter Setup playbook → "ffmpeg missing".

Setup playbook (when prerequisites are missing)

ffmpeg missing

Reply (solo reply step):

«ffmpeg не установлен. Могу поставить: brew install ffmpeg. Поставить?»

On yes:

[{ "tool": "os.shell.run", "args": { "cmd": "brew", "args": ["install", "ffmpeg"] } }]

On Linux: apt-get install ffmpeg.

On Windows, offer this exact winget command after confirmation:

[{ "tool": "os.shell.run", "args": { "cmd": "winget", "args": ["install", "--id", "Gyan.FFmpeg", "-e"] } }]

When to use

  • "Convert this video/audio to <format>", "extract the audio from this mp4".
  • "Trim from 0:30 to 1:00", "resize to 720p", "make a GIF from this clip".
  • "What codec / duration / resolution is this file?" (use ffprobe).

When NOT to use

  • Downloading media from URLs — that's yt-dlp territory (separate skill).
  • Still-image editing — use the imagemagick skill.
  • Lossless container-only edits where a remux suffices — still fine here, just

use -c copy to avoid re-encoding.

Common operations

All examples invoke os.shell.run. Inspect first with ffprobe; the approval gate surfaces each write. Use -c copy to remux without re-encoding when only the container changes.

Goalcmd / args
Inspect mediaffprobe ["-hide_banner", "in.mp4"]
Convert MOV → MP4ffmpeg ["-i", "in.mov", "-c:v", "libx264", "-c:a", "aac", "out.mp4"]
Extract audio (MP3)ffmpeg ["-i", "in.mp4", "-vn", "-q:a", "2", "out.mp3"]
Trim (start 30s, 30s long)ffmpeg ["-ss", "00:00:30", "-i", "in.mp4", "-t", "30", "-c", "copy", "clip.mp4"]
Resize to 720pffmpeg ["-i", "in.mp4", "-vf", "scale=-2:720", "out_720p.mp4"]
Video → GIFffmpeg ["-i", "in.mp4", "-vf", "fps=12,scale=480:-1", "out.gif"]
Extract one frameffmpeg ["-ss", "00:00:05", "-i", "in.mp4", "-frames:v", "1", "frame.png"]
Remux only (fast)ffmpeg ["-i", "in.mkv", "-c", "copy", "out.mp4"]

Rules

  1. Always write to a NEW output path; never overwrite the source.
  2. Inspect with ffprobe first when unsure of codecs/duration/resolution.
  3. Warn the user that long re-encodes can take a while; prefer -c copy when

only the container changes.

  1. Echo the output path (and ffprobe duration if relevant) after each run.
All versions