/
main.sh
executable file
·66 lines (65 loc) · 2.3 KB
/
main.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
###############################################################################
# Constants and arguments
###############################################################################
. constants.env
source ./functions.sh
# Parse optional arguments ----------------------------------------------------
while getopts 'dhuywv:r:p:f:' flag; do
case "${flag}" in
y) OVERWRITE='y' ;;
p) BPATH="${OPTARG}" ;;
f) FNAME="${OPTARG}" ;;
v) VERBOSE="${OPTARG}" ;;
r) FRATE="${OPTARG}" ;;
w) ANGLE="3840x2160" ;;
d) DEBUG="True" ;;
u) ROTATE="True" ;;
*) print_usage
exit 1 ;;
esac
done
# Check for debug and missing filename ----------------------------------------
if [ "$DEBUG" = "True" ]; then print_debug; exit 0; fi
if [ "$FNAME" = "" ]; then print_filename; exit 0; fi
if [ "$ROTATE" = "True" ] ; then ROTATE_FLAGS=",transpose=2, transpose=2"; fi
###############################################################################
# Move files to same parent folder
###############################################################################
echo -e "${CGRN}[-] Moving files to parent directory from: ${BPATH}/${FNAME} ${COFF}"
find $BPATH/$FNAME -mindepth 2 -type f \
-exec mv {} $BPATH/$FNAME \;
###############################################################################
# Generate video
###############################################################################
echo -e "${CGRN}[-] Compiling video to: ${BPATH}/${FNAME}.mp4 ${COFF}"
CDIR="$PWD"
MDIR="${BPATH}/${FNAME}"
cd $MDIR
ffmpeg -framerate $FRATE \
-pattern_type glob -i "*.$EXTENSION" \
-vcodec h264 $BPATH/$FNAME".mp4" \
-r $FRATE \
-tune $TUNE \
-preset $PRESET \
-hide_banner \
-loglevel $VERBOSE \
-c:v libx264 \
-crf $CRF \
-async 1 -vsync 1 \
-$OVERWRITE
cd $CDIR
###############################################################################
# Postprocess video
###############################################################################
echo -e "${CGRN}[-] Postprocessing to: ${BPATH}/${FNAME}-PP.mp4 ${COFF}"
ffmpeg -i $BPATH/$FNAME".mp4" \
-vf "pp=al, scale=$ANGLE $ROTATE_FLAGS" $BPATH/$FNAME"-PP.mp4" \
-vcodec h264 \
-loglevel $VERBOSE \
-hide_banner \
-crf $CRF \
-async 1 -vsync 1 \
-tune $TUNE \
-preset $PRESET \
-$OVERWRITE