sframe

Simple Frame — extract unique frames from videos
git clone git clone https://git.krisyotam.com/krisyotam/sframe.git
Log | Files | Refs | README | LICENSE

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.