Найти тему
У Павла!

Видеопоток по rtsp на ESP32-CAM.

В прошлой статье я рассказал как смотреть видео с модуля ESP32-cam. Мы заливали скетч из стандартных примеров, но еще переделывали немного пример убрав все лишнее с веб страницы видео. Статью можно прочитать тут. Все было хорошо, за исключением того что мы могли только смотреть видео в реальном времени через веб интерфейс, но не могли его записывать, так как непонятно было как его захватывать. После того как я выложил видео на youtube мне написал один человек в комментариях, что уже реализовали возможность потокового видео rtsp на модуле ESP32-cam.

Дело в том, что в прошлом примере видео вещалось путем показа картинок постоянно обновляющихся и непонятно было чем их захватывать, а вот какраз когда видео вещается по протоколу rtsp, его уже можно будет захватить разными программами даже например VLC проигрывателем. Все готовые камеры видео наблюдения умеют вещать в rtsp.

Ну так вот, один энтузиаст который как он написал работал инженером в силиконовой долине придумал как заставить ESP32-cam и другие платы ESP32 с камерами вещать по rtsp потоку видео. Его проект есть на github.com:  https://github.com/geeksville/TenDollarWebcam

Его готовый вариант отличный но есть несколько нюансов:

  1. Там много библиотек используется и я все не смог найти, поэтому как он и рекомендует нужно загружать код в Микроконтроллер через программу PlatformIO (эта программа сама находит все библиотеки)
  2. В примере на github.com используется библиотека AutoWifi и настройка wi-fi осуществляется через smartconfig (это грубо говоря фишка контроллеров ESP чтоб настраивать wi-fi своеобразным образом и записывает это все в EEPROM) В данном примере wi-fi настраивается через android или ios приложение.

С первым я ничего сделать не смог, всетаки придется заливать скетч через PlatformIO.

С вторым казалось бы все очень удобно, установил через приложение и забыл, но я столкнулся с проблемой, он намертво записывает в EEPROM настройки и уже к другой wi-fi сети не привязать так просто, пришлось вычищать EEPROM.  Поэтому я немного переделал скетч чтоб можно было настройки wi-fi задавать в ручную по старинке.

Итак поехали, для начала скачаем архив программы либо с github.com либо вот этот https://yadi.sk/d/Ys0jT6_1mSb87Q, он уже переделан под настройку wi-fi вручную и раскомментировал строчку для работы с модулем ESP32-cam.

После этого нужно установить программу Visual Studio и установить ее.

После того как установили Visual studio нужно установить плагит PlatformIO, это можно сделать как показано на картинке:

-2

Тоесть как видно из картинки выбираем пятый пункт в левом столбце, он выглядит в виде квадрата в квадрате. Далее в поиске напишем Platformio IDE и в результате поиска первый пункт и будет, тот который нам нужен, его нужно установить. После установи у нас появится новый пункт шестой по счету в левом столбце, он в виде головы муравья, вот с ним и будем работать.

Далее в окне уже плагина Platformio нажимаем кнопку open project как показано на картинке ниже и выбираем там папку с заранее разархивированной программой которую скачали либо с гитхаба либо по моей ссылке.

-3

Ну и на последней картинке ниже я выделил прямоугольниками на какие моменты нужно обращать внимание и чтоб все без ошибок заработало. Также я каждый прямоугольник пронумеровал, чтоб понимали последовательность.

-4
  1. В первом прямоугольнике мы видим уже выбранный наш проект и в подпапке src сам основной код программы ESP32-devcam.ino. Выбираем и откроется код программы, там самое главное для работы с esp32-cam нужно раскомментировать строчку “define USEBOARD_AITHINKER” . Также здесь напишите SSID вашей wi-fi сети и пароль от нее.
  2. Далее вторым квадратом выделена “галочка” ее нужно обязательно нажать, чтоб PlatformIO подгрузил все библиотеки.
  3. Далее квадрат под цифрой 3 это консоль, мы открывает консоль и сразу же обращаем внимание на прямоугольник под номером 4.
  4. В этом прямоугольнике нужно обязательно удоставериться что стоит PlatformIO. Если его там не будет, то скетч не загрузится (Если вы не соблюдаете последовательность то скорее всего у Вас там будет powershell)
  5. Ну и под пятым пунктом у нас команжа “pip run -t upload” – данная команда собирает скетч и заливает его в микроконтроллер. Но перед вводом этой команды Вы сначала подключите микроконтроллер обязательно с замкнутой перемычкой как показано на схеме:
-5

После успешной заливки скетча, отключаем ESP32-cam от компьютера, убираем перемычку и подключаем заново и контроллер должен подключиться к wi-fi сети указанной в скетче. Полученный ip адресс можно узнать в мониторе порта при подключении контроллера.

После этого чтоб захватить видео rtsp нам нужно например в VLC плеере выбрать медиа->открыть URL..

-6

Далее в открывшемся окне нужно ввести следующий адрес: rtsp://”ip адрес”:8554/mjpeg/1

-7

После этого выбираем воспроизвести и если все верно сделали то видим поток видео в VLC плеере с ESP32-cam.

Ну и последнее, чтоб  записывать видео с VLC плеера нужно выбрать запись на главном экране vlc когда будет вещаться потоковое видео и оно срау начнет записываться и сохраняться по пути профиль->видео.

-8

На этом думаю все, надеюсь было понятно все то что я описал. Также я снял видео, в котором все подробно снял и рассказал.

Данную плату ESP32-cam можно купить тут: http://ali.pub/3f04uj

Также понадобится usb/ttl преобразователь для прошивки: http://ali.pub/3f156r

Если у Вас имеется 3D принтер то вот хороший корпус для камеры: https://www.thingiverse.com/thing:3652452

Видео: