понедельник, 30 января 2017 г.

добавить в изображение текст

#!/bin/bash
ls | grep ".jpg"
echo "";
echo " Имя файла для добавления текста:"
read NAME
echo "";
identify -verbose $NAME | grep -E "(Number\ pixels|Page\ geometry|Filesize)"
echo "";
echo " Ввести текст:"
read TEXT
echo "";
convert $NAME -fill white -box '#00770080' -gravity South \
 -pointsize 20 -annotate +0+5 " $TEXT " $NAME.jpg

Linux CPU test

#!/bin/bash
#sudo apt-get install cpuburn

#killall burnP6
#burnP6

echo "";
echo "  Стресс тест процессора"
echo "  проверка на качество охлаждения"
echo "  и стабильность комплектующих"
echo "";
echo -en "\033[37;1;41m Продолжить? (Запустить тест CPU) (y/n) \033[0m"

read item
case "$item" in
    y|Y) echo -en "\033[31m Ввели «y», начинаем тест CPU... \033[40m"
    echo " `date +%T_%F` -- Start test"
    burnP6 &
    burnP6 &
    burnP6 &
    burnP6 &
    burnP6 &
    burnP6 &
    burnP6 &
    burnP6 &
    echo "" &
    echo " Для завершения стресс-теста \n" &
    echo " снова запусти скрипт и нажми < N >" &
    exit 0
        ;;
    n|N) echo -en "\033[32m Ввели «n», завершаем... \033[40"
    echo " `date +%T_%F` -- Stop test"
    killall burnP6
    echo "" &
        exit 0
        ;;
    *) echo "Ничего не ввели. Выполняем действие по умолчанию..."
    echo "" &
    killall burnP6
    exit 0
        ;;
esac

ffmpeg kill

#!/bin/bash
NAME=$(ps wup $(pgrep ffmpeg) | sed -n '2p' | grep -oE "t/screencast_*.*" | sed 's/^..//')
PID=$(ps wup $(pgrep ffmpeg) | sed -n '2p' | awk '{ print $2}')
kill $PID
DISPLAY=:0.0 /usr/bin/notify-send -t 10000 "Скринкаст остановлен" "имя файла: $NAME"

ffmpeg запись с экрана

#!/bin/bash
TIME=$(date +%Y.%m.%d_%H:%M:%S)
ffmpeg -f x11grab -s "1920x1080" -i :0.0 -r "30" -f mp4 -vcodec libx264 /home/$USER/Изображения/screencast/screencast_$TIME.mp4 \
& DISPLAY=:0.0 /usr/bin/notify-send -t 10000 "Скринкаст запущен" "ия файла: screencast_$TIME.mp4"

rsync

#!/bin/bash
#
# a - обновлять только изменившиеся файлы
# u - игнорировать ошибки
# r - копировать рекурсивно
# -e ssh - через ssh
# v - выводить инфу о каждом файле
# u - режим обновления:
# --ignore-errors - игнорировать ошибки
# --delete-during - удаление файлов на приёмнике в процессе копирования

rsync -aru --stats --ignore-errors --delete-during -e ssh user2@192.168.0.1:/home/user2/        /backup/xbmc/user2/

Запись диска. rsync быстрее копирует файлы, чем Linux Mint GUI

#!/bin/bash
TIME1=$(date +"%s")
rsync -arvu --ignore-errors --progress /750/repo/TMP_BR/ /home/$USER/TMP_ISO_BR/
TIME2=$(date +"%s")

TIME=$(($TIME1 - $TIME2))
TIME0=$(echo "$TIME" | sed 's/^.//')

if [ "$TIME0" -lt "60" ];
        then echo " $TIME0 секунд" #YES
echo "синхронизация файлов для записи диска завершена за $TIME0 секунд" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
        else
 X=$(( TIME0 / 60 ));
echo " $X минут"
echo "синхронизация файлов для записи диска завершена за $X минут" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
fi

find move

