← Back to context

Comment by josephernest

8 hours ago

Related: for some hardware project, I have a backend server (either C++ or python) receiving frames from an industrial camera, uncompressed.

And I need these frames displayed in a web browser client but on the same computer (instead of network trip like in this article).

How would you do this ?

I eventually did more or less like OP with uncompressed frames.

My goal is to minimize CPU usage on the computer. Would h264 compression be a good thing here given source and destination are the same machine?

Other ideas?

NB: this camera cannot be directly accessed by the browser.

> How would you do this ?

It depends. I have many questions.

> My goal is to minimize CPU usage on the computer. Would h264 compression be a good thing here given source and destination are the same machine?

No.

> Other ideas?

1. Why does it need to be displayed in a web browser (as opposed to more appropriate / better performing software specifically built for video)?

2. via what interface/library is the camera connected to the machine? What format/codec is the uncompressed stream you're getting from the camera?

3. I am available at very reasonable consulting rates

  • Thanks.

    1. It is part of a bigger web-browser dashboard/control interface and this camera display is just one component among many others.

    2. Some of the (USB) cameras can have proprietary interfaces such as https://www.ximea.com/support/wiki/apis/python

    How would you do in this situation, to have the video stream in the browser, with as low CPU usage as possible?

    3. Not for this project but for a future project, feel free to put a link to your portfolio or contact page (even if you remove the comment later)

    • 1. fair enough

      2. "How would you do in this situation, to have the video stream in the browser, with as low CPU usage as possible?"

      Since it's being consumed on (only) the local machine you've got an excellent situation where you can use any obscure codec you like, as long as the browser you're using supports it. Also you don't need to care at all about network bandwidth. If minimising CPU usage is the #1 priority then something fairly lightweight like mjpeg might do the trick. Alternatively you might get away with not compressing the video at all (but this might cause issues due to dealing with huge amounts of data). If I wanted to minimise CPU usage, I wouldn't be doing it in python.

      3. You can find me if you look.