Can I get raw video frames from DirectShow without playback

I am working on a media player using the Media Foundation. I want to support playback of VOB files. However, the media fund does not currently support the VOB container. So I want to use DirectShow for this.

My idea here is not to use an alternative path using a DirectsShow graphic, but simply to capture a video frame and transfer it to the same pipeline in a multimedia environment. In the media fund, I have an "IMFSourceReader" that simply reads frames from a video file. Is there a direct equivalent of a show that just gives me frames without having to create a graph, start a playback loop, and then try to extract frames from the output of penders? (To be more clear, DirectShow supports an architecture in which it can give me raw frames without having to play the video?)

I read about ISampleGrabber, but it is deprecated, and I think it will not fit my architecture. I have not worked on DirectShow before.

Thanks Mots

+4
source share
2 answers

You need to plot and accept frames from the corresponding parser / demultiplexer filter, which will read the container and provide individual frames at its output.

Playback doesn't have to be in real time, and you don’t need to fake any kind of video frames. After you get the data needed for the Sample Grabber filter or client filter, you can complete the pipeline using the Null Renderer . That is, you can organize the receipt of personnel that you need in a more or less convenient way.

+6
source

You can use the monogram frame capture filter to connect the output of the VOB DS filter - it works great. See there for comments on how to connect output to an external application.

0
source

Source: https://habr.com/ru/post/1391805/


All Articles