#!/bin/bash
echo "";
echo " Search move"
echo "";
echo " Укажи путь, где искать видео:"
read DIR
echo " Укажи название плейлиста:"
read NAME

FILE="/home/$USER/PlayList/$NAME.m3u"
if [ -f $FILE ]; then # если есть уже файл с этим именем
rm /home/$USER/PlayList/$NAME.m3u && echo " файл удален - $NAME.m3u"
else sleep 1 # не найден, продолжаем
fi

find $DIR \( -name "*.avi" -or -name "*.mp4" -or -name "*.mkv" \) -type f -print | sort -g >> /home/$USER/PlayList/$NAME.m3u
LINE=$(cat /home/$USER/PlayList/$NAME.m3u | wc -l)
GB=$(find $DIR -type f -name "*.avi" -or -name "*.mp4" -or -name "*.mkv" -exec ls -l --block-size=G "{}" \; | sort -hr | awk '{print $5}' | sed 's/.$//' | awk -F'#' '{sum = sum+$1}; END {print "Всего: " sum " GB"}')
MB=$(find $DIR -type f -name "*.avi" -or -name "*.mp4" -or -name "*.mkv" -exec du --max-depth=1 -m "{}" \; | sort -hr | awk -F'#' '{sum = sum+$1}; END {print "Всего: " sum " MB"}')
KB=$(find $DIR -type f -name "*.avi" -or -name "*.mp4" -or -name "*.mkv" -printf "%p#%k KB\n" | awk -F'#' '{sum = sum+$2}; END {print "Всего: " sum " KB"}')
echo " количество видео роликов - $LINE"
echo " всего занимают места - $GB"
echo " всего занимают места - $MB"
echo " занимают места - $KB"
echo "Найдено видео файлов $LINE" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
echo "Создание видео плей листа завершено" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q

ffmpeg склеить 2 изображения

#!/bin/bash
TIME1=$(date +"%s")
echo "";
echo -en "\033[37;1;41m ВНИМЕНИЕ! Изображения ОБЯЗАТЕЛЬНО     \033[0m"; echo "";
echo -en "\033[37;1;41m ВНИМЕНИЕ! добжны быть ОДНОГО РАЗМЕРА! \033[0m"; echo -en "\E[0m";
echo "";
ls | grep ".jpg"; echo "";
# Заменяет пробелы символом подчеркивания в именах файлов в текущем каталоге.
ONE=1                     # единственное или множественное число (см. ниже).
number=0                  # Количество переименованных файлов.
FOUND=0                   # Код завершения в случае успеха.
for filename in *         # Перебор всех файлов в текущем каталоге.
do
     echo "$filename" | grep -q " "         #  Проверить — содержит ли имя файла
     if [ $? -eq $FOUND ]                   #+ пробелы.
     then
       fname=$filename                      # Удалить путь из имени файла.
       n=`echo $fname | sed -e "s/ /_/g"`   # Заменить пробелы символом подчеркивания.
       mv "$fname" "$n"                     # Переименование.
       let "number += 1"
     fi
done
if [ "$number" -eq "$ONE" ]
then
 echo "$number файл переименован."
else
 echo "Переименовано файлов: $number"
fi
#
echo "";
ls | grep ".jpg"
echo " Ввести имена 2-х файлов изображений:";
echo -en "\033[32m Введи img1 : \033[40m"; echo "";
read IMG1
echo -en "\033[32m Введи img2 : \033[40m"; echo "";
read IMG2
echo "";
echo -en "\033[37;1;41m Собрать анимацию ? (y/n) \033[0m"; echo "";
read item
case "$item" in
    y|Y) echo -en "\E[1;40;32m склеивание картинок ... \E[1;40;32m"; echo "";
        ffmpeg -loop 1 -i $IMG1.jpg -loop 1 -i $IMG2.jpg -filter_complex \
     "[0:0]format=rgba,trim=duration=10,fade=in:st=0:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[a];[1:0]format=rgba,trim=duration=10,fade=in:st=5:d=1:alpha=1,fade=out:st=9:d=1:alpha=1[b];[a][b]overlay=[out1]" \
     -map [out1] -y -qscale 25 -vcodec libx264 -b:v 2550K -crf 26 -s "1280x720" \
     -threads auto -thread_type frame -strict -2 /home/$USER/anim_$(date +%Y-%m-%d_%H-%M-%S).mp4 2>/dev/null
        ;;
    n|N) echo -en "\033[32m Ввели «n», завершаем... \033[40m"; echo "";
        exit 0
        ;;
    *) echo "Ничего не ввели. Выполняем действие по умолчанию..."
        exit 0
        ;;
