Задать вопрос
@powersnake

Как и на чем написать мини систему видеонаблюдения?

Я начинающий разработчик на Python и у меня есть задача создать небольшую систему видеонаблюдения. Подскажите, каким стеком технологий мне лучше пользоваться. В настоящее время я рассматриваю Python, Django и OpenCV. Я хочу реализовать видеоархив, выводить потоковое видео в удобном формате и создать навигацию по видеопотоку. Поделитесь, в каком направлении мне стоит двигаться.
Сначала я попробовал выводить в Django поток картинок используя библиотеку OpenCV
<div class="video-container">
    <img src="{% url 'video_feed' %}?rtspurl={{ rtsp_url }}" width="640" height="480" alt="{{ rtsp_url }}" />
    <div class="separator"></div>  <!-- Added separator div -->
    <p class="cam-name">Трансляция камеры: {{ cam_name }}<br>RTSP: <a>{{ rtsp_url }}</a></p>
  </div>


я генерировал кадры с помощью OpenCV
def generate_frames(rtsp_url):
    cap = cv2.VideoCapture(rtsp_url)  # Замените на ваш RTSP URL

    while True:
        success, frame = cap.read()
        if not success:
            break

        # Кодируем кадр в JPEG
        ret, buffer = cv2.imencode('.mp4', frame)
        frame = buffer.tobytes()

        yield (b'--frame\r\n'
               b'Content-Type: video/mp4\r\n\r\n' + frame + b'\r\n')

Люди которые имеют в этом опыт подскажите в каком направлении мне двигаться на python и есть ли вообще смысл на нем писать
или мне стоит сменить ЯП для этой задачи
  • Вопрос задан
  • 462 просмотра
Подписаться 3 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 2
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
На том стеке, который вы знаете. Если не знаете - то выбрать тот, который нравится, интересен или хочется пощупать/изучить.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
1) Надо сначала нарисовать архитектурную диаграмму безотносительно языка программирования.
В виде кубиков и стрелочек. Например главным кубиком этой системы может быть сервер и система
хранения. Отдельно например рабочее место оператора или пользователя системы. Перечислить
что каждая часть делает. Нарисовать ограничения. Например если сервер обязан транслировать
2 канала по 4К то его СХД должна в номинальном режиме успевать это передавать.

А язык программирования появится уже потом как следствие из этой диаграммы.

Сам по себе Python - подходит как оркестратор или запускатель процессов в этой системе.
В самом простейшем варианте python может запускать например ffmpeg и контролировать
heartbeat например.

2) Зачем здесь автор хочет OpenCV - пока непонятно. Лучше сначала построить прототип без
этой фичи а потом уже написать некое дополнение к задаче чтобы включить туда машинное зрение
как отдельную часть. В противном случае ТЗ выходит слишком завязанным где все-от-всего зависит
и непонятно с чего начинать. А начинать надо с простого а не со сложного.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы