OpenGL rendering over NTSC video stream !!!

Hi folks !
We have this need to produce in real-time, video images on which OpenGL graphic elements are painted.
We thought of rendering these images in the framebuffer over the “video pixels” brought by the video capture card.
In other words, can we render images in a framebuffer without erasing the entire image that was already there ?

An example would be a software that recognize a red hat over a green grass background in a video stream. The software then paint, using OpenGL, a red rectangle around the red Hat. This new video stream is then send to the a Display device. (TV, PC screen…etc)

Thanks in advance !

Are you talking about how a image is overlayed on TV show.
Things like stations logo’s, I have seen some 3D spinng logo’s also.

Or maybe you want to do like they do on sports and put ad’s into the image as a back ground?

Originally posted by transnept:
[b]Hi folks !
We have this need to produce in real-time, video images on which OpenGL graphic elements are painted.
We thought of rendering these images in the framebuffer over the “video pixels” brought by the video capture card.
In other words, can we render images in a framebuffer without erasing the entire image that was already there ?

An example would be a software that recognize a red hat over a green grass background in a video stream. The software then paint, using OpenGL, a red rectangle around the red Hat. This new video stream is then send to the a Display device. (TV, PC screen…etc)

Thanks in advance ![/b]

The way TV shows superimposes graphics on the video stream would also be a good example. But keep in mind that our need is for a software and a PC environnement. The video is grabbed through a Video capture card or firewire. The software, using the OpenGL SDK, would need to access the video stream or the framebuffer where the video is running. Then it would need to draw on it.
On a machine, i suppose that there is only one framebuffer used by all application. it must be possible to right above it without erasing the all content of it prior the painting of the OpenGL rendered image.

You know they do those overlay’s on TV with a computer.

Ever heard of the Video toster, a PC card with video overlay features etc.]

There was a example posted a week or so ago on this site about image play back on a opengl object.

What you would have to do is write a program to access the video frame per frame. Each frame would be rendered into a openGL window and then the openGL object’s would be rendered in front of the video image. If you only have simple logo’s or objects to be rendered in front of the video. Then a fast computer should be able to do it in real time. I think the hardest part will be writing the video caputure part.

Originally posted by transnept:
The way TV shows superimposes graphics on the video stream would also be a good example. But keep in mind that our need is for a software and a PC environnement. The video is grabbed through a Video capture card or firewire. The software, using the OpenGL SDK, would need to access the video stream or the framebuffer where the video is running. Then it would need to draw on it.
On a machine, i suppose that there is only one framebuffer used by all application. it must be possible to right above it without erasing the all content of it prior the painting of the OpenGL rendered image.

I think this post in the advanced section might be of interest http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/005486.html

Oops. Didn’t realise it was your thread.

[This message has been edited by Furrage (edited 02-08-2002).]

I don’t know about this beening my thread, but the idea was to give you direction on what to do, not to design a custom software package free of charge.

Originally posted by Furrage:
[b]I think this post in the advanced section might be of interest http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/005486.html

Oops. Didn’t realise it was your thread.

[This message has been edited by Furrage (edited 02-08-2002).][/b]

[This message has been edited by nexusone (edited 02-08-2002).]