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