问题
I have a project where I need to record a video using DirectShow from a webcam, but I need to be able to stop recording while the preview continues to run.
I am using WPFMediaKit
http://wpfmediakit.codeplex.com/
The problem is that when I record a video the pause function also pauses the preview pane in the application
I am new to DirectShow, any suggestions how is can address this issue or a solution
Thank you very much.
P.S I use C# & WPF
回答1:
I don't know about the WPFMediaKit, but basically when you want to start/stop recording while keeping the preview, you will need two graphs, and something to connect between those graphs. Take a look at the pdf document at the GMFBridge page.
回答2:
If you can accept a momentary pause in preview when you start/stop recording and don't want to use something like a 2 graph GMFBridge approach, you can disconnect either the capture pin on the video capture source filter (assuming you are using separate preview and a capture pins from your source filter) or disconnect the File Writer chain portion of your capture sub-graph.
The issue here is the filtergraph must be paused before changes can be made to its topology, so you'd need to:
Pause Graph Disconnect or Reconnect File Writer chain Resume Graph
In my experience the temporary pause is not very noticeable.
回答3:
Please use StreamControl method of ICaptureGraphBuilder2, it provides you to control any filter in your Graph individually.
来源:https://stackoverflow.com/questions/6203651/directshow-recording-preview-problem