diff --git a/ys b/ys index 3dff674..b0de296 100755 --- a/ys +++ b/ys @@ -9,31 +9,25 @@ if [[ "$1" = "e" ]]; then OUTFILE="$2" shift shift - PARFILE="$(mktemp -u)" - ENCFILE="$(mktemp -u)" - echo "Compressing and encrypting..." - [[ -z "$YS_PASS" ]] && read -rs -p 'Password: ' YS_PASS + PARFILE="$(mktemp -t 'YS-XXXXXXXX')" + [[ -z "$YS_PASS" ]] && read -rs -p 'Encryption password: ' YS_PASS + echo "Processing..." tar --use-compress-program='zstd -T0 -10' -cf - -- $* | \ - openssl aes-256-cbc -e -pbkdf2 -out "$ENCFILE" -pass "pass:$YS_PASS" - echo "Adding redundancy..." - xpar -Je -i 3 -H blake2b "$ENCFILE" "$PARFILE" + openssl aes-256-cbc -e -pbkdf2 -pass "pass:$YS_PASS" | \ + xpar -Je -i 3 -H blake2b > "$PARFILE" truncate -s $(( ( $(wc -c < "$PARFILE") + 7199 ) / 7200 * 7200 )) "$PARFILE" - echo "Encoding video..." ffmpeg -hide_banner -f rawvideo -pixel_format monob -video_size 320x180 -framerate 60 \ -i "$PARFILE" -vf "scale=1280:720:flags=neighbor,format=monob" \ -c:v libvpx-vp9 -lossless 1 -deadline realtime -speed 8 -row-mt 1 -aq-mode 0 \ -pix_fmt yuv420p -f webm "${OUTFILE}" - rm -f "$PARFILE" "$ENCFILE" + rm -f "$PARFILE" echo "Done!" elif [[ "$1" = "d" ]]; then - PARFILE="$(mktemp -u)" - echo "Decoding video..." - ffmpeg -hide_banner -i "$2" -vf "scale=320:180:flags=neighbor,format=monob" -f rawvideo "$PARFILE" - echo "Restoring, decrypting and decompressing..." - [[ -z "$YS_PASS" ]] && read -rs -p 'Password: ' YS_PASS - xpar -Jdc "$PARFILE" | openssl aes-256-cbc -d -pbkdf2 -pass "pass:$YS_PASS" \ - | tar --use-compress-program='zstd -T0' -xf - - rm -f "$PARFILE" + echo "Processing..." + [[ -z "$YS_PASS" ]] && read -rs -p 'Decryption password: ' YS_PASS + ffmpeg -hide_banner -i "$2" -vf "scale=320:180:flags=neighbor,format=monob" -f rawvideo - | \ + xpar -Jdc | openssl aes-256-cbc -d -pbkdf2 -pass "pass:$YS_PASS" | \ + tar --use-compress-program='zstd -T0' -xf - echo "Done!" else echo "Invalid mode! Use e or d"