aboutsummaryrefslogtreecommitdiffstats
path: root/ffuse-frame
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xffuse-frame41
-rw-r--r--ffuse-frame.156
2 files changed, 97 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}"
diff --git a/ffuse-frame.1 b/ffuse-frame.1
new file mode 100644
index 0000000..b5df3b3
--- /dev/null
+++ b/ffuse-frame.1
@@ -0,0 +1,56 @@
+.TH FFUSE-FRAME 1 FFUTILS
+.SH NAME
+ffuse-frame \- create an image file from a video file
+
+.SH SYNOPSIS
+.B ffuse-frame
+[-t
+.IR time ]
+[-y]
+.I in-file
+.RI [ out-file ]
+
+.SH DESCRIPTION
+.B ffuse-frame
+extracts a frame from the video track from
+.I in-file
+and creates an audio file tagged with this frame
+(or a video file where the video track is replaced
+with this frame), and stored it as
+.IR out-file .
+.PP
+.B ffuse-frame
+may transcode the audio, and the frame will always
+be transcoded to Portable Network Graphics (PNG).
+
+.SH OPTIONS
+.TP
+.BR \-t \ \fItime\fP
+The timestamp of the frame to used. The default is 10 seconds.
+.TP
+.BR \-y
+Overwrite
+.I out-file
+if it already exists.
+
+.SH OPERANDS
+.TP
+.I in-file
+Video file to extract the frame from.
+.TP
+.I out-file
+The pathname for the new audio file.
+
+.SH EXIT VALUE
+.TP
+0
+Successful completely.
+.TP
+1
+An error occurred.
+
+.SH SEE ALSO
+.BR ffmpeg (1),
+.BR ffextract-audio (1),
+.BR ffextract-frame (1),
+.BR ffget-audio-extension (1)