ffmpeg-mcp
Health Uyari
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- eval() — Dynamic code execution via eval() in ffmpeg_mcp/services/extract_frames.py
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
A Python package for media processing using FFmpeg and FastMCP.

ffmpeg-mcp 🎬⚡
A Python package for media processing using FFmpeg and FastMCP.
It enables building microservices that handle video/audio tasks with clean, reusable interfaces.
📖 Overview
This project provides a framework for handling media processing tasks using:
- FFmpeg — A powerful multimedia framework for processing audio and video files
- FastMCP — A high-performance framework for building microservices
🛠️ Available Tools
1. Metadata & Frames
get_video_metadataparam(s):
input_video_path: str
extract_framesparams:
input_video_path: str | Pathnumber_of_frames: intframe_timestamps: int (eg: 5s, 10s, 15s, ...)
2. Audio
extract_audioparam(s):
input_video_path: str
3. Video Scaling & Resizing
scale_videoparams:
input_video_path: strresolution: Optional[str]
4. Overlay Operations
overlay_imageparams:
input_video_path: stroverlay_image_path: strpositioning: Literal[top_left, bottom_left, top_right, bottom_right, center, top_center, bottom_center] = 'top_right'scale: tuple[int, int] | None = (100, 100)keep_audio: bool = Trueopacity: float | None = None (range 0.0–1.0)start_time: float = 0.0 (in seconds)duration: float | None = None (in seconds; None = until end of video)
overlays_videoparams:
input_video_path: stroverlay_video_path: strpositioning: Literal[top_left, bottom_left, top_right, bottom_right] = 'top_left'
5. Video Editing
clip_videoparams:
input_video_path: strstart_timestampduration: int
crop_videoparams:
input_video_pathsafe_crop: boolheight: intwidth: intx_offset: inty_offset: int
trim_and_concatenateparams:
input_video_pathnumber_of_trims: inttrim_timestamp: List[(start, end), (start, end), ...]
make_gifparams:
input_video_pathstart_timestampduration
6. Concatenation & Transitions
concatenate_videosparam(s):
file_list: list[Path]
normalize_video_clipsparams:
input_video_clips: List[str]resolution: tuple default(1280, 720)frame_rate: int default30crf: int default23audio_bitrate: str default128kpreset: str defaultfast
concat_clips_with_transitionparams:
input_video_clips: List[str]transition_types: str defaultfade(e.g., fade, wipeleft, rectcrop, coverup, etc.)transition_duration: float default2
🧰 Utilities
The utils folder contains helper functions and decorators to enhance the functionality and robustness of the media processing tools.
a. Decorators
validate_input_video_path
A decorator that checks if the video path exists, is non-empty, and is a valid video file.
This ensures that all video processing functions receive a valid input file.
📦 Requirements
- Python 3.12 or higher
- uv (package manager)
- FFmpeg installed on the system
🚀 Usage
The package can be used to build media processing microservices that leverage the power of FFmpeg through a Python interface.
1. Clone this repo
git clone [email protected]:yubraaj11/ffmpeg-mcp.git
2. Sync the project
uv sync --frozen
3. Use via MCP - Cline config
{
"mcpServers": {
"ffmpeg-mcp": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "uv",
"args": [
"--directory",
"/path/to/ffmpeg-mcp/ffmpeg_mcp",
"run",
"main.py"
],
"env": {
"PYTHONPATH": "/path/to/ffmpeg-mcp"
},
"transportType": "stdio"
}
}
}
📚 Dependencies
ffmpeg-python— Python bindings for FFmpegfastmcp— Framework for building microservicescolorlog— Colored logging outputfastapi— Web framework for building APIspydantic— Data validation and settings management
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi