#!/bin/bash
file="../mp4"
if [ -d $file ]; then
echo " Директория существует :-) "
for i in *.mp4; do ffmpeg -i "$i" -c:v libx265 -vtag hvc1 -s 720x480 -r 24 -threads 0 -af "volume=18dB" -crf 30 -ac 2 -strict experimental -c:a aac -b:a 160k "../mp4/${i%.*}.mp4"; done
else
echo " Директория не существует ;-( "
mkdir ../mp4
for i in *.mp4; do ffmpeg -i "$i" -c:v libx265 -vtag hvc1 -s 720x480 -r 24 -threads 0 -af "volume=18dB" -crf 30 -ac 2 -strict experimental -c:a aac -b:a 160k "../mp4/${i%.*}.mp4"; done
fi
for i in *.avi; do ffmpeg -i "$i" -c:v libx265 -vtag hvc1 -s 720x480 -r 24 -threads 0 -af "volume=18dB" -crf 30 -ac 2 -strict experimental -c:a aac -b:a 160k "../mp4/${i%.*}.mp4"; done
for i in *.mkv; do ffmpeg -i "$i" -c:v libx265 -vtag hvc1 -s 720x480 -r 24 -threads 0 -af "volume=18dB" -crf 30 -ac 2 -strict experimental -c:a aac -b:a 160k "../mp4/${i%.*}.mp4"; done
#-s 1280x720
#-c:a copy
#ffmpeg -i <input> -c:v libx264 -b:v 1M -x265-params pass=1 -f mp4 /dev/null
#ffmpeg -i <input> -c:v libx264 -b:v 1M -x265-params pass=2 <output>.mp4
Показаны сообщения с ярлыком ffmpeg. Показать все сообщения
Показаны сообщения с ярлыком ffmpeg. Показать все сообщения
вторник, 6 июля 2021 г.
h265.sh
воскресенье, 20 октября 2019 г.
rec stream mjpg
#!/bin/bash
echo "`date +%H\ %M\ %S\ %N` bash start"
#if ping -c 1 172.28.253.4 2>&1> /dev/null
# then ssh lv@172.28.253.4 '/sh/rec-stream.sh' &
# echo "`date +%H\ %M\ %S\ %N` lv rec stream start [OK]"
#fi
if ping -c 1 192.168.0.11 2>&1> /dev/null
then ssh evg@192.168.0.11 '/sh/rec_stream.sh' &
echo "`date +%H\ %M\ %S\ %N` asus rec stream start [OK]"
fi
#if ls /tmp/ | grep -oE "*.mp4" &>/dev/null
# then rm /tmp/*.mp4
#fi
#echo "`date +%H\ %M\ %S\ %N` rm .mp4 [OK]"
DATA=$(date +%Y-%m-%d_%H-%M-%S_%N)
echo "`date +%H\ %M\ %S\ %N` ffmpeg rec [OK]"
#ffmpeg -i http://127.0.0.1:8000/stream.mjpg -to 0:02 -c:v copy -c:a copy /tmp/$DATA.mp4 2> /dev/null
#echo "`date +%H\ %M\ %S\ %N` ffmpeg stop [OK]"
#if ls /var/www/html/mrtg/ | grep -oE "cam1.jpg" &>/dev/null
# then rm /var/www/html/mrtg/cam1.jpg
#fi
#echo "`date +%H\ %M\ %S\ %N` bash rm jpg [OK]"
ffmpeg -f MJPEG -y -i http://127.0.0.1:8000/stream.mjpg \
-r 1 -vframes 1 -q:v 1 /var/www/html/mrtg/cam1.jpg 2> /dev/null
echo "`date +%H\ %M\ %S\ %N` frames [OK]"
convert /var/www/html/mrtg/cam1.jpg -background none -fill black -box 'white' -gravity South \
-pointsize 20 -annotate +0+1050 $DATA /var/www/html/mrtg/cam.jpg
echo "`date +%H\ %M\ %S\ %N` image convert [OK]"
if ping -c 1 192.168.0.11 2>&1> /dev/null
then scp /var/www/html/mrtg/cam.jpg evg@192.168.0.11:/1TB/.zm/v/$DATA.jpg 2>&1 > /dev/null &
echo "`date +%H\ %M\ %S\ %N` scp 11 jpg [OK]"
fi
if ping -c 1 172.28.253.4 2>&1> /dev/null
then scp /var/www/html/mrtg/cam.jpg lv@172.28.253.4:/a/$DATA.jpg 2>&1 > /dev/null &
echo "`date +%H\ %M\ %S\ %N` scp 4 jpg [OK]"
fi
--------------------------------------------------------------
nano rec_stream.sh asus
#!/bin/bash
if ! ps aux | grep -v color | grep -v grep | grep -E ffmpeg &> /dev/null
then DATA=$(date +%Y-%m-%d_%H-%M-%S_%N)
ffmpeg -i http://192.168.0.4:8000/stream.mjpg \
-to 0:10 -c:v copy -c:a copy /1TB/.zm/v/$DATA.mp4 2> /dev/null
fi
echo "`date +%H\ %M\ %S\ %N` bash start"
#if ping -c 1 172.28.253.4 2>&1> /dev/null
# then ssh lv@172.28.253.4 '/sh/rec-stream.sh' &
# echo "`date +%H\ %M\ %S\ %N` lv rec stream start [OK]"
#fi
if ping -c 1 192.168.0.11 2>&1> /dev/null
then ssh evg@192.168.0.11 '/sh/rec_stream.sh' &
echo "`date +%H\ %M\ %S\ %N` asus rec stream start [OK]"
fi
#if ls /tmp/ | grep -oE "*.mp4" &>/dev/null
# then rm /tmp/*.mp4
#fi
#echo "`date +%H\ %M\ %S\ %N` rm .mp4 [OK]"
DATA=$(date +%Y-%m-%d_%H-%M-%S_%N)
echo "`date +%H\ %M\ %S\ %N` ffmpeg rec [OK]"
#ffmpeg -i http://127.0.0.1:8000/stream.mjpg -to 0:02 -c:v copy -c:a copy /tmp/$DATA.mp4 2> /dev/null
#echo "`date +%H\ %M\ %S\ %N` ffmpeg stop [OK]"
#if ls /var/www/html/mrtg/ | grep -oE "cam1.jpg" &>/dev/null
# then rm /var/www/html/mrtg/cam1.jpg
#fi
#echo "`date +%H\ %M\ %S\ %N` bash rm jpg [OK]"
ffmpeg -f MJPEG -y -i http://127.0.0.1:8000/stream.mjpg \
-r 1 -vframes 1 -q:v 1 /var/www/html/mrtg/cam1.jpg 2> /dev/null
echo "`date +%H\ %M\ %S\ %N` frames [OK]"
convert /var/www/html/mrtg/cam1.jpg -background none -fill black -box 'white' -gravity South \
-pointsize 20 -annotate +0+1050 $DATA /var/www/html/mrtg/cam.jpg
echo "`date +%H\ %M\ %S\ %N` image convert [OK]"
if ping -c 1 192.168.0.11 2>&1> /dev/null
then scp /var/www/html/mrtg/cam.jpg evg@192.168.0.11:/1TB/.zm/v/$DATA.jpg 2>&1 > /dev/null &
echo "`date +%H\ %M\ %S\ %N` scp 11 jpg [OK]"
fi
if ping -c 1 172.28.253.4 2>&1> /dev/null
then scp /var/www/html/mrtg/cam.jpg lv@172.28.253.4:/a/$DATA.jpg 2>&1 > /dev/null &
echo "`date +%H\ %M\ %S\ %N` scp 4 jpg [OK]"
fi
--------------------------------------------------------------
nano rec_stream.sh asus
#!/bin/bash
if ! ps aux | grep -v color | grep -v grep | grep -E ffmpeg &> /dev/null
then DATA=$(date +%Y-%m-%d_%H-%M-%S_%N)
ffmpeg -i http://192.168.0.4:8000/stream.mjpg \
-to 0:10 -c:v copy -c:a copy /1TB/.zm/v/$DATA.mp4 2> /dev/null
fi
понедельник, 30 января 2017 г.
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"
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"
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
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
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
Подписаться на:
Сообщения (Atom)
h265.sh
#!/bin/bash file="../mp4" if [ -d $file ]; then echo " Директория существует :-) " for i in *.mp4; do f...
-
30 мая воплотилась в жизнь давняя мечта -- покататься на лодке. Плюс к тому в тот же день я попробовал свои силы в тире. Не разочаровался в ...
-
На этой странице (UTF-8) информация полученная при помощи программ nmap и whois. Надо ведь знать, кто ломиться в мой комп! А может и ваш...