DirectShow同时录制和观看视频

时间:2013-01-18 00:47:53

标签: vb.net exception-handling directshow video-capture directshow.net

我使用了DirectShow的示例代码来录制视频。但是,我也希望在录制过程中显示视频。但我不能同时做到这一点,这个错误总是显示出来:

' Const VIDEODEVICE As Integer = 0
' zero based index of video capture device to use
Cursor.Current = Cursors.WaitCursor

If cam Is Nothing Then
    cam = New AsfFilter.Capture(VIDEODEVICE, textBox1.Text)
    previewCamera(PictureBox1) <----- this is my code regarding on previewing the video recording.
    cam.Start()

    button1.Text = "Stop"
    textBox1.[ReadOnly] = True
Else
    button1.Text = "Start"
    textBox1.[ReadOnly] = False

    ' Pause the recording
    cam.Pause()

    ' Close it down
    cam.Dispose()
    cam = Nothing
End If

Cursor.Current = Cursors.[Default]

错误:

  

没有足够的系统资源来完成所请求的服务。 (HRESULT异常:0x800705AA)

我做错了什么?有人知道吗?

1 个答案:

答案 0 :(得分:0)

0x800705AAERROR_NO_SYSTEM_RESOURCES "Insufficient system resources exist to complete the requested service."

以下是您需要了解的内容:视频捕获设备是独占的访问资源。您使用它一次,您不能在另一个过滤器图表上再次同时使用它(即,一个图表用于记录,另一个图表用于监控)。您必须使用单个过滤器图来承载视频捕获。从那里,您可以使用Smart Tee Filter,或Infinite Pin Tee Filter复制录制和监听腿上的视频。或者,也可以使用multigraph solution在单个图表上进行静态视频捕获。