C# 如何使用Forge从ip摄像头录制和保存视频?

C# 如何使用Forge从ip摄像头录制和保存视频?,c#,asp.net,aforge,C#,Asp.net,Aforge,我试着做一个记录功能,其中源代码来自C语言中的IP摄像头,但我不能真正理解编码,因为我是一个新的学习者。。录制的视频将保存在我的电脑中。据我所知,该功能用于编写/创建视频并将其保存在我的存储器中 但是如何读取mjepg表单源文件IP cam并将其传递给AVIWriter呢? 有人能给我一些如何实现这一目标的指导吗 新学员,请指导我……您需要参考 阿福热视频 a forge.video.VFW 如果您的相机提供MJPEG流,则 对不起,它在VB中 Imports AForge.Video Impo

我试着做一个记录功能,其中源代码来自C语言中的IP摄像头,但我不能真正理解编码,因为我是一个新的学习者。。录制的视频将保存在我的电脑中。据我所知,该功能用于编写/创建视频并将其保存在我的存储器中

但是如何读取mjepg表单源文件IP cam并将其传递给AVIWriter呢? 有人能给我一些如何实现这一目标的指导吗

新学员,请指导我……

您需要参考 阿福热视频 a forge.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事件。在这种情况下,您不需要手动添加处理程序。

您需要参考 阿福热视频 a forge.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事件。在这种情况下,您不需要手动添加处理程序。

它是什么类型的IP摄像头?它有点像高性能的点灰色研究相机,还是更像一个网络摄像头?在这两种情况下,相机制造商的网站都应该有关于如何从相机获取图像的说明。另外,避免设置像素-这是一个非常缓慢的操作。如果你想操纵单个像素,我建议使用锁定位。@Dai这是Apexis IP camCCTV,我知道在哪里可以从相机获取图像流。我的问题是如何使用C语言中的一个RGE读取流媒体图像MJPEG,然后写入AVI文件并保存到我的存储器中。它是什么类型的IP摄像头?它有点像高性能的点灰色研究相机,还是更像一个网络摄像头?在这两种情况下,相机制造商的网站都应该有关于如何从相机获取图像的说明。另外,避免设置像素-这是一个非常缓慢的操作。如果你想操纵单个像素,我建议使用锁定位。@Dai这是Apexis IP camCCTV,我知道在哪里可以从相机获取图像流。我的问题是如何使用C语言中的一个RGE读取流媒体图像MJPEG,然后写入AVI文件并保存到我的存储器中。我让它工作了,但帧速率有问题。如果我将帧速率设置为默认值25pfs,则录制的视频播放速度过快录制视频1分钟,但播放时间为5秒,因此我需要将帧速率设置为4-5以获得正常视频。假设您已经使用Forge从IP摄像头进行了录制,您可以获得多高的录制视频帧速率?以及如何获得更高的帧速率。Ip摄像头最多支持30帧/秒。至少我想以尽可能接近实际摄像机所能支持的帧速率录制视频。我的情况有点特殊,我录制了一个4fps的mjpeg流,得到的fps是正确的,但我在论坛上看到了很多关于这个主题的帖子。一般来说,您还可以修改帧速率相机侧,您所说的是哪一个?相机或AVI写入方?相机的帧速率设置为30fps。默认情况下,未设置AVIWriter帧速率为25fps。当然,我可以将相机帧速率修改为更低,并将其设置为更高的帧速率,即30fps。但是,使用相机的录制无法与相机的帧速率匹配。如果我尝试将AVIWriter帧速率设置为与相机帧速率相同的30fps,则录制的视频会在短时间内快速播放,因此我需要将AVIWriter帧速率降低到4-5fps,然后视频才会在正确的时间长度内以正常速度播放。但是它不再和cam fps一样了。我让它工作了,但是我有一个帧速率的问题。如果我将帧速率设置为默认值25pfs,则录制的视频播放速度过快录制视频1分钟,但播放时间为5秒,因此我需要将帧速率设置为4-5以获得正常视频。假设您已经使用Forge从IP摄像头进行了录制,您可以获得多高的录制视频帧速率?以及如何获得更高的帧速率。Ip摄像头最多支持30帧/秒。至少我想以尽可能接近实际摄像机所能支持的帧速率录制视频。我的情况有点特殊,我录制了一个4fps的mjpeg流,得到的fps是正确的,但我在论坛上看到了很多关于这个主题的帖子。一般来说,您还可以修改帧速率相机侧,您所说的是哪一个?相机或AVI写入方?相机的帧速率设置为30fps。默认情况下,未设置AVIWriter帧速率为25fps。当然,我可以将相机帧速率修改为更低,并将其设置为更高的帧速率,即30fps。但是使用AFor的录音 ge无法匹配相机的帧速率。如果我尝试将AVIWriter帧速率设置为与相机帧速率相同的30fps,则录制的视频会在短时间内快速播放,因此我需要将AVIWriter帧速率降低到4-5fps,然后视频才会在正确的时间长度内以正常速度播放。但它不再与cam fps相同。