blob: b9465504d60ab59c95fa444fa7ccf4c9a28d800d (
plain) (
blame)
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
|
#!/bin/sh
# See LICENSE file for copyright and license details.
set -e
usage () {
printf 'usage %s: [-t time] [-y] in-file [out-file]\n' "$0" >&2
exit 1
}
ffmpeg_flag_y=
ss=10
while getopts t:y flag; do
case "$flag" in
t)
ss="${OPTARG}";;
y)
ffmpeg_flag_y=-y;;
?)
usage;;
esac
done
shift $(( ${OPTIND} - 1 ))
if test ! $# = 1 && test ! $# = 2; then
usage
fi
removeext () {
printf '%s\0' "$1" | tr '\0\n' '\n\0' | sed 's/\.[^.]*$//' | tr '\0' '\n'
}
in_file="$1"
if test -z "${in_file}"; then
usage
fi
out_file=""
if test $# = 2; then
out_file="$2"
if test -z "${out_file}"; then
usage
fi
else
out_file="$(removeext "${in_file}").png"
fi
if test "${out_file}" = -; then
exec ffmpeg -i "${in_file}" -ss "${ss}" -update 1 -frames:v 1 -c:v png -f image2pipe -
else
exec ffmpeg -i "${in_file}" -ss "${ss}" -update 1 -frames:v 1 ${ffmpeg_flag_y} -- "${out_file}"
fi
|