aboutsummaryrefslogtreecommitdiffstats
path: root/ffuse-frame
diff options
context:
space:
mode:
Diffstat (limited to 'ffuse-frame')
-rwxr-xr-xffuse-frame41
1 files changed, 41 insertions, 0 deletions
diff --git a/ffuse-frame b/ffuse-frame
new file mode 100755
index 0000000..d556203
--- /dev/null
+++ b/ffuse-frame
@@ -0,0 +1,41 @@
+#!/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 ! $# = 2; then
+ usage
+fi
+
+in_file="$1"
+if test -z "${in_file}"; then
+ usage
+fi
+
+out_file="$2"
+if test -z "${out_file}"; then
+ usage
+fi
+
+ffmpeg -i "${in_file}" -ss "${ss}" -update 1 -frames:v 1 -c:v png -f image2pipe - | \
+ ffmpeg -f image2pipe -i - -i "${in_file}" -map 0:v:0 -map 1:a:0 -c:v png ${ffmpeg_flag_y} -- "${out_file}"