Skip to content
CluelessCoder73Public

About

An app for lossless video editing with VirtualDub/VirtualDub2 cutlists, ensuring no frames are lost at cut points, even with proxy videos. Precisely adjusts ranges using FFmpeg frame logs to avoid keyframe limitations for frame-accurate cuts.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

180 Commits

Folders and files

Repository files navigation

VffEdit

Welcome to VffEdit, the centralized graphical orchestrator for your video editing and frame-accurate cutting pipeline. YouTube tutorial: https://youtu.be/z5bvJU8yRqI

image alt

VffEdit replaces scattered batch files and manual directory management with a single, unified interface (vffedit.pyw) that manages project states, executes background Python scripts, and pipes real-time outputs straight to an integrated console log. NOTE: FFmpeg must be added to Windows PATH (see "\docs\FFMPEG_NOOB_GUIDE.md").


📁 Directory Structure

For the orchestrator to route processes correctly, maintain the following directory layout:

VffEdit/
│
├── vffedit.pyw                  # The Master GUI Application (Run this!)
│
└── scripts/                     # Core backend processing suite
    ├── vdscript_range_adjuster.py
    ├── vdscript_vfr_info.py
    ├── vdscript_to_timecode_cutlist_generator.py
    ├── vdscript_to_cpf.py
    ├── vfr_detector.pyw
    └── ffmpeg_cutter.pyw


🚀 The VffEdit Workflow

1. Project Initialization & Verification

  • Select Project Folder: Point VffEdit to the folder containing your raw source videos.
  • Step 1: Extract Logs & Check VFR: Automatically runs background FFmpeg tasks to generate essential _frame_log.txt files for every video detected, then launches the VFR Detector utility to analyze variable frame rate edge-cases.

2. The VirtualDub2 Editing Phase

Click the VirtualDub2 Info button in the GUI for a quick reminder of the edit export steps:

  1. Open your video (or proxy) in VirtualDub2 and make your cuts.
  2. Navigate to File > Save processing settings... (Ctrl + S).
  3. Ensure "Include selection and edit list" is checked.
  4. Save the file in your project folder matching the exact pattern: [VideoName].[Extension].vdscript (e.g., vacation.mp4.vdscript).

3. Analysis & Adjustment

  • Adjust Parameters: Fine-tune your I-Frame Offset and Min Gap (seconds) dynamically from the GUI settings panel.
  • Step 2: Analyze & Adjust Cutlists: Fires off the sequential script pipeline:
  • Adjusts the original .vdscript cuts based on your offset/gap math.
  • Generates VFR-aware informational logs.
  • Outputs the finalized .cutlist.txt files.

4. Lossless Cutting

  • Step 3: Launch FFmpeg Cutter: Opens the standalone ffmpeg_cutter.pyw GUI utility to losslessly slice your videos using your newly tailored cutlists.

5. Merge

Once cutting is complete, use the built-in Merge button inside the FFmpeg Cutter:

  1. Click the Merge button in the FFmpeg Cutter toolbar to open the Merge Segments window.
  2. The Source Folder will be pre-filled with your current project folder (which contains the segment subfolders created during cutting).
  3. Select your Merged Output Folder — this is where all final merged files will be saved. This folder is remembered between sessions.
  4. The preview panel shows exactly which segments will be merged and what the output filenames will be. For example:
    [my_vacation/]
        my_vacation_part_001.mp4
        my_vacation_part_002.mp4
        my_vacation_part_003.mp4
      -> my_vacation_vffedited.mp4
    
  5. Click Merge All to losslessly concatenate all segment groups in one pass.

Note: Output filenames are automatically sanitized (special characters replaced with underscores) and suffixed with _vffedited to clearly distinguish them from source files.

  • Cleanup: Use the Cleanup button inside the FFmpeg Cutter to automatically sweep all the leftover files (cutlists, log files etc) into a delete folder to keep your workspace tidy.

⚙️ Requirements

  • Python 3.x
  • FFmpeg
  • VirtualDub2 (build 44282 or similar)
  • HandBrake (For proxy generation)

About

An app for lossless video editing with VirtualDub/VirtualDub2 cutlists, ensuring no frames are lost at cut points, even with proxy videos. Precisely adjusts ranges using FFmpeg frame logs to avoid keyframe limitations for frame-accurate cuts.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages