]> git.lizzy.rs Git - dirlistozxa.git/blob - gen-thumbs
gen-thumbs: generate video thumbnails
[dirlistozxa.git] / gen-thumbs
1 #!/bin/bash
2
3 # Generates thumbs
4
5 if [[ "$1" != "" ]]; then
6         if [[ -L "$1" ]]; then
7                 exit
8         fi
9
10         src="$1"
11         base=$(basename -- "$src")
12         dst=".thumbs/$base"
13
14         if [[ "$src" -nt "$dst" ]]; then
15                 echo "update $dst"
16
17                 if [[ "$src" == *.mp4 ]] || [[ "$src" == *.gif ]]; then
18                         dst_tmp="/tmp/$base.png"
19                         rm -f "$dst_tmp"
20
21                         ffmpeg -hide_banner -loglevel error -i "$src" -ss 00:00:00.000 -vframes 1 "$dst_tmp"
22                         src="$dst_tmp"
23
24                         dst_tmp="/tmp/$base"
25                         mv "$src" "$dst_tmp"
26                         src="$dst_tmp"
27                 fi
28
29                 mogrify -path .thumbs/ -auto-orient -thumbnail 128x128 -quality 90% "$src"
30
31                 rm -f "$dst_tmp"
32         fi
33 else
34         mkdir -p .thumbs
35         find -type f -not -path "./.thumbs/*" \
36                 | grep -iE "\.png$|\.jpg$|\.jpeg$|\.jfif$|\.gif$|\.webp$|\.mp4$" \
37                 | parallel -j$(nproc) "$0" {}
38 fi