簡體   English   中英

如何使用AForge從IP攝像機錄制和保存視頻?

[英]how to record and save video from ip camera using AForge?

我嘗試做一個錄制功能,其中的來源是使用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表單源文件(IP cam)並將其傳遞給AVIWriter? 有人可以指導我如何實現這一目標

新學習者,請引導我。

您需要引用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事件。 在這種情況下,您將不需要手動添加處理程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM