]> git.plutz.net Git - serve0/blob - thumbnail.sh
5575c3723f6e0080ff8c1ce029d9a490123683a4
[serve0] / thumbnail.sh
1 #!/bin/sh
2
3 [ -n "$include_thumbnails" ] && return 0
4 include_thumbnails="$0"
5
6 gen_thumb(){
7   file="$1"; thumb="$2";
8
9   if [ "${file%.part}" = "${file}" ] && [ ! -s "$thumb" ] && [ -s "$file" ]; then
10     l="$(
11       printf '' \
12       | mplayer -input nodefault-bindings -nosound -vo null -identify -frames 0 "$file" 2>&- \
13       | sed -rn 's:ID_LENGTH=(.*)(\..*)$:\1:p;' \
14     )"
15   
16     chunk="$((${l:-10} / 11))"
17     
18     tmp="$(mktemp -d)"
19     for cnt in 1 2 3 4 5 6 7 8 9 10; do
20       printf '' \
21       | mplayer -input nodefault-bindings -nosound -benchmark \
22                 -noconfig all -really-quiet \
23                 -frames 1 -ss "$((cnt * chunk))" \
24                 -vf framestep=I \
25                 -vo jpeg:quality=100:outdir="${tmp}" \
26                 "$file" 2>&-
27       mv "${tmp}/00000001.jpg" "${tmp}/_${cnt}.jpg"
28     done
29     printf '' \
30     | mplayer -input nodefault-bindings -nosound -benchmark \
31               -noconfig all -really-quiet \
32               -vf expand=:::::16/9,scale=320:-2,tile=10:1:10:0:0 \
33               -vo jpeg:quality=85:outdir="${tmp}"\
34               "mf://$tmp/_*.jpg" 2>&-
35   
36     mv "${tmp}/00000001.jpg" "$thumb"
37     rm -r "${tmp}"
38   fi
39 }