Butcher script
This commit is contained in:
parent
82225b075c
commit
ec550c42b0
31
src/bin/butcher
Executable file
31
src/bin/butcher
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/usr/bin/env nu
|
||||
|
||||
def main [input: string, --resize(-r): string, --length(-l): string = "00:00:05"] {
|
||||
let resize = if ($resize | is-empty ) { "" } else { $resize }
|
||||
destroy (glitch $input $resize $length)
|
||||
}
|
||||
|
||||
def glitch [input: string, resize: string, length: string] {
|
||||
let output = [ ($input | path parse | get stem ) "_glitch.mkv" ] | str join
|
||||
let filter = if ($resize | is-not-empty) {
|
||||
$"\'scale=($resize):-2,fps=60,frei0r=filter_name=glitch0r:filter_params=0.2|0.8|.04|1,rgbashift=rh=4:bh=-2,interlace=lowpass=complex\'"
|
||||
} else {
|
||||
"\'fps=60,frei0r=filter_name=glitch0r:filter_params=0.2|0.8|.04|1,rgbashift=rh=4:bh=-2,interlace=lowpass=complex\'"
|
||||
}
|
||||
#echo $"ffmpeg -loop 1 -i ($input) -filter_complex ($filter) -to ($length) ($output) -y"
|
||||
ffmpeg -loop 1 -i $input -filter_complex $filter -to $length $output -y
|
||||
echo $output
|
||||
}
|
||||
|
||||
def destroy [input: string] {
|
||||
let output = ($input | path parse | get stem )
|
||||
let pngOutput = [ $output "_animated.png" ] | str join
|
||||
let mp4Output = [ ($input | path parse | get stem ) "_animated.mp4" ] | str join
|
||||
let mp4OutputFixed = [ ($mp4Output | path parse | get stem ) "_fixed.mp4" ] | str join
|
||||
echo $"Creating destroyed png image at: ($pngOutput)"
|
||||
magick -monitor $input $"APNG:($pngOutput)"
|
||||
echo $"Creating video at: ($mp4Output)"
|
||||
ffmpeg -i $pngOutput -vcodec libx265 -pix_fmt yuva420p $mp4Output -y
|
||||
echo $"Fixing video at: ($mp4OutputFixed)"
|
||||
ffmpeg -i $mp4Output $mp4OutputFixed -y
|
||||
}
|
Loading…
Reference in a new issue