ФАЙЛ «SERVER_SITE.PY»
Основные задачи файла:
1. Получение данных о портах и RTSP-потоке: Из командной строки.
2. Настройка сокетов и WebSocket соединений: Для приема и отправки данных.
3. Захват видео с камеры: И отправка закодированных изображений клиентам.
4. Асинхронное управление: Веб-сервером и сокетами, с использованием Tornado и asyncio.
ИНИЦИАЛИЗАЦИЯ БИБЛИОТЕК
import asyncio
import base64
import contextlib
import io
import json
import sys
import threading
from PIL import Image
import cv2
import tornado.ioloop
import tornado.web
import tornado.websocket
import socket- asyncio: Модуль для асинхронного программирования.
- base64: Модуль для кодирования и декодирования данных в формате base64.
- contextlib: Контекстные менеджеры и утилиты для работы с ними.
- io: Модуль для работы с потоками ввода/вывода.
- json: Модуль для работы с JSON-данными.
- sys: Модуль для работы с параметрами командной строки и другими системными функциями.
- threading: Модуль для многопоточности.
- PIL.Image: Библиотека для обработки изображений.
- cv2: Библиотека OpenCV для обработки изображений и видео.
- tornado.ioloop, tornado.web, tornado.websocket: Tornado - веб-фреймворк для создания веб-приложений и работы с WebSocket.
- socket: Модуль для сетевого взаимодействия.
ПАРАМЕТРЫ ПОДКЛЮЧЕНИЯ
Этот блок кода обрабатывает аргументы командной строки, чтобы установить параметры подключения:
- sys.argv: Используется для получения аргументов командной строки.
- port_data: Информация о портах для веб-сервера и RTSP потока.
НАСТРОЙКА СОКЕТА
Здесь происходит создание и настройка сокета для прослушивания входящих соединений.
ИНИЦИАЛЗАЦИЯ КЛАССА MainHandler
В этом классе происходит обработка GET-запроса и рендеринг HTML-шаблона.
ИНИЦИАЛИЗАЦИЯ КЛАССА SimpleWebSocket
В этом классе происходит обработка открытия, получения сообщений и закрытия WebSocket соединения, так же асинхронная отправка обновлений клиенту.
ЗАХВАТ ВИДЕО
В этом блоке кода инициализируется функция для захвата кадра из RTSP потока и его кодирования в формат base64.
ЗАПУСК TORNADO
Это асинхронная функция для настройки и запуска веб-сервера Tornado.
ОБРАБОТКА СОКЕТОВ
Это функция для обработки входящих соединений через сокеты и получения данных от клиентов
ГЛАВНАЯ ФУНКЦИЯ
Это основная функция запуска, которая инициализирует поток для обработки сокетов и запускает сервер Tornado.
ЗАВЕРШЕНИЕ РАБОТЫ
Здесь происходит закрытие сокета и сервера Tornado
Процесс подготовки кода:
Создайте файл и назовите его Server_site.py

Поэтапно скопируйте код в файл:






Установите необходимые библиотеки: в данном случае у нас не предустановлены следующие библиотеки: PIL (Pillow), cv2 и tornado. Если у вас не установлены эти библиотеки, выполните следующие действия:
Откройте терминал VS Code (Terminal -> New Termial или комбинацией Ctrl + Shift + `)
В терминале поочередно введите и запустите следующие команды: pip install pillow; pip install opencv-python, pip install tornado
Последнее обновление