diff options
author | Timmy Keller <tjk@tjkeller.xyz> | 2022-07-07 15:55:54 -0500 |
---|---|---|
committer | Timmy Keller <tjk@tjkeller.xyz> | 2022-07-07 15:55:54 -0500 |
commit | 38ebf64b07f99de9464905ee5f8aaee1148b6a4f (patch) | |
tree | 1617ef65c4bd54db8f48cf70122ef7b923c623ab /video | |
parent | 35a2dd3734f1d31060fe28837cf0e1d947c8d6f4 (diff) | |
download | scripts-38ebf64b07f99de9464905ee5f8aaee1148b6a4f.tar.xz scripts-38ebf64b07f99de9464905ee5f8aaee1148b6a4f.zip |
tons of changes from when website was down
Diffstat (limited to 'video')
-rwxr-xr-x | video/ffconcat | 30 | ||||
-rwxr-xr-x | video/rectape | 18 | ||||
-rwxr-xr-x | video/rectapehevc | 15 | ||||
-rwxr-xr-x | video/rectapevaapi | 12 | ||||
-rwxr-xr-x | video/screenrec | 4 | ||||
-rwxr-xr-x | video/slideshow | 26 | ||||
-rwxr-xr-x | video/vaapiencode | 9 |
7 files changed, 86 insertions, 28 deletions
diff --git a/video/ffconcat b/video/ffconcat new file mode 100755 index 0000000..34e6550 --- /dev/null +++ b/video/ffconcat @@ -0,0 +1,30 @@ +#!/bin/sh + +trap cleanup EXIT + +ccf=/tmp/concatfile. +cleanup() { rm ${ccf}*; } +concat() { + outfile="output$i.mkv" + concatfile=$(mktemp ${ccf}XXXXXX) + dir="$(pwd)" + for video in $vidfiles; do + echo "file '$dir/$video'" >> $concatfile + done + cat $concatfile | sort > ${concatfile}_ # Sort concatfile so videos are ordered correctly + ffmpeg -v error -f concat -safe 0 -i ${concatfile}_ -c copy $outfile +} + +for video in "$@"; do + codechash=$(ffprobe -v quiet -show_format -show_streams "$video" | \grep 'width\|height\|codec' | md5sum | cut -d' ' -f1) + [ -z "$prevhash" ] && prevhash=$codechash + if [ $prevhash = $codechash ]; then + vidfiles="$video${vidfiles:+ }$vidfiles" + else + [ -z "$i" ] && i=0 + concat + vidfiles="" + i=$((i+1)) + fi +done +concat diff --git a/video/rectape b/video/rectape index fa631eb..238f5de 100755 --- a/video/rectape +++ b/video/rectape @@ -5,12 +5,12 @@ for mod in blackmagic blackmagic-io; do doas modprobe $mod; done #doas rc-service DesktopVideoHelper start ffmpeg \ --f decklink -format_code ntsc -i "Intensity Pro" \ --c:v libx264 \ --preset medium \ --qmin 6 -qmax 18 -qdiff 4 \ --vf yadif \ --c:a aac -b:a 384k \ --metadata "title"="$1" \ --metadata "comment=tapes.tjkeller.xyz" \ -"$1.mkv" + -f decklink -format_code ntsc -i "Intensity Pro" \ + -c:v libx264 \ + -preset medium \ + -qmin 6 -qmax 18 -qdiff 4 \ + -vf yadif \ + -c:a aac -b:a 384k \ + -metadata "title"="$1" \ + -metadata "comment=tapes.tjkeller.xyz" \ + "$1.mkv" diff --git a/video/rectapehevc b/video/rectapehevc new file mode 100755 index 0000000..c44d6d9 --- /dev/null +++ b/video/rectapehevc @@ -0,0 +1,15 @@ +#!/bin/sh +if [ -z "$1" ]; then $0 untitled_$(ls | wc -l); exit; fi + +for mod in blackmagic blackmagic-io; do doas modprobe $mod; done +#doas rc-service DesktopVideoHelper start + +ffmpeg \ + -f decklink -format_code ntsc -i "Intensity Pro" \ + -c:v libx265 \ + -qmin 6 -qmax 18 -qdiff 4 \ + -vf yadif \ + -c:a flac \ + -metadata "title"="$1" \ + -metadata "comment=tapes.tjkeller.xyz" \ + "$1.mkv" diff --git a/video/rectapevaapi b/video/rectapevaapi index 4ddf868..91c0709 100755 --- a/video/rectapevaapi +++ b/video/rectapevaapi @@ -5,9 +5,9 @@ for mod in blackmagic blackmagic-io; do doas modprobe $mod; done doas rc-service DesktopVideoHelper start ffmpeg -hwaccel auto -vaapi_device /dev/dri/renderD128 \ --f decklink -format_code ntsc -i "Intensity Pro" \ --c:v hevc_vaapi \ --vf "yadif,format=nv12,hwupload" \ --c:a libopus -b:a 384k \ --metadata "title"="$1$title" \ -"$1$title.mkv" + -f decklink -format_code ntsc -i "Intensity Pro" \ + -c:v hevc_vaapi \ + -vf "yadif,format=nv12,hwupload" \ + -c:a libopus -b:a 384k \ + -metadata "title"="$1$title" \ + "$1$title.mkv" diff --git a/video/screenrec b/video/screenrec index fa6b628..8f65514 100755 --- a/video/screenrec +++ b/video/screenrec @@ -13,7 +13,11 @@ ffmpeg -hide_banner \ -framerate $fr \ -f x11grab \ -i :0.0+0,0 \ + -f alsa -channels 1 -sample_rate 48000 \ + -i hw:3 \ -c:v libx264 \ + -c:a libopus \ + -b:a 128k \ -preset ultrafast \ -qp 1 \ -pix_fmt yuv444p \ diff --git a/video/slideshow b/video/slideshow index d1a9647..4cd1f61 100755 --- a/video/slideshow +++ b/video/slideshow @@ -1,15 +1,15 @@ #!/bin/sh cat "$@" | ffmpeg -y \ --framerate 0.20 -loop 1 \ --f image2pipe \ --i - \ --c:v h264_amf -quality quality -tune stillimage \ --qp_i 12 -qp_p 28 -qp_b 28 \ --vf \ -fps=1,\ -framerate=25:\ -interp_start=0:\ -interp_end=255:\ -scene=100 \ --metadata "title"="$(pwd | sed "s/.*\///")" \ -output.mkv + -framerate 0.20 -loop 1 \ + -f image2pipe \ + -i - \ + -c:v libx264 -quality quality -tune stillimage \ + -qmin 12 -qmax 28 -qdiff 16 \ + -vf \ + fps=1,\ + framerate=25:\ + interp_start=0:\ + interp_end=255:\ + scene=100 \ + -metadata "title"="$(pwd | sed "s/.*\///")" \ + output.mkv diff --git a/video/vaapiencode b/video/vaapiencode new file mode 100755 index 0000000..ae079f2 --- /dev/null +++ b/video/vaapiencode @@ -0,0 +1,9 @@ +#!/bin/sh +ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 \ + -ss 60 \ + -i "$1" \ + -t 60 \ + -c:v h264_vaapi \ + -b:v 1000k \ + -c:a libopus -b:a 128k \ + "h264_$1.mkv" |