Инструменты пользователя

Инструменты сайта


cam

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
cam [05.05.2024 16:00] augincam [05.04.2025 05:09] (текущий) augin
Строка 11: Строка 11:
 [[XM530_50X30-WG_8M]] [[XM530_50X30-WG_8M]]
  
-====== cron ====== +[[MSC316DM+SC4236]]
-<code bash> +
-cat << EOF > /etc/cron.d/dvr +
-# record start +
-*/10 * * * * root /opt/DVR/dvr.sh +
-EOF +
-</code>+
  
-====== cat dvr.sh ====== 
-  
-<code bash> 
-#!/bin/bash 
- 
-# Задаем путь к конфиг файлу go2rtc 
-config_file="/opt/go2rtc/go2rtc.yaml" 
-streams=$(yaml2json "$config_file" | jq -r '.streams | keys[]') 
- 
-# Директория для сохранения файлов 
-base_dir="/media/disk1/video" 
- 
-# Создаем директории по году, месяцу и дню, если они не существуют 
-year=$(date +"%Y") 
-month=$(date +"%m") 
-day=$(date +"%d") 
- 
-# Получаем текущее время в формате "час_минуты" 
-current_time=$(date +"%H-%M") 
-M=$(date +"%M") 
-# Длительность записи в секундах (10 минут) 
-duration=600 
- 
-# Записываем каждый поток в отдельный файл MP4 
-for stream_name in $streams; do 
-    # создаем структуру папок 
-    [ ! -d "$base_dir/$stream_name/$year/$month/$day" ] && mkdir -p "$base_dir/$stream_name/$year/$month/$day" 
-    # Создаем выходной файл MP4 с текущим временем в имени 
-    output_file="$base_dir/$stream_name/$year/$month/$day/${current_time}.mp4" 
-    # Команда для захвата видеопотока и записи в файл 
-    ffmpeg -hide_banner -loglevel warning -threads 2 -avoid_negative_ts make_zero -fflags +nobuffer+genpts+discardcorrupt -flags low_delay -rtsp_transport tcp -use_wallclock_as_timestamps 1 -i "rtsp://127.0.0.1:8554/$stream_name" -reset_timestamps 1 -strftime 1 -c:v copy -c:a aac -strict experimental -t "$duration" "$output_file" &> $base_dir/$stream_name'_'$M'.txt' & 
-done 
- 
-</code> 
- 
-====== cat cleanup.sh ====== 
-<code bash> 
-#!/bin/bash 
- 
-# Set the target size for camera folders in GB 
-target_size_gb=90 
- 
-# Directory containing camera folders 
-base_dir="/media/disk1/video" 
- 
-# Iterate over camera folders 
-for camera_dir in "$base_dir"/*/; do 
-    # Get the current size of the camera folder in GB without decimal part 
-    size_gb=$(du -s "$camera_dir" | awk '{printf "%.0f\n", $1 / 1024 / 1024}') 
- 
-    # Calculate how much to delete to reach the target size 
-    space_to_free_gb=$((size_gb - target_size_gb)) 
- 
-    # Check if the current size exceeds the target size 
-    if (( size_gb > target_size_gb )); then 
-        echo "Cleaning $camera_dir" 
-        # Delete oldest files until the folder size is reduced to the target size 
-        while (( space_to_free_gb > 0 )); do 
-            # Delete the oldest file in the folder 
-            find "$camera_dir" -type f -printf '%T@ %p\n' | sort -n | head -n 1 | cut -d' ' -f2- | xargs rm 
-            # Update the current size 
-            size_gb=$(du -s "$camera_dir" | awk '{printf "%.0f\n", $1 / 1024 / 1024}') 
-            # Calculate the remaining space to free 
-            space_to_free_gb=$((size_gb - target_size_gb)) 
-        done 
-    fi 
-done 
-</code> 
cam.1714924801.txt.gz · Последнее изменение: (внешнее изменение)