Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
#!/bin/sh 
#------------------------------------------------------------------             
# filmstrip.sh by gutemine                                                       
#------------------------------------------------------------------             
VERSION=0.7-r2                                                                
LINE="-------------------------------------------------------------"    
JUMP1=10
JUMP2=10
QUALITY=1
echo $LINE
echo "filmstrip.sh Version: $VERSION Architecture: $BOXARCH"
echo $LINE
if [ `grep config.plugins.filmstrip.picRes /etc/enigma2/settings | wc -l` -gt 0 ]; then
   RESOLUTION=`grep config.plugins.filmstrip.picRes /etc/enigma2/settings | cut -d"=" -f2`
   echo "resolution $RESOLUTION from settings"
else
   if [ `uname -r | grep "dreambox 4.9" | wc -l` -gt 0 ]; then 
      BOXARCH="arm64"                       
      RESOLUTION="406x228"
   else
      BOXARCH="armhf"                      
      RESOLUTION="200x113"
   fi                             
   echo "resolution $RESOLUTION from $BOXARCH"
fi                             
echo $LINE
if [ `ps ax | grep filmstrip.sh | wc -l` -gt 5 ]; then
   echo "filmstrip.sh script should only run up to 4 times!"
   echo $LINE
   exit 1
fi
if [ $# -lt 1 ]; then
   echo "no movie File passed"
   echo $LINE
   exit 1
else
   MOVIE=$1
   if [ ! -f "$MOVIE" ]; then 
      echo "$MOVIE file does not exist"
      echo $LINE
      exit 1
   fi
fi
if [ `ps ax | grep ffmpeg | grep "$MOVIE" | wc -l` -gt 2 ]; then
   echo "filmstrip.sh script should only run once per movie!"
   echo $LINE
   exit 1
fi
DURATIONSEC=`/usr/bin/ffprobe -i "$MOVIE" -show_entries format=duration -v quiet -of csv="p=0"`
DURATION=`printf '%.0f\n' $DURATIONSEC`
echo "extracting duration $DURATION seconds"
echo $LINE
if [ $DURATION -lt 60 ]; then
   echo "minimal duration 60 seconds"
   echo $LINE
   exit 1
fi
DIR=`dirname "$MOVIE"` 
FILENAME=`basename "$MOVIE"` 
FILE=`echo "${FILENAME%.*}"`
TARGETDIR="$DIR/filmstrip/$FILE"
#echo $TARGETDIR
#echo $LINE
if [ ! -d "$TARGETDIR" ]; then 
   echo "creating $TARGETDIR"
   mkdir "$TARGETDIR"
   echo $LINE
fi
if [ $# -lt 2 ]; then
   echo "no first step passed, means $JUMP1 seconds"
   echo $LINE
else
   JUMP1=$2
   echo "extracting first every $JUMP1 seconds"
   echo $LINE
   if [ "$JUMP1" -lt 10 ]; then
      echo "minimal picture every 10 seconds"
      echo $LINE
      exit 1
   fi
   if [ "$JUMP1" -gt 300 ]; then
      echo "maximal picture every 300 seconds"
      echo $LINE
      exit 1
   fi
fi
if [ $# -lt 3 ]; then
   echo "no second step passed, means $JUMP2 seconds"
   echo $LINE
else
   JUMP2=$3
   echo "extracting second every $JUMP2 seconds"
   echo $LINE
   if [ "$JUMP2" -lt 10 ]; then
      echo "disabled second run"
      echo $LINE
      JUMP2=0
   fi
   if [ "$JUMP2" -gt 10 ]; then
      echo "maximal picture every 10 sececonds for second run"
      echo $LINE
      JUMP2=10
   fi
fi
FRAMES1=`expr $DURATION "/" $JUMP1`
if [ "$FRAMES1" -lt 1 ]; then 
   echo "no frame every $JUMP1 seconds possible"
   echo $LINE
   exit 1
else
   FRAMES2=`expr $DURATION "/" 10`
   if [ "$FRAMES2" -lt 1 ]; then 
      echo "no frame every 10 seconds possible"
      echo $LINE
      exit 1
   else
      echo "creating first $FRAMES1 frames every $JUMP1 seconds"
      echo "for $MOVIE"
      echo "into $TARGETDIR"
      echo $LINE
   fi
fi
STARTING=`date +"%s"`
echo "First run every $JUMP1 seconds"
echo $LINE
for START in $( eval echo {0..$DURATION..$JUMP1} )
do
   PIC=`printf "$TARGETDIR/pic%06d.jpg" $START`
   if [ ! -e "$PIC" ]; then
      echo "generating $START for $PIC ..."
      /usr/bin/ffmpeg -loglevel quiet -ss $START -i "$MOVIE" -vf "fps=1,scale=$RESOLUTION" -qmin 1 -qscale:v $QUALITY -frames:v 1 -y -copyts -start_at_zero "$PIC"
   else
      echo "existing $START for $PIC ..."
   fi
done
if [ "$JUMP1" -ne 10 -a "$JUMP2" -ne 0 ]; then
   echo $LINE
   echo "Second run every 10 seconds"
   echo $LINE
   for START in $( eval echo {10..$DURATION..10} )
   do
      PIC=`printf "$TARGETDIR/pic%06d.jpg" $START`
      if [ ! -e "$PIC" ]; then
      echo "generating $START for $PIC ..."
      /usr/bin/ffmpeg -loglevel quiet -ss $START -i "$MOVIE" -vf "fps=1,scale=$RESOLUTION" -qmin 1 -qscale:v $QUALITY -frames:v 1 -y -copyts -start_at_zero -vsync vfr "$PIC"
   else
      echo "existing $START for $PIC ..."
   fi
   done
else
   echo $LINE
   echo "no second run"
fi
ENDING=`date +"%s"`
DURATION=`expr $ENDING "-" $STARTING`
echo $LINE
echo "FINISHED in $DURATION seconds !!!"
echo $LINE
exit 0