esac
# конец скрипта. записать контрольное время
TIME2=$(date +"%s")
# вычесть стоп-старт
TIME=$(($TIME1 - $TIME2))
# убрать не понятно откуда взявшийся символ "минус"
TIME0=$(echo "$TIME" | sed 's/^.//')
# при значениях менее 60, выдасть в секундах:
if [ "$TIME0" -lt "60" ];
        then echo "$TIME0 секунд" #YES
        else
 X=$(( TIME0 / 60 ));
# при значениях больше 60, разделит на 60 и подаст как минуты:
 echo "$X минут"
fi

ffmpeg bash. замена пробелов в имени файла

#!/bin/bash
TIME1=$(date +"%s")
echo "";
echo " -vcodec libx264 -b:v 2550K -crf 23 -s 1280x720"
echo " -threads auto -thread_type frame -c:a aac -b:a 128k -strict -2"
echo "";
ls | grep ".avi"
echo "";
#ls | grep " "
# Заменяет пробелы символом подчеркивания в именах файлов в текущем каталоге.
ONE=1                     # единственное или множественное число (см. ниже).
number=0                  # Количество переименованных файлов.
FOUND=0                   # Код завершения в случае успеха.
for filename in *         # Перебор всех файлов в текущем каталоге.
do
     echo "$filename" | grep -q " "         #  Проверить — содержит ли имя файла
     if [ $? -eq $FOUND ]                   #+ пробелы.
     then
       fname=$filename                      # Удалить путь из имени файла.
       n=`echo $fname | sed -e "s/ /_/g"`   # Заменить пробелы символом подчеркивания.
       mv "$fname" "$n"                     # Переименование.
       let "number += 1"
     fi
done
if [ "$number" -eq "$ONE" ]
then
 echo "$number файл переименован."
else
 echo "Переименовано файлов: $number"
fi
echo "";
ls | grep ".avi"
#
echo -en "\033[32m Введи число = мах(18-26)мин Качество: \033[40m"; echo "";
read CRF
echo "";
echo -en "\033[37;1;41m Конвертировать видео из .avi в .mp4 ? (y/n) \033[0m"; echo "";
read item
case "$item" in
    y|Y) echo -en "\E[1;40;32m конвертирование в .mp4 ... \E[1;40;32m"; echo -en "\E[0m"; echo "";
    for i in *.avi; do
# -crf 18-26
        ffmpeg -i $i -vcodec libx264 -b:v 2550K -crf $CRF -s 1280x720 \
         -threads auto -thread_type frame -c:a aac -b:a 128k -strict -2 -y $i.mp4 2> /tmp/ffname;
        cat /tmp/ffname | grep -E "(Stream \#0:0)|(Stream \#0:1)" | sed -n '1,2p'
    done
echo "";
    for i in *.mp4; do
                ffmpeg -i $i 2> /tmp/ffname;
                cat /tmp/ffname | grep -E "(Stream \#0:0)|(Stream \#0:1)"
        done
        ;;
    n|N) echo -en "\033[32m Ввели «n», завершаем... \033[40m"; echo "";
        exit 0
        ;;
    *) echo "Ничего не ввели. Выполняем действие по умолчанию..."
        exit 0
        ;;
esac

