LINUX.ORG.RU

Помогите довести до ума скрипт.


0

1

Есть скрипт создания скринлистиков. Ну, там для всяких порнолабов итд. Уже не вспомню, где нарыл исходник. В общем, немного переделал его, улучшив вид создания скринлистов, но все равно все как-то не поворотливо в нем. Скажем, его нельзя использовать в связке с разными моментами шелла - подставлять не файл, а значения по маске. конкатенэйтинг не рабоатет, циклы для него не сделать. то же, ругается.

сам скрипт:

#!/bin/bash
MAXTHUMB="${2}"
THUMBSIZE="160x120"
OUTPUT_DIR="/home/nik/1/share/tmp"
WORK_DIR="/home/nik/1/share/tmp/111"
/bin/rm -rf "$WORK_DIR"
[ -w $WORK_DIR ] || mkdir -p $WORK_DIR
[ -w $OUTPUT_DIR ] || mkdir -p $OUTPUT_DIR
duration_seconds=`avconv -i "$1" 2>&1 | grep "Duration" | cut -f4 -d" " | cut -f3 -d":" | cut -f1 -d","`
duration_minutes=`avconv -i "$1" 2>&1 | grep "Duration" | cut -f4 -d" " | cut -f2 -d":"`
duration_hours=`avconv -i "$1" 2>&1 | grep "Duration" | cut -f4 -d" " | cut -f1 -d":"`
runTime=`echo "$duration_seconds + 60*$duration_minutes + 3600*$duration_hours" | bc`
audio=`avconv -i "$1" 2>&1 | /bin/grep "Audio:"`
codecvideo=`avconv -i "$1" 2>&1 | /bin/grep "Video:"`
MYFILE=`basename "$1"`
echo "*** You specified an input file of -> " "$1"
echo "*** You specified a working directory of -> " "$WORK_DIR"
echo "*** You specified a output directory of -> " "$OUTPUT_DIR"
FILEBASENAME=${MYFILE%.*}
INTERVAL=`echo "$runTime / $MAXTHUMB" | bc`
for numthumb in `seq 1 ${MAXTHUMB}`;
do
CURR_INTERVAL=`echo "$numthumb * $INTERVAL" | bc`
avconv -ss $CURR_INTERVAL -i "$1" -y -vcodec png -vframes 1 -an -f rawvideo "$WORK_DIR""/""$FILEBASENAME""$numthumb"".png" &>/dev/null
done
echo "File: ""$MYFILE""
""$codecvideo""
""$audio""
Lenght: "$duration_hours"":""$duration_minutes"":""$duration_seconds"" | \
convert -gravity center -font "/home/nik/.fonts/2265555.ttf" -pointsize 16 -background none label:@- \
\( +clone -sparse-color Barycentric '0,%h #585858' \
\) -compose In -composite \
-virtual-pixel transparent \
\( +clone -background black -shadow 50x2+2+2 \
\) +swap -background none -compose over -layers merge +repage \
text.png
echo "*** I will apply the following label -> " $LABEL
montage -tile 3x -shadow -borderwidth 3 -background white -geometry +1+1 "$WORK_DIR""/""$FILEBASENAME""*.png"  "$WORK_DIR""/""$FILEBASENAME"".png"
mogrify -resize 1280x "$WORK_DIR""/""$FILEBASENAME"".png" "$WORK_DIR""/""$FILEBASENAME"".png"
echo "*** Final screencap image is stored here -> " "$OUTPUT_DIR""/""$FILEBASENAME"".jpg"
convert -splice 0x80 -gravity North -draw 'image over 5,5 0,0 text.png' "$WORK_DIR""/""$FILEBASENAME"".png" "$OUTPUT_DIR""/""$FILEBASENAME"".jpg"
/bin/rm -rf "$WORK_DIR";rm text.png

каюсь. в нем дохрена значений, прибитых гвоздями. Если никому не интересно и не нужно, извините.

использование. скрипт файл «число миниатюр в скринлисте, четное трем».
Четность можно поменять в самом скрипте, как и другие параметры.
Используемый мною там шрифт - «Bauhaus 93» (он там, как 2265555.ttf).

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.