Why sampling beats dumping every frame
Most vision tasks do not need 30 near-duplicate images per second. Sampling at 1–5 fps cuts storage, labeling cost, and redundancy while keeping temporal coverage. GetVideoFrames is built for that extract-frames-from-video-for-dataset pattern without sending footage to a third-party host.
Privacy for sensitive training footage
Medical, industrial, and internal product videos often cannot leave the laptop. Local extraction means you can still prepare frames for labeling tools while satisfying data-handling rules. Upload converters that keep files for ~1 hour are a non-starter for those teams.
PNG lossless, naming, and manifest.json
Prefer PNG when bounding boxes and masks must stay crisp. Keep sequential or timestamp-oriented names so train/val splits stay reproducible. The ZIP includes a manifest.json describing the exported set — a lightweight bridge before full COCO/YOLO packaging arrives in Pro.
FFmpeg alternative for automation
For servers and scripts, FFmpeg remains the standard. Use fps=1 or fps=1/5 in a filter graph when you need unattended jobs. When you want a visual, private pass first, stay here — then graduate to CLI with our complete FFmpeg frame guide.
Related format choices
Need lossless editing stills without dataset naming? Try video to PNG. Need lighter preview frames? Use video to JPG.