-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvideoToHTML5.sh
More file actions
executable file
·33 lines (26 loc) · 1.21 KB
/
Copy pathvideoToHTML5.sh
File metadata and controls
executable file
·33 lines (26 loc) · 1.21 KB
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
#!/bin/bash
# Dynamic values
IN=$1
VIDEOQUALITY=$2
AUDIOQUALITY=$3
RESOLUTION=$4
OUT=$(echo $1 | sed 's/^\(.*\)\.[a-zA-Z0-9]*$/\1/')
# Video quality values
QMAX=$(echo "63-($VIDEOQUALITY/1.7)" | bc)
QMIN=$(echo "$QMAX - 1" | bc)
QSCALE=$(echo "31-($VIDEOQUALITY/3.3)" | bc)
# Print out variables received
echo "Creating videos using IN=$IN OUT=$OUT VIDEOQUALITY=$VIDEOQUALITY AUDIOQUALITY=$AUDIOQUALITY"
echo "QMAX = $QMAX"
echo "QMIN = $QMIN"
echo "QSCALE = $QSCALE"
# Hardcoded Values
THREADS='2'
VIDEOCONSTANTRATEFACTOR=$(echo "51-($VIDEOQUALITY/2)" | bc) #this is only for x254 video encoding
AUDIOCHANNELS='2'
# webm
ffmpeg -i $IN -acodec libvorbis -vcodec libvpx -b 1M -aq $AUDIOQUALITY -ac $AUDIOCHANNELS -qmin $QMIN -qmax $QMAX -qscale $QSCALE -threads $THREADS -s $RESOLUTION $OUT.webm
# mp4
ffmpeg -i $IN -acodec aac -strict experimental -vcodec libx264 -crf $VIDEOCONSTANTRATEFACTOR -aq $AUDIOQUALITY -ac $AUDIOCHANNELS -qmin $QMIN -qmax $QMAX -qscale $QSCALE -threads $THREADS -s $RESOLUTION $OUT.mp4
# ogg (if you want to support older Firefox)
ffmpeg -i $IN -acodec libvorbis -vcodec libtheora -aq $AUDIOQUALITY -ac $AUDIOCHANNELS -qmin $QMIN -qmax $QMAX -qscale $QSCALE -threads $THREADS -s $RESOLUTION $OUT.ogv