Big hair, mullets and acid-washed jeans...the 1980's introduced us to a number of iconic treasures. But, for me, and many young teenage boys I yearned for the iconic "throaty V8's" that took center stage during the nightly broadcasts. My hand-painted Schwinn was magically transformed by imagination as we cruised around the neighborhood.
With that memory in mind, I collected a number of these marvelous machines (in a variety of formats/resolutions) and using the magic of FFmpeg created a video.
In past posts I've cheered the use of 'makefiles' with FFmpeg, believing they are a great match for one another; Atypical Uses for Makefiles
A series of videos are first downloaded from YouTube, sectioned into short clips (where the automobile is taking center stage), stitching them together, re-adding a soundtrack until we have N videos, one for each TV series. Then, these videos are stitched together while applying a uniform scaling giving us one final video with them all.
While this could be accomplished with a single, monstrous Makefile, I felt it was easier to organize each tv series into it's own makefile (e.g. makefile.stingray), each included into the organizing makefile (e.g. Makefile).
cat -n Makefile
1 ClipW=1280
2 ClipH=720
3 Fps=30/1
4 include makefile.stingray
5 include makefile.miamivice
6 include makefile.hardcastle
7 include makefile.ateam
8 include makefile.fallguy
9 include makefile.knightrider
10 include makefile.airwolf
11 include makefile.dukes
12 include makefile.magnum
13
14 all: video.mp4
15
16 #video.mp4: stingray-scaled.mp4 miamiVice-scaled.mp4 hardcastle-scaled.mp4 aTeam-scaled.mp4 fallGuy-scaled.mp4 knightRider-scaled.mp4 airwolf-scaled.mp4 dukes-scaled.mp4 magnum-scaled.mp4
17 video.mp4: stingray-scaled.mp4 miamiVice-scaled.mp4 hardcastle-scaled.mp4 aTeam-scaled.mp4 fallGuy-scaled.mp4 knightRider-scaled.mp4 airwolf-scaled.mp4 dukes-scaled.mp4 magnum-scaled.mp4
18 ${SH} rm $@.txt | true
19 ${SH} for f in $^; do echo "file '$$f'" >> $@.txt; done
20 ${SH} ffmpeg -y -f concat -i $@.txt $@
21 ${SH} mplayer $@
22
23
24 go: stingray-scaled.mp4
25
26 %-scaled.mp4: %.mp4
27 # ${SH} ffmpeg -y -i $< -filter_complex "scale=${ClipW}:-2,scale=-2:${ClipH},pad=${ClipW}:${ClipH}:(ow-iw)/2:(oh-ih)/2" -r ${Fps} -acodec copy $@
28 ${SH} ffmpeg -y -i $< -filter_complex "scale=${ClipW}:-2,scale=-2:${ClipH},scale=${ClipW}:${ClipH},pad=${ClipW}:${ClipH}:(ow-iw)/2:(oh-ih)/2" -r ${Fps} -acodec copy $@
29
30 littleClean:
31 ${SH} find . -name "*.mp4" ! -name 'yt-*.mp4' -delete
32 ${RM} *.mp3
33 ${RM} *.txt
34
Pay special attention to the 'scaled' target, this can take a variety of video resolutions (equal-to or smaller-than 1280x720) and scales them to 1280x720 w/padding. It's always a hassle wrangling videos into a uniform size so they can be concatenated, these makefile targets do precisely that.
In an attempt to be thorough, I'll slap in the subordinate makefiles below, each snags a youtube video(s), creates a clip, extracts the theme song, concatenates the clips together and re-applys the audio channel.
$ cat -n makefile.stingray
1 all:
2
3 yt-stingray.mp4:
4 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=aXTk9VPZ4Gg
5
6 stingray.mp3: yt-stingray.mp4
7 ${SH} ffmpeg -i $< -ss 35 -t 85 -vn -strict -2 $@
8
9 sr-clip01.mp4: yt-stingray.mp4
10 ${SH} ffmpeg -i $< -ss 4 -t 2 -strict -2 $@
11
12 sr-clip02.mp4: yt-stingray.mp4
13 ${SH} ffmpeg -i $< -ss 26 -t 1.0 -strict -2 $@
14
15 sr-clip03.mp4: yt-stingray.mp4
16 ${SH} ffmpeg -i $< -ss 33.30 -t 1.0 -strict -2 $@
17
18 sr-clip04.mp4: yt-stingray.mp4
19 ${SH} ffmpeg -i $< -ss 37.00 -t 16.0 -strict -2 $@
20
21 sr-clip05.mp4: yt-stingray.mp4
22 ${SH} ffmpeg -i $< -ss 61.50 -t 1.0 -strict -2 $@
23
24 sr-clip06.mp4: yt-stingray.mp4
25 ${SH} ffmpeg -i $< -ss 1643.00 -t 6.0 -strict -2 $@
26
27 sr-clip07.mp4: yt-stingray.mp4
28 ${SH} ffmpeg -i $< -ss 1874.50 -t 3.0 -strict -2 $@
29
30 sr-clip08.mp4: yt-stingray.mp4
31 ${SH} ffmpeg -i $< -ss 2083.00 -t 6.0 -strict -2 $@
32
33 sr-clip09.mp4: yt-stingray.mp4
34 ${SH} ffmpeg -i $< -ss 2126.50 -t 10.5 -strict -2 $@
35
36 sr-clip10.mp4: yt-stingray.mp4
37 ${SH} ffmpeg -i $< -ss 2142.00 -t 2.0 -strict -2 $@
38
39 sr-clip11.mp4: yt-stingray.mp4
40 ${SH} ffmpeg -i $< -ss 2149.00 -t 6.0 -strict -2 $@
41
42 sr-clip12.mp4: yt-stingray.mp4
43 ${SH} ffmpeg -i $< -ss 2243.00 -t 1.6 -strict -2 $@
44
45 sr-clip13.mp4: yt-stingray.mp4
46 ${SH} ffmpeg -i $< -ss 2246.00 -t 12.0 -strict -2 $@
47
48 sr-clip14.mp4: yt-stingray.mp4
49 ${SH} ffmpeg -i $< -ss 2260.00 -t 10.0 -strict -2 $@
50
51 sr-clip15.mp4: yt-stingray.mp4
52 ${SH} ffmpeg -i $< -ss 2278.75 -t 1.0 -strict -2 $@
53
54 sr-clip16.mp4: yt-stingray.mp4
55 ${SH} ffmpeg -i $< -ss 2282.0 -t 2.5 -strict -2 $@
56
57 sr-clip17.mp4: yt-stingray.mp4
58 ${SH} ffmpeg -i $< -ss 2285.5 -t 1.0 -strict -2 $@
59
60 sr-clip18.mp4: yt-stingray.mp4
61 ${SH} ffmpeg -i $< -ss 2290.5 -t 0.25 -strict -2 $@
62
63 sr-clip19.mp4: yt-stingray.mp4
64 ${SH} ffmpeg -i $< -ss 2293.0 -t 0.50 -strict -2 $@
65
66 sr-clip20.mp4: yt-stingray.mp4
67 ${SH} ffmpeg -i $< -ss 2298.0 -t 1.00 -strict -2 $@
68
69 sr-clip21.mp4: yt-stingray.mp4
70 ${SH} ffmpeg -i $< -ss 2304.0 -t 3.00 -strict -2 $@
71
72 sr-clip22.mp4: yt-stingray.mp4
73 ${SH} ffmpeg -i $< -ss 2310.0 -t 2.00 -strict -2 $@
74
75 sr-clip23.mp4: yt-stingray.mp4
76 ${SH} ffmpeg -i $< -ss 2317.0 -t 4.00 -strict -2 $@
77
78 sr-clip24.mp4: yt-stingray.mp4
79 ${SH} ffmpeg -i $< -ss 2325.0 -t 2.00 -strict -2 $@
80
81 sr-clip25.mp4: yt-stingray.mp4
82 ${SH} ffmpeg -i $< -ss 2328.5 -t 2.00 -strict -2 $@
83
84 sr-clip26.mp4: yt-stingray.mp4
85 ${SH} ffmpeg -i $< -ss 2332.0 -t 0.50 -strict -2 $@
86
87 sr-clip27.mp4: yt-stingray.mp4
88 ${SH} ffmpeg -i $< -ss 2334.0 -t 1.00 -strict -2 $@
89
90 sr-clip28.mp4: yt-stingray.mp4
91 ${SH} ffmpeg -i $< -ss 2336.0 -t 1.00 -strict -2 $@
92
93 sr-clip29.mp4: yt-stingray.mp4
94 ${SH} ffmpeg -i $< -ss 2354.0 -t 1.50 -strict -2 $@
95
96 sr-clip30.mp4: yt-stingray.mp4
97 ${SH} ffmpeg -i $< -ss 2361.0 -t 14.00 -strict -2 $@
98
99 sr-videoAn.mp4: sr-clip01.mp4 sr-clip04.mp4 sr-clip02.mp4 sr-clip03.mp4 sr-clip08.mp4 sr-clip09.mp4 sr-clip11.mp4 sr-clip12.mp4 sr-clip13.mp4 sr-clip15.mp4 sr-clip16.mp4 sr-clip17.mp4 sr-clip18.mp4 sr-clip19.mp4 sr-clip20.mp4 sr-clip22.mp4 sr-clip24.mp4 sr-clip27.mp4 sr-clip28.mp4 sr-clip29.mp4 sr-clip30.mp4
100 ${SH} for f in `echo $^`; do echo "file '$$f'" >> $@.txt; done;
101 ${SH} ffmpeg -y -f concat -i $@.txt -an $@
102 ${RM} $@.txt
103
104 stingray.mp4: sr-videoAn.mp4 stingray.mp3
105 ${SH} ffmpeg -i $< -i $(shell echo $^ | cut -f 2 -d ' ') -strict -2 $@
106
107 clean:
108 ${RM} sr*.mp4
$ cat -n makefile.stingray
1 all:
2
3 yt-stingray.mp4:
4 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=aXTk9VPZ4Gg
5
6 stingray.mp3: yt-stingray.mp4
7 ${SH} ffmpeg -i $< -ss 35 -t 85 -vn -strict -2 $@
8
9 sr-clip01.mp4: yt-stingray.mp4
10 ${SH} ffmpeg -i $< -ss 4 -t 2 -strict -2 $@
11
12 sr-clip02.mp4: yt-stingray.mp4
13 ${SH} ffmpeg -i $< -ss 26 -t 1.0 -strict -2 $@
14
15 sr-clip03.mp4: yt-stingray.mp4
16 ${SH} ffmpeg -i $< -ss 33.30 -t 1.0 -strict -2 $@
17
18 sr-clip04.mp4: yt-stingray.mp4
19 ${SH} ffmpeg -i $< -ss 37.00 -t 16.0 -strict -2 $@
20
21 sr-clip05.mp4: yt-stingray.mp4
22 ${SH} ffmpeg -i $< -ss 61.50 -t 1.0 -strict -2 $@
23
24 sr-clip06.mp4: yt-stingray.mp4
25 ${SH} ffmpeg -i $< -ss 1643.00 -t 6.0 -strict -2 $@
26
27 sr-clip07.mp4: yt-stingray.mp4
28 ${SH} ffmpeg -i $< -ss 1874.50 -t 3.0 -strict -2 $@
29
30 sr-clip08.mp4: yt-stingray.mp4
31 ${SH} ffmpeg -i $< -ss 2083.00 -t 6.0 -strict -2 $@
32
33 sr-clip09.mp4: yt-stingray.mp4
34 ${SH} ffmpeg -i $< -ss 2126.50 -t 10.5 -strict -2 $@
35
36 sr-clip10.mp4: yt-stingray.mp4
37 ${SH} ffmpeg -i $< -ss 2142.00 -t 2.0 -strict -2 $@
38
39 sr-clip11.mp4: yt-stingray.mp4
40 ${SH} ffmpeg -i $< -ss 2149.00 -t 6.0 -strict -2 $@
41
42 sr-clip12.mp4: yt-stingray.mp4
43 ${SH} ffmpeg -i $< -ss 2243.00 -t 1.6 -strict -2 $@
44
45 sr-clip13.mp4: yt-stingray.mp4
46 ${SH} ffmpeg -i $< -ss 2246.00 -t 12.0 -strict -2 $@
47
48 sr-clip14.mp4: yt-stingray.mp4
49 ${SH} ffmpeg -i $< -ss 2260.00 -t 10.0 -strict -2 $@
50
51 sr-clip15.mp4: yt-stingray.mp4
52 ${SH} ffmpeg -i $< -ss 2278.75 -t 1.0 -strict -2 $@
53
54 sr-clip16.mp4: yt-stingray.mp4
55 ${SH} ffmpeg -i $< -ss 2282.0 -t 2.5 -strict -2 $@
56
57 sr-clip17.mp4: yt-stingray.mp4
58 ${SH} ffmpeg -i $< -ss 2285.5 -t 1.0 -strict -2 $@
59
60 sr-clip18.mp4: yt-stingray.mp4
61 ${SH} ffmpeg -i $< -ss 2290.5 -t 0.25 -strict -2 $@
62
63 sr-clip19.mp4: yt-stingray.mp4
64 ${SH} ffmpeg -i $< -ss 2293.0 -t 0.50 -strict -2 $@
65
66 sr-clip20.mp4: yt-stingray.mp4
67 ${SH} ffmpeg -i $< -ss 2298.0 -t 1.00 -strict -2 $@
68
69 sr-clip21.mp4: yt-stingray.mp4
70 ${SH} ffmpeg -i $< -ss 2304.0 -t 3.00 -strict -2 $@
71
72 sr-clip22.mp4: yt-stingray.mp4
73 ${SH} ffmpeg -i $< -ss 2310.0 -t 2.00 -strict -2 $@
74
75 sr-clip23.mp4: yt-stingray.mp4
76 ${SH} ffmpeg -i $< -ss 2317.0 -t 4.00 -strict -2 $@
77
78 sr-clip24.mp4: yt-stingray.mp4
79 ${SH} ffmpeg -i $< -ss 2325.0 -t 2.00 -strict -2 $@
80
81 sr-clip25.mp4: yt-stingray.mp4
82 ${SH} ffmpeg -i $< -ss 2328.5 -t 2.00 -strict -2 $@
83
84 sr-clip26.mp4: yt-stingray.mp4
85 ${SH} ffmpeg -i $< -ss 2332.0 -t 0.50 -strict -2 $@
86
87 sr-clip27.mp4: yt-stingray.mp4
88 ${SH} ffmpeg -i $< -ss 2334.0 -t 1.00 -strict -2 $@
89
90 sr-clip28.mp4: yt-stingray.mp4
91 ${SH} ffmpeg -i $< -ss 2336.0 -t 1.00 -strict -2 $@
92
93 sr-clip29.mp4: yt-stingray.mp4
94 ${SH} ffmpeg -i $< -ss 2354.0 -t 1.50 -strict -2 $@
95
96 sr-clip30.mp4: yt-stingray.mp4
97 ${SH} ffmpeg -i $< -ss 2361.0 -t 14.00 -strict -2 $@
98
99 sr-videoAn.mp4: sr-clip01.mp4 sr-clip04.mp4 sr-clip02.mp4 sr-clip03.mp4 sr-clip08.mp4 sr-clip09.mp4 sr-clip11.mp4 sr-clip12.mp4 sr-clip13.mp4 sr-clip15.mp4 sr-clip16.mp4 sr-clip17.mp4 sr-clip18.mp4 sr-clip19.mp4 sr-clip20.mp4 sr-clip22.mp4 sr-clip24.mp4 sr-clip27.mp4 sr-clip28.mp4 sr-clip29.mp4 sr-clip30.mp4
100 ${SH} for f in `echo $^`; do echo "file '$$f'" >> $@.txt; done;
101 ${SH} ffmpeg -y -f concat -i $@.txt -an $@
102 ${RM} $@.txt
103
104 stingray.mp4: sr-videoAn.mp4 stingray.mp3
105 ${SH} ffmpeg -i $< -i $(shell echo $^ | cut -f 2 -d ' ') -strict -2 $@
106
107 clean:
108 ${RM} sr*.mp4
$ cat -n makefile.miamivice
1 yt-miamiVice01.mp4:
2 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=JmFyFqTJprg
3
4 yt-miamiVice02.mp4:
5 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=dEjXPY9jOx8
6
7 miamiVice.mp3: yt-miamiVice02.mp4
8 ${SH} ffmpeg -i $< -vn $@
9
10 #56-78
11 mv-clip01.mp4: yt-miamiVice01.mp4
12 ${SH} ffmpeg -i $< -ss 56 -t 22 $@
13 ${SH} mplayer $@
14
15 #84.5-87
16 mv-clip02.mp4: yt-miamiVice01.mp4
17 ${SH} ffmpeg -i $< -ss 84.5 -t 2.5 $@
18 ${SH} mplayer $@
19
20 #114-118
21 mv-clip03.mp4: yt-miamiVice01.mp4
22 ${SH} ffmpeg -i $< -ss 114 -t 4 $@
23 ${SH} mplayer $@
24
25 #122-127
26 mv-clip04.mp4: yt-miamiVice01.mp4
27 ${SH} ffmpeg -i $< -ss 122 -t 5 $@
28 ${SH} mplayer $@
29
30 #131-142
31 mv-clip05.mp4: yt-miamiVice01.mp4
32 ${SH} ffmpeg -i $< -ss 131 -t 11 $@
33 ${SH} mplayer $@
34
35 #153-160
36 mv-clip06.mp4: yt-miamiVice01.mp4
37 ${SH} ffmpeg -i $< -ss 154.5 -t 7 $@
38 ${SH} mplayer $@
39
40 #169-174
41 mv-clip07.mp4: yt-miamiVice01.mp4
42 ${SH} ffmpeg -i $< -ss 169 -t 5 $@
43 ${SH} mplayer $@
44
45 #183-190
46 mv-clip08.mp4: yt-miamiVice01.mp4
47 ${SH} ffmpeg -i $< -ss 183 -t 7 $@
48 ${SH} mplayer $@
49
50 #193-194
51 mv-clip09.mp4: yt-miamiVice01.mp4
52 ${SH} ffmpeg -i $< -ss 193 -t 1 $@
53 ${SH} mplayer $@
54
55 #198-204
56 mv-clip10.mp4: yt-miamiVice01.mp4
57 ${SH} ffmpeg -i $< -ss 198 -t 5 $@
58 ${SH} mplayer $@
59
60 #254-265
61 mv-clip11.mp4: yt-miamiVice01.mp4
62 ${SH} ffmpeg -i $< -ss 254 -t 11 $@
63 ${SH} mplayer $@
64
65 mv-videoAn.mp4: mv-clip01.mp4 mv-clip04.mp4 mv-clip02.mp4 mv-clip03.mp4 mv-clip08.mp4 mv-clip09.mp4 mv-clip11.mp4
66 ${SH} for f in `echo $^`; do echo "file '$$f'" >> $@.txt; done;
67 ${SH} ffmpeg -y -f concat -i $@.txt -an $@
68 ${RM} $@.txt
69
70 miamiVice.mp4: mv-videoAn.mp4 miamiVice.mp3
71 ${SH} ffmpeg -i $< -i $(shell echo $^ | cut -f 2 -d ' ') -strict -2 $@
72
73
$ cat -n makefile.hardcastle
1 yt-hardcastle01.mp4:
2 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=_oHpWw7L3d4
3
4
5 yt-hardcastle02.mp4:
6 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=J2_G1CNaeFs
7
8 hardcastle.mp3: yt-hardcastle01.mp4
9 ${SH} ffmpeg -i $< -ss 8.3 -t 91.6 -vn -strict -2 $@
10
11 hm-clip01.mp4: yt-hardcastle01.mp4
12 ${SH} ffmpeg -i $< -ss 8.3 -t 16.00 -strict -2 $@
13
14 hm-clip02.mp4: yt-hardcastle01.mp4
15 ${SH} ffmpeg -i $< -ss 82.3 -t 0.5 -strict -2 $@
16
17 hm-clip03.mp4: yt-hardcastle01.mp4
18 ${SH} ffmpeg -i $< -ss 89.5 -t 12.0 -strict -2 $@
19
20 hm-clip04.mp4: yt-hardcastle02.mp4
21 ${SH} ffmpeg -i $< -ss 31.5 -t 3.5 -strict -2 $@
22
23 hm-clip05.mp4: yt-hardcastle02.mp4
24 ${SH} ffmpeg -i $< -ss 40.0 -t 3.0 -strict -2 $@
25
26 hm-clip06.mp4: yt-hardcastle02.mp4
27 ${SH} ffmpeg -i $< -ss 51.0 -t 2.0 -strict -2 $@
28
29 hm-clip07.mp4: yt-hardcastle02.mp4
30 ${SH} ffmpeg -i $< -ss 68.5 -t 7.0 -strict -2 $@
31
32 hm-clip08.mp4: yt-hardcastle02.mp4
33 ${SH} ffmpeg -i $< -ss 84.5 -t 25.5 -strict -2 $@
34
35 hm-clip09.mp4: yt-hardcastle02.mp4
36 ${SH} ffmpeg -i $< -ss 116.0 -t 8.0 -strict -2 $@
37
38 hm-clip10.mp4: yt-hardcastle02.mp4
39 ${SH} ffmpeg -i $< -ss 133.0 -t 5.0 -strict -2 $@
40
41 hm-clip11.mp4: yt-hardcastle02.mp4
42 ${SH} ffmpeg -i $< -ss 143.5 -t 5.0 -strict -2 $@
43
44 hm-videoAn.mp4: hm-clip01.mp4 hm-clip02.mp4 hm-clip04.mp4 hm-clip05.mp4 hm-clip06.mp4 hm-clip07.mp4 hm-clip08.mp4 hm-clip09.mp4 hm-clip10.mp4 hm-clip11.mp4 hm-clip03.mp4
45 ${SH} for f in `echo $^`; do echo "file '$$f'" >> $@.txt; done;
46 ${SH} ffmpeg -y -f concat -i $@.txt -an $@
47 ${RM} $@.txt
48
49 hardcastle.mp4: hm-videoAn.mp4 hardcastle.mp3
50 ${SH} ffmpeg -i $< -i $(shell echo $^ | cut -f 2 -d ' ') -strict -2 $@
51
52
53
$ cat -n makefile.ateam
1 yt-aTeam00.mp4:
2 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=wyz_2DEah4o
3
4 yt-aTeam01.mp4:
5 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=orxNlmQSMg8
6
7 yt-aTeam02.mp4:
8 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=nn5gY7LK8Mc
9
10 yt-aTeam03.mp4:
11 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=ZgUBogpF-M8
12
13 yt-aTeam04.mp4:
14 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=TP0LowFsi9Q
15
16 yt-aTeam05.mp4:
17 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=7BcPko1RYv0
18
19 at-clip01.mp4: yt-aTeam01.mp4
20 ${SH} ffmpeg -i $< -ss 0 -t 10 -strict -2 $@
21
22 at-clip02.mp4: yt-aTeam01.mp4
23 ${SH} ffmpeg -i $< -ss 13 -t 9 -strict -2 $@
24
25 at-clip03.mp4: yt-aTeam02.mp4
26 ${SH} ffmpeg -i $< -ss 1.3 -t 2.0 -strict -2 $@
27
28 at-clip04.mp4: yt-aTeam02.mp4
29 ${SH} ffmpeg -i $< -ss 5.5 -t 0.25 -strict -2 $@
30
31 at-clip05.mp4: yt-aTeam02.mp4
32 ${SH} ffmpeg -i $< -ss 9.5 -t 5 -strict -2 $@
33
34 at-clip06.mp4: yt-aTeam02.mp4
35 ${SH} ffmpeg -i $< -ss 30 -t 2.5 -strict -2 $@
36
37 at-clip07.mp4: yt-aTeam02.mp4
38 ${SH} ffmpeg -i $< -ss 34.5 -t 1 -strict -2 $@
39
40 at-clip08.mp4: yt-aTeam02.mp4
41 ${SH} ffmpeg -i $< -ss 40 -t 2 -strict -2 $@
42
43 at-clip09.mp4: yt-aTeam02.mp4
44 ${SH} ffmpeg -i $< -ss 50 -t 3.5 -strict -2 $@
45
46 at-clip10.mp4: yt-aTeam02.mp4
47 ${SH} ffmpeg -i $< -ss 64 -t 5 -strict -2 $@
48
49 at-clip11.mp4: yt-aTeam02.mp4
50 ${SH} ffmpeg -i $< -ss 75.5 -t 1.5 -strict -2 $@
51
52 at-clip12.mp4: yt-aTeam02.mp4
53 ${SH} ffmpeg -i $< -ss 79 -t 7 -strict -2 $@
54
55 at-clip13.mp4: yt-aTeam03.mp4
56 ${SH} ffmpeg -i $< -ss 311 -t 7 -vf scale=486:360 -r 25/1 -strict -2 $@
57
58 at-clip14.mp4: yt-aTeam04.mp4
59 ${SH} ffmpeg -i $< -ss 218 -t 3 -vf scale=486:360 -r 25/1 -strict -2 $@
60
61 at-clip15.mp4: yt-aTeam04.mp4
62 ${SH} ffmpeg -i $< -ss 224 -t 1 -vf scale=486:360 -r 25/1 -strict -2 $@
63
64 at-clip16.mp4: yt-aTeam04.mp4
65 ${SH} ffmpeg -i $< -ss 228 -t 2 -vf scale=486:360 -r 25/1 -strict -2 $@
66
67 at-clip17.mp4: yt-aTeam04.mp4
68 ${SH} ffmpeg -i $< -ss 238 -t 1 -vf scale=486:360 -r 25/1 -strict -2 $@
69
70 at-clip18.mp4: yt-aTeam04.mp4
71 ${SH} ffmpeg -i $< -ss 243 -t 5 -vf scale=486:360 -r 25/1 -strict -2 $@
72
73 at-clip19.mp4: yt-aTeam05.mp4
74 ${SH} ffmpeg -i $< -ss 112 -t 5 -vf scale=486:360 -r 25/1 -strict -2 $@
75
76 at-clip20.mp4: yt-aTeam02.mp4
77 ${SH} ffmpeg -y -i $< -ss 81 -t 5 -strict -2 temp.$@
78 ${SH} ffmpeg -i temp.$@ -filter:v "setpts=2.5*PTS" -strict -2 $@
79
80 aTeam.mp3: yt-aTeam00.mp4
81 ${SH} ffmpeg -y -i $< -vn -t 75 -strict -2 $@
82
83 at-videoAn.mp4: at-clip01.mp4 at-clip02.mp4 at-clip03.mp4 at-clip04.mp4 at-clip05.mp4 at-clip06.mp4 at-clip07.mp4 at-clip08.mp4 at-clip09.mp4 at-clip10.mp4 at-clip11.mp4 at-clip12.mp4 at-clip13.mp4 at-clip14.mp4 at-clip15.mp4 at-clip16.mp4 at-clip17.mp4 at-clip18.mp4 at-clip19.mp4 at-clip20.mp4
84 ${SH} for f in `echo $^`; do echo "file '$$f'" >> $@.txt; done;
85 ${SH} ffmpeg -y -f concat -i $@.txt -an $@
86 ${RM} $@.txt
87
88 aTeam.mp4: at-videoAn.mp4 aTeam.mp3
89 ${SH} ffmpeg -y -i $< -i $(shell echo $^ | cut -f 2 -d ' ') -strict -2 $@
90
$ cat -n makefile.fallguy
1 yt-fallguy01.mp4:
2 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=iNizcrfnQ4E
3
4 yt-fallguy02.mp4:
5 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=0dxtiOqK8qg
6
7 yt-fallguy03.mp4:
8 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=dj9ev40C30M
9
10 yt-fallguy04.mp4:
11 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=s1uhbxz_Xfc
12
13 yt-fallguy05.mp4:
14 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=atZtkZdIWeM
15
16 fg-clip01.mp4: yt-fallguy01.mp4
17 ${SH} ffmpeg -i $< -ss 0 -t 4 -strict -2 $@
18
19 fg-clip02.mp4: yt-fallguy02.mp4
20 ${SH} ffmpeg -i $< -ss 61 -t 3 -strict -2 $@
21
22 fg-clip03.mp4: yt-fallguy02.mp4
23 ${SH} ffmpeg -i $< -ss 81 -t 3 -strict -2 $@
24
25 fg-clip04.mp4: yt-fallguy02.mp4
26 ${SH} ffmpeg -i $< -ss 101 -t 3 -strict -2 $@
27
28 fg-clip05.mp4: yt-fallguy02.mp4
29 ${SH} ffmpeg -i $< -ss 217 -t 5 -strict -2 $@
30
31 fg-clip06.mp4: yt-fallguy02.mp4
32 ${SH} ffmpeg -i $< -ss 248 -t 5 -strict -2 $@
33
34 fg-clip07.mp4: yt-fallguy02.mp4
35 ${SH} ffmpeg -i $< -ss 289 -t 3 -strict -2 $@
36
37 fg-clip08.mp4: yt-fallguy02.mp4
38 ${SH} ffmpeg -i $< -ss 5 -t 9 -strict -2 $@
39
40 fg-clip09.mp4: yt-fallguy02.mp4
41 ${SH} ffmpeg -i $< -ss 17 -t 9 -strict -2 $@
42
43 fg-clip10.mp4: yt-fallguy02.mp4
44 ${SH} ffmpeg -i $< -ss 28.5 -t 5.5 -strict -2 $@
45
46 fg-clip11.mp4: yt-fallguy02.mp4
47 ${SH} ffmpeg -i $< -ss 38.5 -t 1.5 -strict -2 $@
48
49 fg-clip12.mp4: yt-fallguy02.mp4
50 ${SH} ffmpeg -i $< -ss 42 -t 2.5 -strict -2 $@
51
52 fg-clip13.mp4: yt-fallguy02.mp4
53 ${SH} ffmpeg -i $< -ss 46.5 -t 5.5 -strict -2 $@
54
55 fg-clip14.mp4: yt-fallguy02.mp4
56 ${SH} ffmpeg -i $< -ss 54 -t 6 -strict -2 $@
57
58 fg-clip15.mp4: yt-fallguy02.mp4
59 ${SH} ffmpeg -i $< -ss 62 -t 3 -strict -2 $@
60
61 fg-clip16.mp4: yt-fallguy02.mp4
62 ${SH} ffmpeg -i $< -ss 66 -t 36 -strict -2 $@
63
64 fg-clip17.mp4: yt-fallguy02.mp4
65 ${SH} ffmpeg -i $< -ss 106 -t 24 -strict -2 $@
66
67 fg-clip18.mp4: yt-fallguy02.mp4
68 ${SH} ffmpeg -i $< -ss 137 -t 12 -strict -2 $@
69
70 fg-clip19.mp4: yt-fallguy02.mp4
71 ${SH} ffmpeg -i $< -ss 151 -t 19 -strict -2 $@
72
73 fg-clip20.mp4: yt-fallguy02.mp4
74 ${SH} ffmpeg -i $< -ss 178 -t 2 -strict -2 $@
75
76 fg-clip21.mp4: yt-fallguy02.mp4
77 # ${SH} ffmpeg -i $< -ss 188 -t 222 -strict -2 $@
78 # ${SH} ffmpeg -i $< -ss 188 -t 165 -strict -2 $@
79 ${SH} ffmpeg -i $< -ss 188 -t 23 -strict -2 $@
80
81 fallGuy.mp3: yt-fallguy01.mp4
82 ${SH} ffmpeg -i $< -ss 0 -t 106 -vn -strict -2 $@
83
84 fg-videoAn.mp4: fg-clip01.mp4 fg-clip02.mp4 fg-clip03.mp4 fg-clip04.mp4 fg-clip05.mp4 fg-clip06.mp4 fg-clip07.mp4 fg-clip08.mp4 fg-clip09.mp4 fg-clip10.mp4 fg-clip11.mp4 fg-clip12.mp4 fg-clip13.mp4 fg-clip14.mp4 fg-clip15.mp4 fg-clip16.mp4 fg-clip17.mp4 fg-clip18.mp4 fg-clip19.mp4 fg-clip20.mp4 fg-clip21.mp4
85 ${SH} for f in `echo $^`; do echo "file '$$f'" >> $@.txt; done;
86 ${SH} ffmpeg -y -f concat -i $@.txt -an $@
87 ${RM} $@.txt
88
89 fallGuy.mp4: fg-videoAn.mp4 fallGuy.mp3
90 ${SH} ffmpeg -i $< -i $(shell echo $^ | cut -f 2 -d ' ') -strict -2 $@
91
$ cat -n makefile.knightrider
1 yt-knightrider01.mp4:
2 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=oNyXYPhnUIs
3
4 yt-knightrider02.mp4:
5 ${SH} youtube-dl -f mp4 -o $@ https://youtu.be/hfRiedxPQhs
6
7 yt-knightrider03.mp4:
8 ${SH} youtube-dl -f mp4 -o $@ https://youtu.be/LcG5jQPrOOQ
9
10 yt-knightrider04.mp4:
11 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=FBQ0PSxPRjc
12
13 yt-knightrider05.mp4:
14 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=rkBcGP256Ng
15
16 yt-knightrider06.mp4:
17 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=lVElVZlnTG0
18
19 yt-knightrider07.mp4:
20 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=mWDZsKSGoVg
21
22 kr-clip01.mp4: yt-knightrider01.mp4
23 ${SH} ffmpeg -i $< -ss 4 -t 27 -target ntsc-dvd $@
24
25 kr-clip02.mp4: yt-knightrider01.mp4
26 ${SH} ffmpeg -i $< -ss 53 -t 7 -target ntsc-dvd $@
27
28 kr-clip03.mp4: yt-knightrider01.mp4
29 ${SH} ffmpeg -i $< -ss 65 -t 0.5 -target ntsc-dvd $@
30
31 #kr-clip04.mp4: yt-knightrider01.mp4
32 # ${SH} ffmpeg -i $< -ss 67 -t 10 -target ntsc-dvd $@
33
34
35 knightRider.mp3: yt-knightrider01.mp4
36 ${SH} ffmpeg -i $< -ss 4 -t 76 -vn $@
37
38 kr-clip04.mp4: yt-knightrider02.mp4
39 ${SH} ffmpeg -i $< -ss 285 -t 1 -target ntsc-dvd $@
40
41 kr-clip05.mp4: yt-knightrider02.mp4
42 ${SH} ffmpeg -i $< -ss 295 -t 4 -target ntsc-dvd $@
43
44 kr-clip06.mp4: yt-knightrider02.mp4
45 ${SH} ffmpeg -i $< -ss 315 -t 1 -target ntsc-dvd $@
46
47 kr-clip07.mp4: yt-knightrider02.mp4
48 ${SH} ffmpeg -i $< -ss 330 -t 10 -target ntsc-dvd $@
49
50 kr-clip08.mp4: yt-knightrider02.mp4
51 ${SH} ffmpeg -i $< -ss 347 -t 3 -target ntsc-dvd $@
52
53 kr-clip09.mp4: yt-knightrider02.mp4
54 ${SH} ffmpeg -i $< -ss 352 -t 5 -target ntsc-dvd $@
55
56 kr-clip10.mp4: yt-knightrider02.mp4
57 ${SH} ffmpeg -i $< -ss 362 -t 5 -target ntsc-dvd $@
58
59 kr-clip11.mp4: yt-knightrider01.mp4
60 ${SH} ffmpeg -i $< -ss 67 -t 10 -target ntsc-dvd $@
61
62 kr-clip12.mp4: yt-knightrider06.mp4
63 ${SH} ffmpeg -i $< -ss 4.2 -t 10 -target ntsc-dvd $@
64
65
66 kr-videoAn.mp4: kr-clip01.mp4 kr-clip02.mp4 kr-clip03.mp4 kr-clip04.mp4 kr-clip05.mp4 kr-clip06.mp4 kr-clip07.mp4 kr-clip08.mp4 kr-clip12.mp4 kr-clip11.mp4
67 ${SH} for f in `echo $^`; do echo "file '$$f'" >> $@.txt; done;
68 ${SH} ffmpeg -y -f concat -i $@.txt -an $@
69 ${RM} $@.txt
70 ${SH} mplayer $@
71
72
73 knightRider.mp4: kr-videoAn.mp4 knightRider.mp3
74 ${SH} ffmpeg -y -i $< -i $(shell echo $^ | cut -f 2 -d ' ') -strict -2 $@
75
76
$ cat -n makefile.airwolf
1 yt-airwolf01.mp4:
2 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=B10AXxnZGto
3
4 yt-airwolf02.mp4:
5 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=55VuB724n6Y
6
7 yt-airwolf03.mp4:
8 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=dnHY4rhNRKU
9
10 airwolf.mp3: yt-airwolf01.mp4
11 ${SH} ffmpeg -i $< -vn -strict -2 $@
12
13
14 aw-clip01.mp4: yt-airwolf01.mp4
15 ${SH} ffmpeg -i $< -ss 1 -t 39 -strict -2 -target ntsc-dvd $@
16
17 aw-clip02.mp4: yt-airwolf01.mp4
18 ${SH} ffmpeg -i $< -ss 74 -t 6 -strict -2 -target ntsc-dvd $@
19
20 aw-clip03.mp4: yt-airwolf02.mp4
21 ${SH} ffmpeg -i $< -ss 28 -t 12 -strict -2 -target ntsc-dvd $@
22
23 aw-clip04.mp4: yt-airwolf02.mp4
24 # ${SH} ffmpeg -i $< -ss 130 -t 50 -strict -2 -target ntsc-dvd $@
25 ${SH} ffmpeg -i $< -ss 130 -t 48 -strict -2 -target ntsc-dvd $@
26
27 aw-clip05.mp4: yt-airwolf02.mp4
28 ${SH} ffmpeg -i $< -ss 201 -t 2 -strict -2 -target ntsc-dvd $@
29
30 aw-clip06.mp4: yt-airwolf02.mp4
31 ${SH} ffmpeg -i $< -ss 209 -t 19 -strict -2 -target ntsc-dvd $@
32
33 aw-clip07.mp4: yt-airwolf02.mp4
34 ${SH} ffmpeg -i $< -ss 240 -t 4 -strict -2 -target ntsc-dvd $@
35
36 aw-clip08.mp4: yt-airwolf02.mp4
37 ${SH} ffmpeg -i $< -ss 254 -t 4 -strict -2 -target ntsc-dvd $@
38
39 aw-clip09.mp4: yt-airwolf02.mp4
40 ${SH} ffmpeg -i $< -ss 265 -t 3 -strict -2 -target ntsc-dvd $@
41
42 aw-clip10.mp4: yt-airwolf02.mp4
43 ${SH} ffmpeg -i $< -ss 550 -t 10 -strict -2 -target ntsc-dvd $@
44
45 aw-clip11.mp4: yt-airwolf02.mp4
46 ${SH} ffmpeg -i $< -ss 735 -t 40 -strict -2 -target ntsc-dvd $@
47
48 aw-videoAn.mp4: aw-clip01.mp4 aw-clip04.mp4
49 ${SH} for f in `echo $^`; do echo "file '$$f'" >> $@.txt; done;
50 ${SH} ffmpeg -y -f concat -i $@.txt -an $@
51 ${RM} $@.txt
52
53 airwolf.mp4: aw-videoAn.mp4 airwolf.mp3
54 ${SH} ffmpeg -i $< -i $(shell echo $^ | cut -f 2 -d ' ') -strict -2 $@
55
$ cat -n makefile.dukes
1 yt-dukes01.mp4:
2 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=67gig0f4HLo
3
4 yt-dukes02.mp4:
5 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=2iMBQ-bXQIE
6
7 yt-dukes03.mp4:
8 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=pWuVWNSNWnM
9
10 dukes.mp3: yt-dukes01.mp4
11 ${SH} ffmpeg -i $< -vn -t 61 -strict -2 $@
12
13 dukes.mp4: dh-videoAn.mp4 dukes.mp3
14 ${SH} ffmpeg -i $< -i $(shell echo $^ | cut -f 2 -d ' ') -strict -2 $@
15
16 dh-clip01.mp4: yt-dukes01.mp4
17 ${SH} ffmpeg -i $< -ss 3 -t 7 -strict -2 $@
18 ${SH} mplayer $@
19
20 dh-clip02.mp4: yt-dukes01.mp4
21 ${SH} ffmpeg -i $< -ss 15 -t 1.5 -strict -2 $@
22 ${SH} mplayer $@
23
24 dh-clip03.mp4: yt-dukes01.mp4
25 ${SH} ffmpeg -i $< -ss 52.5 -t 8 -strict -2 $@
26 ${SH} mplayer $@
27
28 dh-clip04.mp4: yt-dukes02.mp4
29 ${SH} ffmpeg -i $< -ss 94.5 -t 4 -strict -2 $@
30 ${SH} mplayer $@
31
32 #dh-clip05.mp4: yt-dukes02.mp4
33 # ${SH} ffmpeg -i $< -ss 177.5 -t 4.5 -strict -2 $@
34 # ${SH} mplayer $@
35
36 dh-clip06.mp4: yt-dukes02.mp4
37 ${SH} ffmpeg -i $< -ss 212 -t 3.5 -strict -2 $@
38 ${SH} mplayer $@
39
40 dh-clip07.mp4: yt-dukes02.mp4
41 ${SH} ffmpeg -i $< -ss 561.5 -t 10 -strict -2 $@
42 ${SH} mplayer $@
43
44 dh-clip08.mp4: yt-dukes03.mp4
45 ${SH} ffmpeg -i $< -ss 18 -t 3.25 -strict -2 $@
46 ${SH} mplayer $@
47
48 dh-clip09.mp4: yt-dukes03.mp4
49 ${SH} ffmpeg -i $< -ss 24 -t 2.5 -strict -2 $@
50 ${SH} mplayer $@
51
52 #dh-clip10.mp4: yt-dukes03.mp4
53 # ${SH} ffmpeg -i $< -ss 29 -t 13 -strict -2 $@
54 # ${SH} mplayer $@
55
56 dh-clip11.mp4: yt-dukes03.mp4
57 ${SH} ffmpeg -i $< -ss 68 -t 5.5 -strict -2 $@
58 ${SH} mplayer $@
59
60 dh-clip12.mp4: yt-dukes03.mp4
61 ${SH} ffmpeg -i $< -ss 78 -t 13 -strict -2 $@
62 ${SH} mplayer $@
63
64 dh-videoAn.mp4: dh-clip01-scaled.mp4 dh-clip02-scaled.mp4 dh-clip04-scaled.mp4 dh-clip06-scaled.mp4 dh-clip07-scaled.mp4 dh-clip08-scaled.mp4 dh-clip09-scaled.mp4 dh-clip11-scaled.mp4 dh-clip12-scaled.mp4 dh-clip03-scaled.mp4
65 ${SH} for f in `echo $^`; do echo "file '$$f'" >> $@.txt; done;
66 ${SH} ffmpeg -y -f concat -i $@.txt -an $@
67 ${RM} $@.txt
68
$ cat -n makefile.magnum
1 yt-magnum01.mp4:
2 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=xIaXl7SqkBw
3
4 yt-magnum02.mp4:
5 ${SH} youtube-dl -f mp4 -o $@ https://www.youtube.com/watch?v=CICbxj1PF74
6
7 magnum.mp3: yt-magnum01.mp4
8 ${SH} ffmpeg -i $< -vn -t 61 -strict -2 $@
9
10 magnum.mp4: mp-videoAn.mp4 magnum.mp3
11 ${SH} ffmpeg -i $< -i $(shell echo $^ | cut -f 2 -d ' ') -strict -2 $@
12
13 mp-clip01.mp4: yt-magnum01.mp4
14 ${SH} ffmpeg -i $< -ss 16 -t 4 -strict -2 $@
15
16 mp-clip02.mp4: yt-magnum01.mp4
17 ${SH} ffmpeg -i $< -ss 40.5 -t 1.5 -strict -2 $@
18
19 #mp-clip03.mp4: yt-magnum02.mp4
20 # ${SH} ffmpeg -i $< -ss 0 -t 22 -strict -2 $@
21
22 mp-clip04.mp4: yt-magnum02.mp4
23 ${SH} ffmpeg -i $< -ss 24 -t 6 -strict -2 $@
24
25 mp-clip05.mp4: yt-magnum02.mp4
26 ${SH} ffmpeg -i $< -ss 32.5 -t 1 -strict -2 $@
27
28 #mp-clip06.mp4: yt-magnum02.mp4
29 # ${SH} ffmpeg -i $< -ss 38.5 -t 2.5 -strict -2 $@
30 #
31 #mp-clip07.mp4: yt-magnum02.mp4
32 # ${SH} ffmpeg -i $< -ss 47 -t 2.5 -strict -2 $@
33
34 #mp-clip08.mp4: yt-magnum02.mp4
35 # ${SH} ffmpeg -i $< -ss 58 -t 17 -strict -2 $@
36 #
37 #mp-clip09.mp4: yt-magnum02.mp4
38 # ${SH} ffmpeg -i $< -ss 77.5 -t 15 -strict -2 $@
39
40 mp-clip10.mp4: yt-magnum02.mp4
41 ${SH} ffmpeg -i $< -ss 101 -t 20 -strict -2 $@
42
43 mp-clip11.mp4: yt-magnum02.mp4
44 ${SH} ffmpeg -i $< -ss 123 -t 3 -strict -2 $@
45
46 mp-clip12.mp4: yt-magnum02.mp4
47 ${SH} ffmpeg -i $< -ss 127 -t 12 -strict -2 $@
48
49 mp-videoAn.mp4: mp-clip01.mp4 mp-clip02.mp4 mp-clip04.mp4 mp-clip05.mp4 mp-clip10.mp4 mp-clip11.mp4 mp-clip12.mp4
50 ${SH} for f in `echo $^`; do echo "file '$$f'" >> $@.txt; done;
51 ${SH} ffmpeg -y -f concat -i $@.txt -an $@
52 ${RM} $@.txt
Good to see you blogging again!
ReplyDeleteThanks a million buddy!!
Delete