sframe.1 (1658B)
1 .TH SFRAME 1 "2026-02-20" "sframe 0.1" 2 .SH NAME 3 sframe \- extract unique frames from video files 4 .SH SYNOPSIS 5 .B sframe 6 .RB [ \-v ] 7 .RB [ \-t 8 .IR threshold ] 9 .RB [ \-f 10 .IR png | jpg ] 11 .RB [ \-o 12 .IR outdir ] 13 .IR video 14 .RI [ video... ] 15 .SH DESCRIPTION 16 .B sframe 17 (Simple Frame) extracts visually unique frames from video files for 18 research purposes. It uses perceptual hashing to detect and skip 19 duplicate or near-duplicate frames, saving only frames that differ 20 significantly from the previously saved frame. 21 .PP 22 Output is organized into subdirectories under the output directory, 23 one per video file. Frames are named with the video name and 24 timestamp: 25 .IR video-name-HH-MM-SS.mmm.png . 26 .SH OPTIONS 27 .TP 28 .BI \-t " threshold" 29 Perceptual hash threshold (0\(en64). Lower values are stricter, 30 meaning more frames are considered unique. 31 A value of 0 only removes exact duplicates. 32 Default: 8. 33 .TP 34 .BI \-f " format" 35 Output image format: 36 .B png 37 (default) or 38 .BR jpg . 39 .TP 40 .BI \-o " outdir" 41 Output directory. Default: 42 .IR ~/frames . 43 .TP 44 .B \-v 45 Print version and exit. 46 .SH EXAMPLES 47 Extract unique frames from a lecture recording: 48 .PP 49 .RS 50 sframe lecture.mp4 51 .RE 52 .PP 53 Use a stricter threshold and JPEG output: 54 .PP 55 .RS 56 sframe -t 4 -f jpg documentary.mkv 57 .RE 58 .PP 59 Process multiple videos into a custom directory: 60 .PP 61 .RS 62 sframe -o /tmp/research clip1.mp4 clip2.webm 63 .RE 64 .SH FILES 65 .TP 66 .I ~/frames/ 67 Default output directory. 68 .SH EXIT STATUS 69 .B sframe 70 exits 0 on success, 1 if any video could not be processed. 71 .SH DEPENDENCIES 72 FFmpeg libraries (libavformat, libavcodec, libavutil, libswscale), 73 libpng, libjpeg. 74 .SH AUTHORS 75 Kris Yotam. 76 .SH LICENSE 77 MIT License. See LICENSE file.