如何使用AForge从ip camera录制和保存视频?

时间:2012-09-17 15:49:21

标签: c# asp.net aforge

我尝试做一个录音功能,其源是使用AForge从C#中的IP Camera,但我不能真正理解编码,因为我是一个新的学习者..录制的视频将保存在我的电脑中。
因为我知道这个功能是写/创建一个视频并将其保存在我的存储中。

AVIWriter writer = new AVIWriter("DIB ");
// create new AVI file and open it
writer.Open(@"C:\test.avi", 768, 576);
// create frame image
Bitmap image = new Bitmap(768, 576);

for (int i = 0; i < 240; i++)
{
// update image
image.SetPixel(i, i, Color.Red);
// add the image as a new frame of video file
writer.AddFrame(image);
}
writer.Close(); 

但如何读取mjepg表单源文件(IP cam)并将其传递给AVIWriter? 有人可以给我指导如何实现这个

新学员,请指导我......

1 个答案:

答案 0 :(得分:4)

你需要参考 AForge.video AForge.video.VFW

如果您的相机提供了MJPEGstream,那么 (对不起,这是在VB)

Imports AForge.Video
Imports AForge.Video.VFW
'…
Dim VideoStream As MJPEGStream = New MJPEGStream("<your MJPEG URL>")
Dim VFWriter = New AVIWriter(("your compression codec 4CC ex:xvid>"))
VFWriter.FrameRate = <framerate>

AddHandler VideoStream.NewFrame, AddressOf NewStreamFrame '<Your Handler>

'…

Public Sub StartRecording()
VFWriter.Open("<destinationFile.avi>", <FrameSize.Width>, <FrameSize.Height>)
‘FrameSize.Width and height must correspond to what your camera is sending
       VideoStream.Start()
End Sub

Public Sub StopRecording()
        VFWriter.Close()
End Sub


Private Sub NewStreamFrame(sender As System.Object, e As NewFrameEventArgs)
        VFWriter.AddFrame(e.Frame)
End Sub

代码不完整我删除了错误处理和其他装饰。 此代码将读取并保存视频而不显示它 如果您已有VideoSourcePlayer,则播放器也可以使用图像帧作为参数触发NewFrame事件。在这种情况下,您不需要手动添加处理程序。