im starting a new page as the [[https://wiki.idiot.io/esp32-cam|old one]] is a bit outdated. ==== TTgo ==== **playing with the (in)(not)famous [[https://wiki.idiot.io/esp32-cam?s[]=ttgo#ttgo_t-journal|TTGO]] T-Journal** > //goal:// creating a tamper-proof system for scientific data by linking them and their metadata to an unfalsifiable signature in the blockchain. more informations on this research page: [[BIDI2021]] {{https://hostb.org/XP2/32F1DC93-9109-4FF5-B208-E2CD2DF35649.jpeg?1024}} Receiving the HTTP Stream (multipart/x-mixed-replace | Content-Type: image/jpeg ): vlc http://172.20.10.8 #(IP of the board) Saving a Picture with FFMPEG: ffmpeg -y -i http://172.20.10.8 -ss 0 -vframes 1 -vcodec mjpeg -f image2 tomato.jpg Saving + Adding a SHA256 MetaData: ffmpeg -y -i http://172.20.10.8 -ss 0 -vframes 1 -vcodec mjpeg -f image2 tomato.jpg && exiv2 -M"set Exif.Photo.UserComment F902F4FD763A551D5387C224D34A9C9A0B383850386EC1509EB232A49DE5D5F9" tomato.jpg Reading the MetaData: exiv2 tomato.jpg File name: tomato.jpg File size: 8974 Bytes MIME type: image/jpeg Image size: 800x600 Exif comment: F902F4FD763A551D5387C224D34A9C9A0B383850386EC1509EB232A49DE5D5F9 {{https://hostb.org/YYY/tomato.jpg?600}} ==== TTgo CAMERA PLUS bigiot ==== T-Camera Plus Esp32-Dowdq6 8Mb Spram Camera Module Ov2640 1.3 Inch Display Rear Camera(Fish-Eye Rear Camera) {{:pasted:20210608-054837.png?300}} * [[http://www.lilygo.cn/prod_view.aspx?TypeId=50030&Id=1272&FId=t3:50030:3|productPage]] [[https://archive.is/wip/oteCt|archive]] * [[https://www.aliexpress.com/item/4000246417333.html|aliexpress]] * https://github.com/Xinyuan-LilyGO/esp32-camera-plus-bigiot * OG firmware https://github.com/Xinyuan-LilyGo/esp32-camera-screen * https://github.com/CurtisIreland/electronics/tree/master/ESP32-TTGOCamera/Camera-TTGO> [[https://www.youtube.com/watch?v=m4Go1i1oBZM|youtube]] ==== TTGO Camera Plus Standalone Camera firmware ==== https://www.instructables.com/Arduino-Selfie-Camera/ https://github.com/moononournation/arduino-selfie-camera {{https://hostb.org/13KK/EED3DC25-0688-44F4-BD4A-573AB902BDDE.jpeg?600}} Install Arduino IDE https://linuxhint.com/install_arduino_ide_debian_10/ Install ESP32 in the Board manager and choose "ESP32 Dev"" or install manually thanks to (Debian) https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/debian_ubuntu.md I had this error: File "/home/me/Arduino/hardware/espressif/esp32/tools/esptool/esptool.py", line 38, in import serial ImportError: No module named serial I have fix this issue with following steps: Download the pyserial package from: https://pypi.org/project/pyserial/#files tar zxvf pyserial-3.0.tar.gz cd pyserial sudo python setup.py install Open the .ino file after downloading code from https://github.com/anonette/NonFungibleScience/tree/main/CAM Compile and Transfer ==== AI-thinker ==== using the esp-cam32 [[https://github.com/Ai-Thinker-Open/Ai-Thinker-Open_ESP32-CAMERA_WAN|AI-thinker]] module. {{:pasted:20210516-145903.png?600}} {{:pasted:20210516-145830.png?400}} \\ via[[https://randomnerdtutorials.com/esp32-cam-ai-thinker-pinout|randomNerd]] {{:pasted:20210521-093456.png?300}} \\ output of [[https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Camera/CameraWebServer|CameraWebServer]]\\ gstreamer to file gst-launch-1.0 souphttpsrc location=http://192.168.0.85:81/stream do-timestamp=true ! multipartdemux ! image/jpeg,width=640,height=480 ! matroskamux ! filesink location=mjpeg.mkvD The above pipeline reads a motion JPEG stream from an IP camera using the HTTP protocol, encoded as mime/multipart image/jpeg parts, and writes a Matroska motion JPEG file. The width and height properties are set in the caps to provide the Matroska multiplexer with the information to set this in the header. Timestamps are set on the buffers as they arrive from the camera. These are used by the mime/multipart demultiplexer to emit timestamps on the JPEG-encoded video frame buffers. This allows the Matroska multiplexer to timestamp the frames in the resulting file. or aas simple as {{:pasted:20210522-150547.png}} ==== python/ffmpeg/opencv==== install conda env sudo apt install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6 wget -P /tmp https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh bash /tmp/https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh conda create --name opencv -c conda-forge opencv conda activate opencv pip install opencv-contrib-python python testSource.py ['FFMPEG', 'GSTREAMER', 'INTEL_MFX', 'MSMF', 'V4L2', 'CV_IMAGES', 'CV_MJPEG', 'UEYE'] ['GSTREAMER', 'MSMF', 'V4L2', 'UEYE'] copypaste [[https://www.bojankomazec.com/2020/12/webcam-capture-with-ffmpeg-and-opencv.html|this]] to [[https://gist.github.com/5shekel/998a572599a5147c3927|this]] https://github.com/easytarget/esp32-cam-webserver === invest time in === https://github.com/geeksville/Micro-RTSP - library which can be used to serve up RTSP streams from resource constrained MCUs