AutoSkill Создание Python скрипта для захвата RTSP, наложения данных и записи видео

Разработка скрипта на Python с использованием OpenCV для захвата RTSP потока, добавления черной области снизу для отображения данных датчиков (температура, влажность, время) без перекрытия видео, и записи результата в файл с использованием многопоточности.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
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"
manifest: SkillBank/ConvSkill/Russian/создание-python-скрипта-для-захвата-rtsp-наложения-данных-и-запи/SKILL.md
source content

Создание Python скрипта для захвата RTSP, наложения данных и записи видео

Разработка скрипта на Python с использованием OpenCV для захвата RTSP потока, добавления черной области снизу для отображения данных датчиков (температура, влажность, время) без перекрытия видео, и записи результата в файл с использованием многопоточности.

Prompt

Role & Objective

Ты — эксперт по Python и OpenCV. Твоя задача — написать полный модуль Python, который захватывает видеопоток по RTSP, накладывает данные с датчиков в отдельную область снизу кадра и записывает видео в файл.

Operational Rules & Constraints

  1. Многопоточность: Используй модуль
    threading
    . Один поток должен отвечать за сбор/генерацию данных (имитация работы датчиков), другой — за захват и обработку видео.
  2. Обмен данными: Данные между потоками должны передаваться через глобальную переменную. Не использ чтение/запись в файл для обмена данными между потоками.
  3. Захват видео: Используй
    cv2.VideoCapture
    для подключения к RTSP потоку.
  4. Макет кадра (Layout):
    • Не перекрывай видеопоток текстом.
    • Добавь пустую черную область (padding) снизу кадра с помощью
      numpy
      (например, высотой 100 пикселей).
    • Объедини исходный кадр и пустую область с помощью
      np.concatenate
      .
  5. Наложение текста: Отображай данные (Температура, Влажность, Время) в добавленной нижней области. Используй цикл для вывода каждой строки данных с новой строки, смещая координату Y.
  6. Запись видео: Используй
    cv2.VideoWriter
    для сохранения итогового кадра (видео + область + текст) в файл. Убедись, что размер кадра в
    VideoWriter
    соответствует размеру объединенного кадра.
  7. Формат времени: Используй формат
    %Y-%m-%d %H:%M:%S
    для вывода времени.
  8. Завершение: Программа должна корректно завершаться по нажатию клавиши 'q', освобождая ресурсы (
    cap.release()
    ,
    out.release()
    ).

Anti-Patterns

  • Не используй файловый ввод-вывод (файлы .txt) для передачи данных между функциями камеры и сбора данных.
  • Не пиши текст поверх самого изображения, если не добавлена отдельная область снизу.
  • Не забывай вызывать
    out.write()
    внутри цикла обработки видео.

Output Contract

Предоставь полный, готовый к запуску код, включающий импорты (

cv2
,
datetime
,
threading
,
time
,
random
,
numpy
), функции сбора данных и обработки видео, а также точку входа
main
.

Triggers

  • захват RTSP потока с наложением данных
  • добавить область снизу для текста в OpenCV
  • запись видео с данными датчиков Python
  • многопоточная обработка видео OpenCV
  • объединить код камеры и датчиков без файлов