Для чего это нужно
Мы хотим получить доступ к потоку видео с камеры в реальном времени на компьютере или устройстве захвата. Например, через VLC плеер записать видео с камеры на компьютер.
Что потребуется для прошивки ESP32-CAM
Много инструкций в интернете как настроить Aduino IDE для работы с ESP32-CAM. Настраиваем.
Скачиваем библиотеку для RTSP с github https://github.com/geeksville/Micro-RTSP
Code -> Download ZIP
Добавляем в Arduino IDE
Скетч -> Подключить библиотеку -> Добавить .Zip библиотеку…
Открываем пример из папки examples проект ESP32-devcam.ino
Его нужно поправить для использования с ESP32-CAM.
Находим строчку
cam.init(esp32cam_config);
Заменяем на
cam.init(esp32cam_aithinker_config);
Отключаем внешний OLED экран. На нашей плате его нет.
//#define ENABLE_OLED
Выбираем куда будем транслировать изображение
#define ENABLE_WEBSERVER // через браузер
#define ENABLE_RTSPSERVER //через RTSP
Можно оставить оба.
Теперь настраиваем подключение к вашей WiFi точке.
Ищем файл wifikeys_template.h Изменяем его
const char *ssid = "YOURNETHERE"; // здесь название WiFi сети
const char *password = "YOURPASSWORDHERE"; // здесь пароль
Так же нам надо настроить качество изображения. Ищем файл OV2640.cpp Он должен находится в директории Arduino IDE в папке \libraries\Micro-RTSP\src
Находим структуру
camera_config_t esp32cam_aithinker_config {
Устанавливаем параметр
.frame_size = FRAMESIZE_VGA
Это разрешение 640x480
Бывают еще
FRAMESIZE_SVGA // 800x600
FRAMESIZE_XGA // 1024x768
FRAMESIZE_HD // 1280x720
FRAMESIZE_SXGA // 1280x1024
FRAMESIZE_UXGA // 1600x1200
Так как разрешение не очень большое то меняем
.fb_count = 1
Сохраняем. Получается так
Тестирование
Прошиваем наш модуль.
После прошивки нажимаем кнопку Reset на коммуникационной плате. Открываем Монитор порта. Где находим ip адрес нашей камеры.
Открываем веб браузер. Например Chrome. Переходим по ссылке, чтобы посмотреть видео
http://<ip>/
или текущий кадр
http://<ip>/jpg
Так же можно открыть видео через VLC плеер.
В меню выбираем Медиа -> Открыть URL…
rtsp://<ip>:8554/mjpeg/1
Можно записать видео.
Проблемы
1. Поддерживается одна сессия. Т.е открыть видео можно только с одного приложения.
2. Скорость передачи потока через RTSP очень маленькая. Через браузер все отлично. Пока не разобрался в чем проблема. Может кто подскажет в комментариях.
3. Для стабильной работы должна быть внешняя антенна на модуле.