#!/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}"