Skip to content

Video Frame Splitting #63

Closed
Closed

Description

@pleguen

What would you like Filee to do?
I would like Filee to support Video Frame Splitting / Extraction when converting a video file (MP4, MKV, MOV, etc.) into an image format (JPEG or PNG).

Instead of converting the video into another single video container, Filee should be able to explode/split the video file into its individual frames (a full sequence of images) and save them inside a dedicated subfolder named after the original video (e.g., /MyVideo_frames/).

Why / when would you use it?
I'm a photographer doing Focus Stacking (especially in macrophotography). Many modern cameras or setups record focus bracketing sequences as high-resolution 4K video files.

Currently, web-based tools fail or skip frames and doing it manually via VLC or scripts is tedious. Having this natively at a "right-click" distance in Filee would be a nice to have feature.

Ideas for how it could work
Since Filee already relies on FFmpeg under the hood for video conversions, the engine is already there! The application just needs to detect if the source is a video and the target output is selected as JPEG or PNG, then run a frame extraction command instead of a standard format conversion.

  1. Target Folder Creation: Automatically create a subfolder in the output directory to avoid flooding the user's workspace with thousands of images:
    [Output_Directory]/[Video_Name]_frames/

  2. Underlying FFmpeg command suggestion:

    ffmpeg -i "input.mp4" -q:v 2 "[Output_Directory]/[Video_Name]_frames/frame_%04d.jpg"

    (Note: -q:v 2 ensures high-quality JPEG extraction without massive compression artifacts, which is critical for photography and stacking software).

Related PR :

#101

Activity

  1. self-assigned this
    on Oct 12, 2026
  2. KnifeLemon commented on Oct 12, 2026

    @KnifeLemon
    Owner

    Thanks for this, and for already getting it working in your fork! I'd love to have it in Filee. Could you open the PR against KnifeLemon/Filee? It'll be merged under your name, and you'll be in the release notes as a contributor.

    A few changes it needs first, because video → JPG/PNG already has a job today:

    1. Make it a preset option, off by default: "Save every frame as images". Right now video → JPG/PNG saves one still frame, and other routes depend on it (video → WebP/PDF go through that single PNG). Splitting by default would turn a thumbnail preset into thousands of files and break those routes.
      • Option: MediaOptions in src/Filee.Core/Presets/Preset.cs
      • Checkbox: PresetEditorViewModel + PresetEditorView.axaml, with strings in Assets/i18n (en/ko/zh-CN; English for all three is fine and I'll translate).
    2. Keep what the still frame does: PosterFrame in MediaEncoding.cs applies SquarePixels (anamorphic video) and rotation. Please keep Video_gives_a_still_frame_for_images as it is, and add a new test for the sequence.
    3. Folder: take the path from step.Output and create a unique folder (MyVideo_frames, then MyVideo_frames (2)) instead of writing into an existing one.
    4. Nice to have for long 4K clips: "every Nth frame" or "frames per second".
    5. JPG quality can follow the preset's quality (Image.Quality) instead of a fixed -q:v 2.

    CONTRIBUTING.md has the build and test steps. Ping me if anything is unclear, and no rush.

  3. KnifeLemon commented on Oct 19, 2026

    @KnifeLemon
    Owner

    Saving every frame of a video is out in 1.12.0, thanks to @pleguen's PR #101: "Extract frames (PNG)" / "Extract frames (JPG)", or Save every frame of a video in a PNG or JPG preset (every frame or every Nth). Add the presets to a donut in Settings → Toolbar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions