# Send FFmpeg to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ffmpeg",
    "name": "FFmpeg",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/ivangdavila/ffmpeg",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/ffmpeg",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/ffmpeg",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ffmpeg",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "ffmpeg",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T10:47:28.321Z",
      "expiresAt": "2026-05-08T10:47:28.321Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ffmpeg",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ffmpeg",
        "contentDisposition": "attachment; filename=\"ffmpeg-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "ffmpeg"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/ffmpeg"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ffmpeg",
    "downloadUrl": "https://openagent3.xyz/downloads/ffmpeg",
    "agentUrl": "https://openagent3.xyz/skills/ffmpeg/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ffmpeg/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ffmpeg/agent.md"
  }
}
```
## Documentation

### Input Seeking (Major Difference)

-ss BEFORE -i: fast seek, may be inaccurate—starts from nearest keyframe
-ss AFTER -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_zero to 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
-crf and -b:v mutually 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:720 or scale=-1:720 for 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 cuda or -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 copy when not re-encoding—defaults to re-encode, slow and lossy
-ss after -i for long videos—takes forever seeking
Audio desync after cutting—use -async 1 or -af aresample=async=1
Filter on stream copy—filters require re-encoding; -c copy + -vf = error
Output extension doesn't set codec—output.mp4 without -c:v uses default, may not be H.264
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: ivangdavila
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-01T10:47:28.321Z
- Expires at: 2026-05-08T10:47:28.321Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/ffmpeg)
- [Send to Agent page](https://openagent3.xyz/skills/ffmpeg/agent)
- [JSON manifest](https://openagent3.xyz/skills/ffmpeg/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/ffmpeg/agent.md)
- [Download page](https://openagent3.xyz/downloads/ffmpeg)