# Snapshop from a video stream

**URL:** https://discourse.nodered.org/t/snapshop-from-a-video-stream/40662
**Category:** General
**Created:** [9 February 2021 09:55 UTC](https://discourse.nodered.org/t/snapshop-from-a-video-stream/40662 "2021-02-09T09:55:41Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)
#### Post date: [9 February 2021 17:28 UTC](https://discourse.nodered.org/t/snapshop-from-a-video-stream/40662/3 "2021-02-09T17:28:48Z")

</div>

If I remember correctly, those ESP32 cams serve a motion JPEG stream. So saving the "image" in the browser won't work, as it tries so save the stream indefinitely.

I have been using this approach for my Motion based webcams, serving MJPEG as well.

> [@Node-Red with OpenCV](https://discourse.nodered.org/t/node-red-with-opencv/26067/7):
>
> I am using a similar setup with some RPis running Motion. I have Node-RED running on another machine, where I can capture a still image using an ffmpeg from an exec node, and process the image with [node-red-contrib-image-tools](https://flows.nodered.org/node/node-red-contrib-image-tools). Mainly reducing size and quality for use in a Telegram bot. Here's a basic flow for that, just change IP and port of your Motion server: [{"id":"370d8c79.3d439c","type":"exec","z":"93b1388c.f7fc4","command":"ffmpeg -i http://ip:port/ -vframes 1 -f image2 -","addpay":fa…

Basically it uses ffmpeg via an exec node. It captures exactly one frame (a single jpeg) that is sent via stdout back to Node-RED.

---

_[View the full topic](https://discourse.nodered.org/t/snapshop-from-a-video-stream/40662)._
