{"enrichment":{"faq":[{"a":"ffmpeg-command-syntax teaches that option placement is critical: global options come first, then -i input_file, then output options, then output_file. Options before -i apply to input decoding; options after -i apply to output encoding. For example: ffmpeg -ss 10 -i input.mp4 -c:v libx264 output.mp4 seeks 10 seconds during input, while ffmpeg -i input.mp4 -ss 10 output.mp4 seeks after loading the full file. This position-dependent behavior applies to -ss, -t, -r, -c, and many others.","q":"How to place ffmpeg options correctly in a command?"},{"a":"ffmpeg-command-syntax clarifies that input options (placed before -i) control how FFmpeg reads and decodes the input file\u2014like -ss for seeking, -r for frame rate during input, or -c:v for input codec. Output options (placed after -i) control encoding and writing\u2014like -c:v for output codec, -b:v for bitrate, or -vf for filters. Misplacing them changes behavior: -ss before -i is fast but less accurate; -ss after -i is slow but frame-accurate.","q":"What's the difference between ffmpeg input vs output options?"},{"a":"ffmpeg-command-syntax identifies common errors: placing output options before -i (they're ignored), using -ss after -i when you need speed, forgetting stream specifiers like :v or :a for multi-stream files, and mixing -vf (simple filter) with -filter_complex (advanced routing). Check your -i position: it must come after global/input options and before output options. Verify codec and format options match their target (video vs audio). Use -vf for single-input filtering; use -filter_complex for multi-input or complex graphs.","q":"Why is my ffmpeg command not working\u2014what syntax errors occur?"},{"a":"ffmpeg-command-syntax explains that stream specifiers target specific streams in files with multiple audio, video, or subtitle tracks. Use :v for video, :a for audio, :s for subtitles, or :0:v for stream 0's video. Example: ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4 encodes video with libx264 and audio with aac. Without specifiers, FFmpeg applies options to all matching streams. For multi-input/output, specify which input feeds which output using -map input_index:stream_specifier.","q":"What are ffmpeg stream specifiers and when do you use them?"},{"a":"ffmpeg-command-syntax emphasizes that -ss before -i seeks during input decoding (fast, keyframe-based, less accurate), while -ss after -i seeks after loading (slow, frame-accurate). Use -ss before -i for rough cuts or live streams; use -ss after -i when precision matters. Combine both for speed and accuracy: ffmpeg -ss 10 -i input.mp4 -ss 0.5 -t 5 output.mp4 fast-seeks to ~10s, then frame-accurate seeks 0.5s more, capturing 5 seconds.","q":"How does ffmpeg -ss placement affect seeking\u2014before or after -i?"},{"a":"ffmpeg-command-syntax distinguishes -t (duration in seconds from start) from -to (absolute end timestamp). Example: ffmpeg -i input.mp4 -t 10 output.mp4 outputs 10 seconds; ffmpeg -i input.mp4 -to 30 output.mp4 outputs up to the 30-second mark. Combine them: ffmpeg -ss 5 -i input.mp4 -t 10 output.mp4 starts at 5s and captures 10 seconds total. Position matters: place both after -i for output control.","q":"What's the difference between ffmpeg -t vs -to duration options?"}],"shadow_tags":["cli-syntax","option-placement","position-sensitive","decoder-encoder","stream-targeting","command-structure","troubleshooting-guide","hardware-accel"],"summary_rewrite":"This skill covers FFmpeg's position-sensitive command structure, explaining where global, input, and output options must appear and how their meaning shifts based on placement. It addresses stream specifiers, multi-input/output handling, and the critical behaviors of options like -ss, -t, -r, and -c that work differently before versus after -i."},"files":[{"bytes":10881,"path":"plugins/ffmpeg-core/skills/ffmpeg-command-syntax/SKILL.md","sha256":"50266696ebda00bc7eecf5a0589bae7549249fea60ababc7ee8caf13f5320cc8","url":"https://skillfed.io/files/JosiahSiegel/claude-plugin-marketplace/ffmpeg-command-syntax/10245717/SKILL.md"}],"id":"JosiahSiegel/claude-plugin-marketplace/ffmpeg-command-syntax","links":{"html":"https://skillfed.io/JosiahSiegel/claude-plugin-marketplace/ffmpeg-command-syntax","md":"https://skillfed.io/JosiahSiegel/claude-plugin-marketplace/ffmpeg-command-syntax.md","repo":"https://github.com/JosiahSiegel/claude-plugin-marketplace"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":10,"language":"Shell","last_updated":"2026-06-18","license":"MIT","name":"ffmpeg-command-syntax","publisher":"JosiahSiegel","stars":49},"relations":{"similar":[{"id":"mindmorass/reflex/ffmpeg-patterns"},{"id":"bryanwhl/ffmpeg-video-editor/ffmpeg-video-editor"},{"id":"samhvw8/dot-claude/media-processing"},{"id":"SpaceZephyr/myskill/ffmpeg-usage"},{"id":"mrgoonie/claudekit-skills/media-processing"},{"id":"nicepkg/ai-workflow/media-processing"},{"id":"samhvw8/dotfiles/media-processing"},{"id":"Aradotso/devtools-skills/clipify-video-clip-generator"},{"id":"digitalsamba/claude-code-video-toolkit/ffmpeg"},{"id":"calesthio/OpenMontage/ffmpeg"}]},"slug":{"owner":"JosiahSiegel","repo":"claude-plugin-marketplace","skill":"ffmpeg-command-syntax"},"version":"10245717"}
