О блоге

AvatarДоброго времени суток! Мое имя — Владимир, и здесь я собираю различные мануалы и файлы на память, а также мои размышления и комментарии, в основном на компьютерную тематику. Может, и еще кому-нибудь поможет. Впрочем, я не ограничиваю блог лишь одной темой — линукс работает как часы… Поэтому блог обновляется только тогда, когда появляется что сказать.

Я использую Debian, поэтому все, о чем я пишу, справедливо в первую очередь для debian-based систем.

Пользуюсь компьютером уже где-то около 10 лет, из них линукс — около двух на данный момент (а это осень 2007). Знаю HTML и Bash. Хотел изучить что-то более серьезное, но до этого так и не дошло — писать нечего =( Все, что мне нужно либо уже есть, либо пишу на Баше.

    • iamduddits
    • 03.04.2007

    О стиль блога как у меня😉 и темы совпадают !!!

  1. Интересный блог😉

  2. ^_^

    • Maria Lo siento
    • 25.11.2007

    Este aqui,me gusto mucho,pero no quiero escribir mas,por que no me gusta hacerlo sin acentos-eso puede cambiar el sentido:)))( I was here,i liked very much,but i don’t want to write anything else without accents-it may change the meaning)

  3. Эх Владимир!Ваши бы знания,да нам в помощь на общественных началах.

    • Дима
    • 08.11.2011

    Ваш скрипт немного переделал, который делал превьюшки из фильмов в виде скринлистинга.

    #####################################################################
    #      Version: 1.5.9
    #####################################################################
    #
    # This script takes screenshots of a movie
    # Depends on mplayer and imagemagick
    #
    # Made by  Starlite  <https://starl1te.wordpress.com/>
    #
    # This program is free software: you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation, either version 3 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program.  If not, see <http://www.gnu.org/licenses/>.
    #
    #####################################################################
    usage="Type shot -h for help"
    _help(){
    echo -e "\nusage: shot [options] [file] ... [fileN]\n
    Options:
      -t <time> - Set time (in minutes) between screenshots; the number of screenshots is calculated automatically.
      -n <number> - Set a fixed number of screenshots to take.
      -m - Manual mode. Use arrows to FF/rewind. Press [S] to make screenshots. Quit mplayer to continue.
      -r <percent> - Change the size of the output image. Less than 40% is recommended.
      -s - Seed mode. Gives extra video and audio information. Removes spaces from filenames.
      -h - Display this help message\n
    If you don't like screenshots run the script again.
    This script depends on Mplayer and ImageMagic. Make sure you have them installed.\n
    Usage example:
    shot -n 25 -r 35% ~/films/film.avi\n"
    }
    shot(){
    # Making screenshots...
    for i in `seq 1 $shots_number`;
    do
      randomiser=$RANDOM; let "randomiser %= 25"
      hop=`echo $[$shot_time*60*$i+$randomiser]`
      mplayer -ss $hop -noautosub -frames 1 -ao null -vo png "$file_path" &> /dev/null
      mv 00000001.png /tmp/shots/$i.png &> /dev/null
      echo -ne "Taking screenshot #${i} \r"
    done
      echo "Taking screenshots...           [OK]"
    }
    # ====== first step is here! ^_^ ========
    # Checking options...
    while getopts ":t:n:mr:sh" option
      do
        case $option in
        t ) shot_time=$OPTARG; opt=_time;;
        n ) shots_number=$OPTARG; opt=_num;;
        m ) opt=_manual;;
        h ) _help; opt=1; exit 1;;
        s ) seed=1;;
        r ) res=$OPTARG;;
        : ) echo "No argument given"; opt=1; exit 1;;
        * ) echo "Unknown option"; echo $usage; opt=1; exit 1;;
        esac
      done
    if [ "$res" == "" ]; then res=35%; fi
    if [ "$opt" == "" ]; then echo "No options given!"; echo $usage; exit 1; fi
    shift $(($OPTIND - 1))
    if [ "$1" == "" ]; then echo "No file given!"; echo $usage; exit 1; fi
    mkdir /tmp/shots
    # Parsing files...
    while [ "$1" != "" ]
    do
      file_path=$1
      file_name_ext=${file_path##*/}
      file_name=`echo "$file_name_ext" | sed '$s/....$//'`
      randomiser=0
      quality=87
      testpath=`dirname "$file_path" | cut -c1`
      if [ "$testpath" == "." ]||[ "$testpath" != "/" ]; then
      file_path=`pwd`/$file_path
      fi
      path=`pwd`
      cd "$path"
    echo -e "==> Processing file $file_name_ext..."
    # Getting video info...
    tmp="/tmp/shots/info"
    inf=`mplayer "$file_path" -identify -frames 1 -ao null -vo null 2>/dev/null | tee $tmp`
    length=`cat $tmp | grep LENGTH | sed -e 's/^.*=//' -e 's/[.].*//'`
    if [ "$length" == "" ]; then echo "Error! Can't get the length of the movie."; exit 1; fi
    # Calculating timing...
    if [ "$opt" == "_time" ]; then
      shots_number=`echo $[$length/60/$shot_time]`
      shot
    elif [ "$opt" == "_num" ]; then
      shot_time=`echo $[$length/$shots_number/60]`
      shot
    elif [ "$opt" == "_manual" ]; then
      cd /tmp/shots
      echo "Press [S] to make screenshots."
      mplayer -ao null -vf screenshot -quiet "$file_path"
      echo "Taking screenshots...           [OK]"
    fi
    # Merging screenshots...
    echo -n "Putting screenshots together..."
    cd /tmp/shots/
    montage -tile 2x -shadow -geometry +3+3 -bordercolor Lavender -background gray +polaroid `ls *.png | sort -n` "$file_name".png
    mogrify -resize $res "$file_name".png
    echo " [OK]"
    echo -n "Getting video info..."
    size=`stat -c%s  "$file_path"`
    size=`echo $[$size/1024/1024]`
    format=`cat $tmp | grep VIDEO: | cut -d " " -f 5`
    length=`echo $[$length/60]`
    # It's a tricky code here, it adds some info about the movie to the output image.
    echo -e "File name: $file_name_ext\nSize: $size Mb\nResolution: $format\nDuration: $length min." | \
    convert -font /usr/share/fonts/dejavu/DejaVuSans.ttf \
    -background black -fill white \
    -pointsize 32 label:@- \
    -resize 50% -trim +repage -border 5x5 text.png
    convert text.png -resize 300% -frame 5x5+2+2 \
    -gamma 2  +level 0,1000 -white-threshold 999 \
    -morphology Distance:-1 Euclidean:4,1000 \
    -auto-level -adaptive-blur 0x2 -shade 135x30 \
    -auto-level +level 10,90% -resize 30% \
    text.png
    convert "$file_name".png -quality $quality -splice 0x110 -gravity North -draw 'image over 5,5 0,0 text.png' "$path/$file_name".jpg
    echo "           [OK]"
    cd "$path"
    # Extra info
        if [ "$seed" == "1" ]; then
      #====Video====
      width=`cat $tmp | grep VIDEO_WIDTH | sed -e 's/^.*=//'`
      height=`cat $tmp | grep VIDEO_HEIGHT | sed -e 's/^.*=//'`
      format=`cat $tmp | grep VIDEO_FORMAT | sed -e 's/^.*=//'`
      vcodec=`cat $tmp | grep VIDEO_CODEC | sed -e 's/^.*=//'`
      video="Format:  $format\nCodec:  $vcodec"
      size="Size:  $width*$height"
      #====Audio====
      rate=`cat $tmp | grep AUDIO_RATE | sed -e 's/^.*=//' | tail -n 1`
      acodec=`cat $tmp | grep afm: | sed -e 's/^.*: //'`
      lang1=`cat $tmp | grep ID_AID_0_LANG | sed -e 's/^.*=//'`
      lang2=`cat $tmp | grep ID_AID_1_LANG | sed -e 's/^.*=//'`
      audio="Audio:  $rate $acodec"
      lang="Dub:  1: $lang1  2: $lang2"
      echo -e "\n$video\n$size\n$audio\n$lang"
      #filenames trimming
      file_name_sp=`echo "$file_name" | sed 's/ /_/g'`
      mv "$file_name".jpg "$file_name_sp".jpg &> /dev/null
        fi
    rm /tmp/shots/*
    echo
    shift
    done
    rm -r /tmp/shots
    echo "Done"
  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: