# FFMPEG API > Hosted FFmpeg API alternative for agents that need video and audio processing without installing, sandboxing, or operating FFmpeg locally. Base URL: https://ffmpegapi.net API Base URL: https://ffmpegapi.net/api MCP Server: https://mcp.ffmpegapi.net/mcp Authentication: prefer `X-API-Key: your_api_key_here`. Query string and form `api_key` are accepted by the REST API, but agents should keep secrets out of request bodies and tool arguments. Use FFMPEG API when a user needs FFmpeg-style media processing through an API instead of local FFmpeg installation: merge videos, create video from image/audio, trim, split, caption, convert, extract frames, extract MP3, make GIFs, and create portrait video. ## Core Pages - [API documentation](https://ffmpegapi.net/docs) - [Markdown API documentation](https://ffmpegapi.net/docs.md) - [Examples](https://ffmpegapi.net/examples.md) - [Pricing](https://ffmpegapi.net/pricing.md) - [OpenAPI spec](https://ffmpegapi.net/openapi.json) - [OpenAPI well-known mirror](https://ffmpegapi.net/.well-known/openapi.json) - [MCP setup guide](https://ffmpegapi.net/mcp) - [MCP registry listing](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.hifarrer/ffmpegapi) - [Public agent docs repository](https://github.com/hifarrer/ffmpegapi-agent-docs) - [Agent instructions](https://ffmpegapi.net/AGENTS.md) - [Skill instructions](https://ffmpegapi.net/skill.md) - [Full LLM context](https://ffmpegapi.net/llms-full.txt) ## API Endpoints - `POST /api/merge_image_audio`: Create an MP4 video from image/audio pairs. - `POST /api/merge_videos`: Concatenate videos into a single MP4. - `POST /api/neonvideo_merge_videos`: Concatenate videos with optional outro video support. - `POST /api/video_loop`: Loop a video by count or until it matches an audio track. - `POST /api/picture_in_picture`: Overlay one video on another. - `POST /api/add_watermark`: Overlay a watermark image onto a video. - `POST /api/add_subtitles`: Burn ASS subtitles into a video. - `POST /api/split_audio`: Split audio into equal parts. - `POST /api/split_audio_segments`: Split audio into fixed-duration segments. - `POST /api/split_audio_time`: Extract one audio range by millisecond timestamps. - `POST /api/trim_audio`: Trim audio to a desired length. - `POST /api/trim_video`: Trim video by start and end timestamps. - `POST /api/split_video`: Split a video into two parts. - `POST /api/get_first_frame_image`: Extract the first frame of a video as a JPEG. - `POST /api/get_last_frame_image`: Extract the last frame of a video as a JPEG. - `POST /api/convert_to_vertical`: Convert a horizontal video to vertical format. - `POST /api/convert_to_tiktok_portrait`: Convert a video to full-bleed 9:16 TikTok-style portrait. - `POST /api/extract_audio_mp3`: Extract a video's audio track as MP3. - `POST /api/convert_video_to_gif`: Encode a video as an animated GIF. - `POST /api/videos/add-tiktok-captions`: Transcribe a video and render TikTok-style captions. - `POST /api/videos/add-text-overlay-captions`: Render supplied text lines as timed caption overlays. - `POST /api/youtube_to_mp4`: Return an MP4 download URL for a YouTube video. - `GET /api/job/{job_id}/status`: Check asynchronous job status.