Makefile - blind - suckless command-line video editing utility
 (HTM) git clone git://git.suckless.org/blind
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       Makefile (1760B)
       ---
            1 INPUT_VIDEO = <please select a video file as INPUT_VIDEO>
            2 
            3 SHELL = bash
            4 # We need Bash's process substitution operator >()
            5 # because we want to convert the files back to a
            6 # cooked format, because raw takes a serious amount
            7 # of space. It is of course also possible to use
            8 # FIFO:s (if you know what you are doing).
            9 
           10 DRAFT = -d
           11 # Useful for better performance when not working
           12 # with colours or not caring about colours.
           13 
           14 FFMPEG_ARGS = -c:v libx264 -preset veryslow -crf 0 -pix_fmt yuv444p
           15 #             ↑~~~~~~~~~~~ ↑~~~~~~~~~~~~~~~ ↑~~~~~~~~~~~~~~~~~~~~~~
           16 #             │            │                │
           17 #             │            │                └──── Lossless
           18 #             │            │
           19 #             │            └──── High compression
           20 #             │
           21 #             └──── H.264, a lossless-capable codec
           22 
           23 FRAME_1 = 10
           24 FRAME_2 = 20
           25 FRAME_3 = 30
           26 FRAME_4 = 40
           27 FRAME_5 = end
           28 
           29 1.mkv 2.mkv 3.mkv 4.mkv 5.mkv: $(INPUT_VIDEO)
           30         framerate=$$(ffprobe -v quiet -show_streams -select_streams v - < "$(INPUT_VIDEO)" | \
           31                      grep '^r_frame_rate=' | cut -d = -f 2) && \
           32         ../../blind-from-video -L $(DRAFT) "$(INPUT_VIDEO)" - | \
           33         ../../blind-split -L >(../../blind-to-video $(DRAFT) $${framerate} $(FFMPEG_ARGS) 1.mkv) $(FRAME_1) \
           34                              >(../../blind-to-video $(DRAFT) $${framerate} $(FFMPEG_ARGS) 2.mkv) $(FRAME_2) \
           35                              >(../../blind-to-video $(DRAFT) $${framerate} $(FFMPEG_ARGS) 3.mkv) $(FRAME_3) \
           36                              >(../../blind-to-video $(DRAFT) $${framerate} $(FFMPEG_ARGS) 4.mkv) $(FRAME_4) \
           37                              >(../../blind-to-video $(DRAFT) $${framerate} $(FFMPEG_ARGS) 5.mkv) $(FRAME_5)
           38 
           39 clean:
           40         -rm 1.mkv 2.mkv 3.mkv 4.mkv 5.mkv
           41 
           42 .PHONY: clean