2

ソースが C# の IP カメラから AForge を使用して記録機能を実行しようとしましたが、新しい学習者であるため、コーディングを本当に理解できません.記録されたビデオは、コンピューターに保存されます。
私が知っているように、この機能はビデオを作成/作成し、ストレージに保存することです。

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に渡すにはどうすればいいですか?誰かがそれを達成する方法について私にガイダンスを与えることができますか

新しい学習者、私を導いてください....

4

1 に答える 1

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 イベントを発生させることもできます。この場合、ハンドラーを手動で追加する必要はありません。

于 2012-11-18T16:24:14.747 に答える