Initializing... drag & drop files here
Supports: XCF
XCF is GIMP's native project format — it stores every layer, channel, path, selection, and parasite (metadata) tile-by-tile so an artist can resume editing at any time. It's a working-file format, not a delivery format: no browser plays it, no media library indexes it, and most non-GIMP tools can't open it. Matroska (MKV) is the open container for the opposite use case — long-form video playback with rich metadata. Converting XCF → MKV bakes a flattened render of each project into a video slideshow that any media player handles. Why MKV specifically over MP4 or WebM:
| Scenario | Merge Strategy | Duration | Resolution | Notes |
|---|---|---|---|---|
| Plex / Kodi art-library entry | Merge images | 5 s | 1920×1080 | Pick a quiet background colour matching the gallery look |
| Archival master of a series | Merge images | 8-10 s | Keep original | Use CRF 18 or lossless preset; preserves XCF detail |
| Per-piece showcase video | Video per image | 10-15 s | Keep original | One MKV per artwork, named after source XCF |
| Quick concept reel | Merge images | 2-3 s | 1280×720 | Lower CRF (23-26) for small file size |
| 4K monitor slideshow | Merge images | 6 s | 3840×2160 | High-detail output for retina / 4K display |
| Property | MKV (Matroska) | MP4 | WebM |
|---|---|---|---|
| Standard | Open, royalty-free (2002) | ISO/IEC 14496-14 (licensed pool) | Open, royalty-free (Google) |
| Audio tracks | Unlimited | Practical limit, single-track default | Limited |
| Subtitle tracks | Unlimited (SRT, ASS, PGS) | Limited (mov_text only) | WebVTT |
| Chapter markers | Native, well-supported | Supported but inconsistently read | Limited |
| Codec flexibility | Any video / audio codec | H.264, H.265, AAC mostly | VP8 / VP9 / AV1 + Vorbis / Opus |
| Native browser play | No | Safari, Chrome, Edge, Firefox | Chrome, Firefox, Edge |
| Native media-server play | Plex, Kodi, Jellyfin, Emby | All | Limited |
| Best for | Library archival, multi-track | Universal device sharing | Web embedding |
| Codec | Output size (relative) | Compatibility | Best for |
|---|---|---|---|
| H.264 | 100% (baseline) | Universal — every player and TV | Maximum compatibility |
| H.265 / HEVC | ~60% | Modern devices (2017+), most current TVs | Plex / Kodi libraries on modern hardware |
| AV1 | ~50% | 2022+ devices, modern browsers | Future-proof archival, smallest size |
| FFV1 / H.264 lossless | 200-400% (larger) | Niche players (VLC, FFmpeg-based) | Archival masters of artwork series |
No — the conversion flattens each XCF to a composite image before encoding. Layers, layer masks, channels, paths, guides, and parasites (GIMP metadata) are all baked into the visible render. MKV is a video container; it has no concept of GIMP's layer hierarchy. If you need to keep the editable structure, hold on to the original XCF files alongside the rendered MKV. The MKV is the delivery copy; the XCFs remain the working masters.
Depends on viewing context. Portfolio reels for social (where viewers swipe past): 2-3 seconds is plenty. Design-presentation videos (where viewers absorb each piece): 5-8 seconds. Archival or gallery slideshows (where each piece has gravity): 10-15 seconds. Per-image showcase videos (one piece per file): 10-30 seconds is typical. There's no rule — pick what gives the artwork enough breathing room for your audience.
Not in this single-step conversion — the output MKV is silent. To add audio, run a second step in a tool like FFmpeg or any video editor: open the rendered MKV, drop in a music track or voice-over, and remux. Because MKV supports multiple audio tracks, you can carry both a music score AND a commentary track and let viewers switch — a feature MP4 handles awkwardly.
Yes. MKV is a first-class citizen on all three. Plex transcodes MKV on the fly when a client device doesn't support the codec inside, but for H.264 / H.265 inside MKV, modern clients direct-play with no transcode. Kodi and Jellyfin handle MKV identically. For a portfolio video that lives in a media library, MKV is the more natural choice than MP4 — see MKV vs MP4 for converting between the two.
MKV's container overhead is small — the size is driven almost entirely by the codec and bitrate inside. If you used the Highest quality preset or a low CRF (e.g., 18), each frame is encoded at near-lossless detail, and the file balloons. For a slideshow, the visible frames are static (the same image for several seconds), which should compress extremely well — but only if you use a reasonable CRF (22-26) and let the encoder build long GOPs. If your file is huge, drop the CRF to 24 or pick Quality Preset: Medium. See Compress MKV for further size reduction.
MKV — for media libraries (Plex, Kodi, Jellyfin), archival use, lossless masters, and anything multi-track. MP4 — for universal sharing (every phone, browser, and TV plays MP4 natively); see XCF to MP4. WebM — for embedding directly in a website or web portfolio; see XCF to WebM. Pick MKV if the slideshow lives in a library, MP4 if you'll AirDrop it to a phone, WebM if it's going on your portfolio site.
Yes. Drop in an entire folder of XCFs and pick Merge images to render a single MKV containing all of them, or Video per image to render each XCF as its own MKV file. Settings apply uniformly across the batch (typical for a series). Watch browser memory if the XCFs are very large (50+ MP layered files) — process in groups of 50-100 if you hit memory pressure.
MKV chapter markers are native and well-supported across players (VLC, MPC-HC, Plex, Kodi all read them). MP4 technically supports chapters but real-world implementation varies — Plex users frequently report MP4 chapter markers being skipped while MKV chapters work cleanly. If you plan to mark each image as a chapter point in a post-process step, MKV is the lower-friction choice.
No. Each XCF is rendered as one static composite image and held for the duration you set. If you want layer-by-layer animation (e.g., for a GIF-style stop-motion of a layered illustration), export each layer to a separate PNG in GIMP first, then convert that PNG sequence — see XCF to GIF for a related animated workflow.