[英]How to stream video frames in C#
我有一些事件正在獲取網絡攝像頭的位圖。
如何以最簡單的方式將其流式傳輸到某些本地端口?
using WpfMultimedia;
using WpfMultimedia.Webcam;
var _webCam = new VideoCapture(DeviceManager.GetVideoInputDevices().First(), null);
_webCam.CaptureFrame += OnFrameCaptured;
_webCam.Start();
...
private void OnFrameCaptured(object sender, CaptureFrameEventArgs e)
{
//latest BitmapImage from camera is in e.Frame
BitmapImage _currentFrame = e.Frame
.... Stream it to http://localhost:9797 ?
}
也許您可以首先將BitmapImage
轉換為“可固定”類型的數據。
byte[] Data;
JpegBitmapEncoder Encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmapImage));
using(MemoryStream MemStream = new MemoryStream())
{
Encoder.Save(ms);
Data = MemStream.ToArray();
}
也許您可以使用其他編碼器來提高性能。
然后,您應該使用UDP(如果數據足夠小並且不需要速度,則使用TCP)發送此幀並對其進行解碼,然后可以在其中創建視頻。
但是可能已經為視頻流創建了一些庫,您不必自己編寫代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.