Найти тему
Паяльник и код

ESP32-CAM. Потоковая передача видео через браузер и RTSP

Оглавление

Для чего это нужно

Мы хотим получить доступ к потоку видео с камеры в реальном времени на компьютере или устройстве захвата. Например, через VLC плеер записать видео с камеры на компьютер.

Что потребуется для прошивки ESP32-CAM

Много инструкций в интернете как настроить Aduino IDE для работы с ESP32-CAM. Настраиваем.

Скачиваем библиотеку для RTSP с github https://github.com/geeksville/Micro-RTSP

Code -> Download ZIP

-2

Добавляем в Arduino IDE

Скетч -> Подключить библиотеку -> Добавить .Zip библиотеку…

-3

Открываем пример из папки 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

Сохраняем. Получается так

-4

Тестирование

Прошиваем наш модуль.

После прошивки нажимаем кнопку Reset на коммуникационной плате. Открываем Монитор порта. Где находим ip адрес нашей камеры.

Открываем веб браузер. Например Chrome. Переходим по ссылке, чтобы посмотреть видео

http://<ip>/

или текущий кадр

http://<ip>/jpg

-5

Так же можно открыть видео через VLC плеер.

В меню выбираем Медиа -> Открыть URL…

rtsp://<ip>:8554/mjpeg/1

-6

Можно записать видео.

Проблемы

1. Поддерживается одна сессия. Т.е открыть видео можно только с одного приложения.

2. Скорость передачи потока через RTSP очень маленькая. Через браузер все отлично. Пока не разобрался в чем проблема. Может кто подскажет в комментариях.

3. Для стабильной работы должна быть внешняя антенна на модуле.