Pick the best frame from every second of video, for an extremely naive definition of best. There are two filtering options available. By default the script uses edge detection, however when using compressed image types, you may want to use image size as a fast a dirty approiximation for clarity.
$ ./framer.sh
Usage: framer.sh [-f <edges|size>] [-o <output_path>] [-t <jp[e]g|p[i]ng|tif[f]>] -i <input_file>
$ ./framer.sh -i input.mov # generate ping frames using image edges
$ ./framer.sh -f edges -t tif -i input.mov # generate tiff frames using image edges
$ ./framer.sh -f size -t jpg -i input.mov # generate jpeg frames using image size
$ ./framer.sh -f size -t png -i input.mov # generate ping frames using image size
- *nixish environment
- ffmpeg
- imagemagick
- GNU Parallel
-
Open
Terminal.apponmacOS, or equivalent on any other *nixish platform -
Install
Homebrewby following the instructions @ https://brew.sh/ -
In the terminal type:
$ brew install ffmpeg imagemagick parallel git -
Download
framerfrom https://github.com/ryanbooker/Framer/archive/master.zip, and unzip it in your home folder (or wherever you want to install it)Or in the terminal type:
git clone https://github.com/ryanbooker/Framer.git ~/framer -
Run
frameras described in the first section, above. Enjoy. :)
-
Open
Terminal.apponmacOS, or equivalent on any other *nixish platform -
Install
Nixby following the instructions @ https://nixos.org/nix/ -
Download
framerfrom https://github.com/ryanbooker/Framer/archive/master.zip, and unzip it in your home folder (or wherever you want to install it)Or in the terminal type:
git clone https://github.com/ryanbooker/Framer.git ~/framer -
Run
frameras described in the first section, above. Either via thenix-shellcommand$ nix-shell --run "./framer.sh -i input.mov"Or inside an actual
nix-shell$ nix-shell [nix-shell]$ ./framer.sh -i input.mov