Evision source/sink for Membrane

Is there a already a source/sink for receiving/streaming evision matrices? What would be a good point to start is there a similar source/sink? How to cope with difficulties to maintain the framerate for such a source/sink?

@Felix, it would help a bit to understand what you’re trying to achieve and then more people might be able to contribute.

Evision is a computer vision library based on OpenCV. I would like to stream augmented frames of live footage to the browser. Currently the best solution I found, is to use Base64 encoded JPEGs. Keeping the delay low will probably be another challenge.

The Membrane team recently released an overlay plugin for overlaying text on video streams and there was quite a discussion about doing doing that while maintaining framerate. Maybe there are some ideas in those discussions.

A lot of performance is consumed encoding/decoding JPEG and converting from YUV to sRGB colorspace. Avoiding either or both of those would be helpful.

2 Likes

I have wanted to try this stuff but would “augment” the visual bits in LiveView with SVG and such.

The part I didn’t get to where I wanted was extracting frames from a video stream. Finicky stuff.

1 Like

Thanks a lot, that was exactly what I was looking for to get started. Looks like the overlay plugin is already doing the trick.

For simple geometric augmentation your SVG approach might look even better with anti-aliasing and clear text. I think I will give it a try. What was the video source like in your case to grap the frames from?

H264 from file in MP4 container and I just got lost in unwrapping that.

Loading it with Evision or Image should simplify the unwrapping a lot, as shown here: