3 ms·
I don't have a lot of cash for this project. I also don't want a lot of size or watts. I am streaming educational materials live. Since it's a livestream, I don
by woofie11 6y ago
I don't have a lot of cash for this project. I also don't want a lot of size or watts. I am streaming educational materials live. Since it's a livestream, I don't need to capture or store anything, and output resolution doesn't need to be better than 720p.
I have around 5 streams coming in, but I'm only using 2-3 of them at a time (so the rest can be disabled, but it's nice if I don't get USB errors when switching things around). These are 720 through 4k resolution, MJPEG (YUVY overwhelms USB). Right now, I'm using an Intel NUC, which works adequately, but can't do anything else reliably at the same time. If I open up an application, I get glitches. I'd like something cheap and small to offload processing to.
All I really /need/ to do is crop, downsize and things like picture-in-picture. On the other hand, I do some fancier processing as a nice-to-have (greenscreen, as well as some fancy nineties-level machine vision -- edge detection and the like). Right now, this is OBS, but I could move this to Python+OpenCV pretty easily (and probably ought to; I'm bumping into OBS limitations).
- joshvm 6y agoDoes the NUC support hardware acceleration? Otherwise you could just use a Pi 4 for this and run all your cameras through gstreamer, which supports the ops you want - I think you can even do PiP. One thing I don't know though, are you going to have to decode the streams, overlay and then encode again? You could also look at getting a Jetson Nano which is a bit beefier, and you can offload some of this stuff onto CUDA. Easy to try the opencv route, but you need to be a bit careful on ARM (make sure you compile yourself with all the optimisation flags on).