我有一些事件,我正在获取网络摄像头的位图。
如何以最简单的方式将其流式传输到某个本地端口?
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 ?
}
答案 0 :(得分:1)
也许你可以从将BitmapImage
转换为" stremeable"数据类型。
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,如果数据足够小,速度不是必须的)发送这些帧并解码它们,你可以在那里创建一个视频。
但可能已经为视频流创建了一些库,您不必自己编写代码。