Browse Your Downloaded Videos on Internet: PHP based video webserver that exposes a local path containing videos to the internet.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
#! /bin/bash -ex |
|
|
|
SRC=${1:-.} |
|
DST=${2:-/var/tmp/spielfilme} |
|
|
|
declare -A FLAGS |
|
FORMATS=${FORMATS:-( "ogg" "webm" "mp4" )} |
|
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" |
|
|
|
do_convert() { |
|
f="$1" |
|
for format in "${FORMATS[@]}"; do |
|
t="${f/$SRC/$DST}" |
|
t="${t%.*}.${format}" |
|
if test -s "${t}"; then |
|
continue; # ignore if file exists and is not empty |
|
fi |
|
if test -e "$t"; then |
|
rm "$t"; # remove existing empty file |
|
fi |
|
test -d "${t%/*}" || mkdir -p "${t%/*}" |
|
if ( ! avconv -i "$f" ${FLAGS[$format]} -filter:v yadif "$t" \ |
|
|| ! test -s "${t}") && test -e "$t"; then |
|
rm "$t"; # remove file if conversion failed |
|
fi |
|
done |
|
} |
|
|
|
if test -d "$SRC"; then |
|
for f in $(find "$SRC" \( \( -name '.??*' -o -name '*.jpg' \) -prune \) -o -type f -print); do |
|
do_convert "$1" |
|
done |
|
else |
|
IFS=" |
|
" |
|
for f in $SRC; do |
|
do_convert "$1" |
|
done |
|
fi
|
|
|