Welcome to VffEdit, the centralized graphical orchestrator for your video editing and frame-accurate cutting pipeline. YouTube tutorial: https://youtu.be/z5bvJU8yRqI
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").
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
- 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.txtfiles for every video detected, then launches the VFR Detector utility to analyze variable frame rate edge-cases.
Click the VirtualDub2 Info button in the GUI for a quick reminder of the edit export steps:
- Open your video (or proxy) in VirtualDub2 and make your cuts.
- Navigate to
File > Save processing settings...(Ctrl + S). - Ensure "Include selection and edit list" is checked.
- Save the file in your project folder matching the exact pattern:
[VideoName].[Extension].vdscript(e.g.,vacation.mp4.vdscript).
- 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
.vdscriptcuts based on your offset/gap math. - Generates VFR-aware informational logs.
- Outputs the finalized
.cutlist.txtfiles.
- Step 3: Launch FFmpeg Cutter: Opens the standalone
ffmpeg_cutter.pywGUI utility to losslessly slice your videos using your newly tailored cutlists.
Once cutting is complete, use the built-in Merge button inside the FFmpeg Cutter:
- Click the Merge button in the FFmpeg Cutter toolbar to open the Merge Segments window.
- The Source Folder will be pre-filled with your current project folder (which contains the segment subfolders created during cutting).
- Select your Merged Output Folder — this is where all final merged files will be saved. This folder is remembered between sessions.
- 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 - 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
_vffeditedto 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
deletefolder to keep your workspace tidy.
- Python 3.x
- FFmpeg
- VirtualDub2 (build 44282 or similar)
- HandBrake (For proxy generation)
