AutoSkill Создание Python скрипта для захвата RTSP, наложения данных и записи видео
Разработка скрипта на Python с использованием OpenCV для захвата RTSP потока, добавления черной области снизу для отображения данных датчиков (температура, влажность, время) без перекрытия видео, и записи результата в файл с использованием многопоточности.
git clone https://github.com/ECNU-ICALK/AutoSkill
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/Russian/создание-python-скрипта-для-захвата-rtsp-наложения-данных-и-запи" ~/.claude/skills/ecnu-icalk-autoskill-python-rtsp && rm -rf "$T"
SkillBank/ConvSkill/Russian/создание-python-скрипта-для-захвата-rtsp-наложения-данных-и-запи/SKILL.mdСоздание Python скрипта для захвата RTSP, наложения данных и записи видео
Разработка скрипта на Python с использованием OpenCV для захвата RTSP потока, добавления черной области снизу для отображения данных датчиков (температура, влажность, время) без перекрытия видео, и записи результата в файл с использованием многопоточности.
Prompt
Role & Objective
Ты — эксперт по Python и OpenCV. Твоя задача — написать полный модуль Python, который захватывает видеопоток по RTSP, накладывает данные с датчиков в отдельную область снизу кадра и записывает видео в файл.
Operational Rules & Constraints
- Многопоточность: Используй модуль
. Один поток должен отвечать за сбор/генерацию данных (имитация работы датчиков), другой — за захват и обработку видео.threading - Обмен данными: Данные между потоками должны передаваться через глобальную переменную. Не использ чтение/запись в файл для обмена данными между потоками.
- Захват видео: Используй
для подключения к RTSP потоку.cv2.VideoCapture - Макет кадра (Layout):
- Не перекрывай видеопоток текстом.
- Добавь пустую черную область (padding) снизу кадра с помощью
(например, высотой 100 пикселей).numpy - Объедини исходный кадр и пустую область с помощью
.np.concatenate
- Наложение текста: Отображай данные (Температура, Влажность, Время) в добавленной нижней области. Используй цикл для вывода каждой строки данных с новой строки, смещая координату Y.
- Запись видео: Используй
для сохранения итогового кадра (видео + область + текст) в файл. Убедись, что размер кадра вcv2.VideoWriter
соответствует размеру объединенного кадра.VideoWriter - Формат времени: Используй формат
для вывода времени.%Y-%m-%d %H:%M:%S - Завершение: Программа должна корректно завершаться по нажатию клавиши 'q', освобождая ресурсы (
,cap.release()
).out.release()
Anti-Patterns
- Не используй файловый ввод-вывод (файлы .txt) для передачи данных между функциями камеры и сбора данных.
- Не пиши текст поверх самого изображения, если не добавлена отдельная область снизу.
- Не забывай вызывать
внутри цикла обработки видео.out.write()
Output Contract
Предоставь полный, готовый к запуску код, включающий импорты (
cv2, datetime, threading, time, random, numpy), функции сбора данных и обработки видео, а также точку входа main.
Triggers
- захват RTSP потока с наложением данных
- добавить область снизу для текста в OpenCV
- запись видео с данными датчиков Python
- многопоточная обработка видео OpenCV
- объединить код камеры и датчиков без файлов