Monday, March 21, 2022

Concatenating Non-Uniformly Scaled Videos w/FFmpeg

 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

2 comments: