A small Python tool for cutting videos, for example WMV files from FACS or study material, and exporting them as MP4 files.
There are intentionally only two usable versions:
- Single Video Cutter – select one video manually, enter start/end time, and save it as MP4.
- Batch Cutter from Excel/CSV – automatically cut many videos based on a table.
Recommended: Python 3.10 or newer.
cd facs-batch-video-cutterWindows:
python -m venv .venv
.venv\Scripts\activatemacOS/Linux:
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtStart with:
python app_single_video.pyOr on Windows, double-click:
run_single_video.bat
- Select a video file (
.wmv,.mp4,.mov,.avi,.mkv,.m4v). - Select an output folder.
- Enter start and end time.
- Optionally change the output name and bitrate.
- Click
Cut video.
Supported time formats:
00:01:23
01:02:03
83
Start with:
python app_batch_excel.pyOr on Windows, double-click:
run_batch_excel.bat
For videos that are all located directly in one folder:
| Videoname | Startzeit_Sekunden | Endzeit_Sekunden |
|---|---|---|
| example_01.wmv | 12 | 38 |
| example_02.wmv | 75 | 110 |
Example file: examples/batch_template.csv
| Videoname | Startzeit | Endzeit |
|---|---|---|
| example_01.wmv | 00:00:12 | 00:00:38 |
Example file: examples/batch_template_timecode.csv
For cases where videos are stored in subfolders, for example one folder per participant:
| Ordnername | Videoname | Startzeit_Sekunden | Endzeit_Sekunden |
|---|---|---|---|
| VP001 | recording_01.wmv | 12 | 38 |
| VP002 | recording_01.wmv | 75 | 110 |
Example file: examples/batch_template_subfolders.csv
The video base folder is the folder that contains the subfolders.
Example:
Videos/
├── VP001/
│ └── recording_01.wmv
└── VP002/
└── recording_01.wmv
To keep older Excel files compatible, the Batch Cutter also recognizes:
WMV_Nameinstead ofVideonameStartzeit_Stunden,Startzeit_Minuten,Startzeit_SekundenEndzeit_Stunden,Endzeit_Minuten,Endzeit_Sekunden- optional
Ordnername
The bitrate roughly determines video quality and file size.
Recommendations:
| Purpose | Bitrate |
|---|---|
| Good quality | 5000k |
| Smaller files | 1000k |
| Strong compression | 800k |
Only needed if the program should run on a Windows computer without Python installed.
pip install -r requirements-dev.txt
pyinstaller --onefile --windowed --name FACS-Single-Video-Cutter app_single_video.py
pyinstaller --onefile --windowed --name FACS-Batch-Cutter app_batch_excel.pyThe finished .exe files will be located in dist/.
This project is released under a custom Academic Use License.
Students, researchers, supervisors, and academic staff may use the software free of charge for non-commercial academic purposes, including theses, dissertations, research projects, teaching, and study-related data processing.
Commercial use, redistribution, and publishing modified versions are not permitted without prior written permission.
Check whether the file name in the table is written exactly like the video file name, including the file extension, for example .wmv.
The end time is smaller than or equal to the start time.
This can happen with large videos. The program is still working in the background.
Optionally install the project in development mode:
pip install -e .Quick import test:
PYTHONPATH=src python -c "from facs_batch_video_cutter.core import parse_time; print(parse_time('00:01:23'))"