суббота, 26 октября 2019 г.

цикличная запись потока по 10 секунд

#!/bin/bash
export DISPLAY=:0
export LANG=ru_RU.UTF-8
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"

i='129439' #параметр обозначающий порог свободного места на диске в МБ
FREE=$(df -m | grep "/1TB" | awk '{print $4}')
while [ "$i" -le "$FREE" ] #запись пока есть свободное место на диске
do
  echo "Запись нового файла: " $(date +%Y-%m-%d_%H-%M-%S)".mkv"
  if ! [ `ps -ef| grep -E "ffmpeg" | wc -l ` -gt 1 ]
   then ffmpeg -i http://192.168.0.4:8000/stream.mjpg -to 0:10 \
    -vf "drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: text='%{localtime\:%X}': fontcolor=black@0.8: x=640: y=10" "/1TB/.zm/move/$(date +%Y-%m-%d_%H-%M-%S).mkv" 2>/dev/null
  fi
  FREE=$(df -m | grep "/1TB" | awk '{print $4}') #проверим сколько осталось свободного места после записи файла
  if [ "$i" -gt "$FREE" ];
  then
#ищем самый старый файл, за последние пять дней
#    var_d=$(find /1TB/.zm/move/ -type f -name '*.mkv' -mtime -5  | head -n 1)
    find /1TB/.zm/move/ -type f -name '*.mkv' -printf '%T+ %p\n' | sort | head -n1 | awk '{print $2}' > /tmp/rmM
    for r in $(cat /tmp/rmM); do echo " rm move $r"; rm $r; done
    FREE=$(df -m | grep "/1TB" | awk '{print $4}') #проверим сколько осталось свободного места
  fi
done

Комментариев нет:

Отправить комментарий

h265.sh

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