This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

1#!/bin/sh 2usage() { 3 printf '%b\n' "${0##*/} -i <input_file> [OPTIONS]" \ 4 "\noptions:" \ 5 "\t-S TIMESTAMP - timestamp to start the gif" \ 6 "\t-d SECONDS - how long the gif should be" \ 7 "\t-o FILE - output file (default: out.gif)" \ 8 "\t-s SCALE - border size (default: 1)" 9} 10 11while [ "$*" ] 12do 13 case $1 in 14 - ) shift; continue ;; 15 -- ) shift; break ;; 16 -* ) flag=${1#-}; shift ;; 17 * ) shift; continue ;; 18 esac 19 20 while [ "$flag" ] 21 do 22 arg=${flag%"${flag#?}"} 23 24 case $arg in 25 S ) VID2GIF_START=$1; shift ;; 26 d ) VID2GIF_DURATION=$1; shift ;; 27 h ) usage; exit 0 ;; 28 i ) VID2GIF_INPUT_FILE=$1; shift ;; 29 o ) VID2GIF_OUTPUT_FILE=$1; shift ;; 30 s ) VID2GIF_SCALE=$1; shift ;; 31 * ) printf '%s\n' "${0##*/}: -$arg: invalid argument" 1>&2 32 usage 1>&2; exit 1 ;; 33 esac 34 35 flag=${flag#?} 36 done 37done 38 39[ -z "$VID2GIF_INPUT_FILE" ] && { 40 printf '%s\n' "${0##*/}: missing input video" 1>&2 41 usage 1>&2; exit 1 42} 43 44start= 45duration= 46[ -n "$VID2GIF_START" ] && start="-ss" 47[ -n "$VID2GIF_DURATION" ] && duration="-t" 48 49: "${VID2GIF_SCALE:=1}" 50: "${VID2GIF_OUTPUT_FILE:=out.gif}" 51 52filters="scale=iw*${VID2GIF_SCALE}:-1:flags=lanczos" 53palette_file=$(mktemp --tmpdir XXX.png) 54 55ffmpeg -hide_banner -loglevel warning \ 56 "$start" "$VID2GIF_START" \ 57 "$duration" "$VID2GIF_DURATION" \ 58 -i "$VID2GIF_INPUT_FILE" -vf "$filters,palettegen" -update true \ 59 -y "$palette_file" 60ffmpeg -hide_banner -loglevel warning \ 61 "$start" "$VID2GIF_START" \ 62 "$duration" "$VID2GIF_DURATION" \ 63 -i "$VID2GIF_INPUT_FILE" -i "$palette_file" -filter_complex "$filters,paletteuse" \ 64 "$VID2GIF_OUTPUT_FILE" 65 66rm "$palette_file"