Sergey Kolesnik
Sergey Kolesnik

Reputation: 3650

Cesium offscreen rendering with node js?

I have a web page that renders scenes with Cesium. I also need to encode the same scene to a video stream and send it via UDP encoded with h264. The receiver side can only receive a video stream, no browser can be involved.

I thought of a solution to offscreen rendering to a framebuffer with Cesium and then encode the texture with libav/ffmpeg. But I don't know if it is possible to render with Cesium offscreen without a browser (invoking rendering commands from NodeJS). Is it possible? How can I render the scene to a texture?

I have little to no experience with NodeJS/Cesium.

Upvotes: 1

Views: 523

Answers (1)

Sergey Kolesnik
Sergey Kolesnik

Reputation: 3650

So, the answer is basically: it can't be done without a browser since CesiumJS uses WebGL and the latter needs a renderer which a browser has.

And it is hardly an option to either mess with Cesium to draw with OpenGL or to use a standalone renderer. However, there are 3 legit options. You can access a renderer:

  • in Chromium Embedded Framework. It is very hard to use.
  • QtWebEngine (didn't try though)
  • Electron.

Electron happened to be a solution.

Upvotes: 2

Related Questions