Fetching other programs windows as video stream

Godot Version

Godot 4.3

Question

Hello everyone !

I’m currently building a simple video mapping software, and was wondering if there is any native way to use other programs windows as a pseudo video stream.

I have another software (a custom drawing tool) and would like to use it (it’s output window) as an image I could map on objects.

I’m working on Windows 10 and already have C++ implementation so that also might be an option but I’d love to know if there is a way to do it in godot script only.

Thanks in advance !

Build it yourself . . .

. . . or use one already built in Godot.

I mean I can, you’re right ! The custom drawing tool was made by me in Godot so I could easily implement it to the video mapping software. I should have been more clear, the drawing tool part was more of an example, but the main idea is the streaming window thing !
Thanks for taking the time to reply :slight_smile:

Check out VideoStreamPlayer. Keep in mind it only streams .ogv (Ogg-Vorbis) video files, so you’ll have to convert them for now. I use it for my Godot splash screen

Godot doesn’t support this out of the box, it’s a really tricky feature to add multi-platform (what would android/ios do? and linux has two windowing systems now!). It’s also hard to find information because a “capture” often refers to a screenshot of the viewport instead of another viewport.

Here’s a GDExtension I’ve found, though it only supports linux, the shm_ringbuffers library does the heavy lifting so it may not be a great reference.

1 Like