gpt4 book ai didi

c# - 如何使用 AForge 从网络摄像机录制和保存视频?

转载 作者:行者123 更新时间:2023-11-30 21:04:20 33 4
gpt4 key购买 nike

我尝试使用 AForge 在 C# 中使用 IP 摄像机做一个录制功能,但我无法真正理解编码,因为我是一个新学习者。录制的视频将保存在我的电脑中。
据我所知,此功能是编写/创建视频并将其保存在我的存储中。

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格式的源文件(网络摄像头)并将其传递给AVIWriter呢?有人可以指导我如何实现吗

新手,请指导我......

最佳答案

你需要引用AForge.视频AForge.video.VFW

如果您的相机提供 MJPEG 流,则(抱歉,它在 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 事件。在这种情况下,您不需要手动添加处理程序。

关于c# - 如何使用 AForge 从网络摄像机录制和保存视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12462823/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com