I am creating a video frame output program in a c++ console application using direct show. I have the video loading in and playing fine, however, the video pops up in an ActiveMovie Window. Is there any way I can possibly disable this that way I can just output frame information to the command line window? Thanks in advance.
What kind of frame information do you want to output to the console? To not have the ActiveMovie video popup, you could just use the null renderer filter.
Related
I'm trying to create an interface that would allow me to drive a remote controlled car.
I was wondering if it were possible to display a video using ImGui ? I know I can split my video into several frames and display each frames one after the other but is there any other way to do this ?
Thank you !
Yes, it is possible to display a video in dear ImGui
Above picture shows the sample of displaying from the webcam feed using ESCAPI.
refer https://github.com/jarikomppa/escapi/ for more details.
I once developed an application using imgui that displayed video via imgui, and it did work, but there was performance limitations. If you dont need to display more than 8 feeds at a time, you should be okay.
You'll need an appsink on your gst pipeline, and then in the appsink you need to pull the gstbuffer and convert it to a GL texture, then pass the GL texture to imgui.
You can reference this repo, its the same one i used as a starting block:
https://github.com/tbeloqui/gst-imgui
When using vulkan and OpenVR for a game, do I need to create and open a window to make it work or can i just Submit the image to OpenVR?
Technically you only need to submit the frames to the OpenVR compositor but it is strongly recommends you also display those same frames in a window.
The overhead from doing so is minimal, you are literally just displaying the same textures to a window as well as in the HMD.
When libvlc starts to display video, it launch new window, can I do otherwise and display multiple videos in the same window?
When libvlc starts to display video, it launch new window
That is the default behavior when you have not told libvlc in which window to draw the video. See https://stackoverflow.com/a/65060714/4064749
libvlc currently cannot draw multiple videos in a single window handle. However, you could arrange several windows together and have multiple mediaplayers draw to each of them, creating the illusion that multiple videos are played in the same window.
I am learning after effects. I have got one template for after effect and trying to render it. all thing is working fine but just issue in audio output. I have selected audio output also in render but I am not getting audio, as well in preview ram. what I am missing ?
Thanks
Audio is simply muted. Check speaker icon, must help
Check your mute button or click RAM preview. Wait for video to render and click RAM preview button several times. I think it will solve the problem. I got this problem too but I clicked the RAM preview button and waited for it to render. And boom it worked.
I need to play animated characters over the screen on Windows. Basically, it will be character video with transparency and only non-transparent parts should be able to accept user input (e.g. mouse clicks), all other events should be passed through to underlying window.
I've made a simple transparent DirectX window with video in it. But I don't know how to make parts of this window "transparent" for user input. So if I clicking on the character, my application should accept this click, if I clicking on the transparent part of the video - click should be handled by the underlying window. How can I make it?
Thanks in advance.
I assume you mean Direct Show rather than DirectX?
You can do it using the Video Mixing Renderer. As with anything directshow its not, necessarily, easy.
First connect the video to the VMR Filter.
Second, for the animating characters all you need to do is build a simple DirectShow push source filter (Its explained really well in the DirectShow samples) that supplies the animation frames.
Third you need to create an IVMRImageCompositor class. You can then use DirectX to composite the images.