30 lines
854 B
Bash
30 lines
854 B
Bash
![]() |
#! /bin/bash -ex
|
||
|
|
||
|
SRC=${1:-.}
|
||
|
DST=${2:-/var/tmp/spielfilme}
|
||
|
|
||
|
FORMATS="ogg webm mp4"
|
||
|
declare -A FLAGS
|
||
|
FLAGS["ogg"]="-c:v libtheora -c:a libvorbis -q:v 6 -q:a 5"
|
||
|
FLAGS["webm"]="-vcodec libvpx -acodec libvorbis -f webm -aq 5 -ac 2 -qmax 25 -threads 2"
|
||
|
FLAGS["mp4"]="-vcodec libx264 -acodec aac -strict experimental -crf 19"
|
||
|
|
||
|
for f in $(find "$SRC" \( \( -name '.??*' -o -name '*.jpg' \) -prune \) -o -type f -print); do
|
||
|
for format in ${FORMATS}; do
|
||
|
|
||
|
t="${f/$SRC/$DST/${format}}"
|
||
|
t="${t%.*}.${f}"
|
||
|
if test -s "${t}"; then
|
||
|
continue;
|
||
|
fi
|
||
|
if ( ! test -s "${t}" ) && ( test -e "$t" ); then
|
||
|
rm "$t"
|
||
|
fi
|
||
|
test -d "${t%/*}" || mkdir -p "${t%/*}"
|
||
|
avconv -i "$f" ${FLAGS[$f]} -filter:v yadif "$t"
|
||
|
if ( ! test -s "${t}" ) && ( test -e "$t" ); then
|
||
|
rm "$t"
|
||
|
fi
|
||
|
done
|
||
|
done
|