#!/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 /opt/DVR/cleanup.sh &> $base_dir'/cleanup.txt' &