# конец скрипта. записать контрольное время
TIME2=$(date +"%s")
# вычесть стоп-старт
TIME=$(($TIME1 - $TIME2))
# убрать не понятно откуда взявшийся символ "минус"
TIME0=$(echo "$TIME" | sed 's/^.//')
# при значениях менее 60, выдасть в секундах:
if [ "$TIME0" -lt "60" ];
        then echo "$TIME0 секунд" #YES
        else
 X=$(( TIME0 / 60 ));
# при значениях больше 60, разделит на 60 и подаст как минуты:
 echo -en "\E[1;40;32m $X минут \E[1;40;32m"; echo "";
fi

restore dd bash

#!/bin/bash
echo "";
echo "  Поиск XBMC"
sudo blkid | grep 'PARTLABEL="xbmc"'

# выполнить резервное копирование?
#blkid | grep 'PARTLABEL="xbmc"' | awk '{print $1}' | sed 's/..$//'

DEV=$(sudo blkid | grep 'PARTLABEL="xbmc"' | awk '{print $1}' | sed 's/..$//')
echo " Образ искать в директории: /home/$USER/iso"
echo "`ls /home/$USER/iso`"
echo " Укажи имя файла: (без .расширение)"
read NAME

echo -en "\033[37;1;41m выполнить восстановление из копии? (y/n) \033[0m"

read item
case "$item" in
    y|Y) echo -en "\033[31m Ввели «y», восстановление... \033[40m"
    sudo dd if=/home/$USER/iso/$NAME.img of=$DEV bs=4096
    mpg321 -g 100 /home/$USER/.backup/.torcs1.mp3
        ;;
    n|N) echo -en "\033[32m Ввели «n», завершаем... \033[40"
        exit 0
        ;;
    *) echo "Ничего не ввели. Выполняем действие по умолчанию..."
    exit 0
        ;;
esac

backup dd bash

#!/bin/bash
TIME1=$(date +"%s")
echo "";
echo "  Поиск XBMC"
sudo blkid | grep 'PARTLABEL="xbmc"' | grep -o 'TYPE="ext2" PARTLABEL="xbmc"'

# выполнить резервное копирование?
#blkid | grep 'PARTLABEL="xbmc"' | awk '{print $1}' | sed 's/..$//'

DEV=$(sudo blkid | grep 'PARTLABEL="xbmc"' | awk '{print $1}' | sed 's/..$//')
echo " Образ искать в директории: /home/$USER/iso"
echo " Укажи название файла: (XBMC_ название .img)"
read NAME

echo -en "\033[37;1;41m выполнить резервное копирование? (y/n) \033[0m"

read item
case "$item" in
    y|Y) echo -en "\033[31m Ввели «y», резервное копирование... \033[40m"
    sudo dd if=$DEV of=/home/$USER/iso/XBMC_$NAME.img bs=4096
    echo " Копирование завершено..."
    echo "Резервное копирование Дебиан завершено успешно!" | RHVoice-client \
 -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
    sleep 10
    UM=$(df -h | grep "$DEV" | awk '{print $6}')
    echo " определение устройства для отключения..."
    sleep 5
    sudo umount $UM
    echo " Устройство можно извлечь!"
echo "Устройство можно извлечь" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
    sleep 5
    mpg321 -g 100 /home/$USER/.backup/.torcs1.mp3 -q
        ;;
    n|N) echo -en "\033[32m Ввели «n», завершаем... \033[40"
        exit 0
        ;;
    *) echo "Ничего не ввели. Выполняем действие по умолчанию..."
    exit 0
        ;;
esac
TIME2=$(date +"%s")

TIME=$(($TIME1 - $TIME2))
TIME0=$(echo "$TIME" | sed 's/^.//')

if [ "$TIME0" -lt "60" ];
        then echo "$TIME0 секунд" #YES
        else
 X=$(( TIME0 / 60 ));
 echo "потрачено $X минут на копирование образа с флешки" | RHVoice-client -s Anna+CLB -r -0.1 -p -0.7 | aplay -q
 echo "потрачено $X минут на копирование образа с флешки"
fi

h265.sh

#!/bin/bash file="../mp4" if [ -d $file ]; then         echo "  Директория существует :-) "         for i in *.mp4; do f...