|
3 | 3 | # Recode a video to x264 480p. Saves a copy in a subdirectory "vaxpect". |
4 | 4 | # Does nothing if the video is already 480p or less. |
5 | 5 | # Call as |
6 | | -# env VAXPECT_HEIGHT=720 VAXPECT_Q=23 VAXPECT_AUDIO_BITRATE=160 vaxpect *.mp4 |
| 6 | +# env VAXPECT_HEIGHT=720 VAXPECT_Q=29 VAXPECT_AUDIO_BITRATE=96 vaxpect *.mp4 |
7 | 7 | # to encode to a different height or quality. |
8 | 8 | # x264 quality 26 is acceptable. Increase the value to compact more at |
9 | 9 | # the expense of quality; lower to 23 or 20 to increase quality but |
10 | 10 | # with a significant file size increase. |
11 | 11 |
|
12 | 12 | target_hgt=${VAXPECT_HEIGHT:-"480"} |
13 | 13 | target_q=${VAXPECT_Q:-"26"} |
14 | | -target_br=${VAXPECT_AUDIO_BITRATE:-"96"} |
| 14 | +target_br=${VAXPECT_AUDIO_BITRATE:-"160"} |
15 | 15 | target_codec=${VAXPECT_VIDEO_CODEC:-"x264"} |
| 16 | +target_opts=${VAXPECT_OPTS:-"--crop 0:0:0:0"} |
16 | 17 |
|
17 | 18 | for file in "$@" |
18 | 19 | do |
19 | 20 | height=`mediainfo --Inform="Video;%Height%" "$file"` |
20 | | - if [ $height -gt $target_hgt ]; then |
| 21 | + if [ "$height" -gt "$target_hgt" ]; then |
21 | 22 | [ -d vaxpect ] || mkdir vaxpect |
22 | 23 | #out=`echo "$file" | sed -e 's/\.[A-Za-z0-9]*$/.$target_hgtp.mkv/'` |
23 | 24 | out=vaxpect/`echo "$file" | sed -e 's/\.[A-Za-z0-9]*$/.mkv/'` |
| 25 | + outtmp=vaxpect/`echo "$file" | sed -e 's/\.[A-Za-z0-9]*$/.tmp.mkv/'` |
24 | 26 | if [ -e "$out" ] ; then |
25 | 27 | echo "Not overwriting $out" |
26 | 28 | else |
27 | | - HandBrakeCLI -i "$file" -o "$out" -e $target_codec -q $target_q -B $target_br --height $target_hgt |
| 29 | + HandBrakeCLI -i "$file" -o "$outtmp" -e $target_codec -q $target_q -B $target_br --height $target_hgt $target_opts && |
| 30 | + mv "$outtmp" "$out" && |
| 31 | + touch -r "$file" "$out" |
28 | 32 | fi |
29 | 33 | fi |
30 | 34 | done |
0 commit comments