在asp.net中用emgu cv创建一个广播服务器

问题描述

我想通过带有 EMGUCV 的 RTSP 连接到相机,然后下载图像并在 asp.net 上以视频格式显示。 为此,我可以连接到相机并接收图像。我也可以在网页上显示预先保存的视频文件,但我无法以视频格式显示下载的图像。

我用来显示预先保存的视频的代码是:

public class v1Controller : ApiController
{
       public HttpResponseMessage GetVideoContent()
        {
            var httpResponce = Request.CreateResponse();
            httpResponce.Content = new PushStreamContent((Action<Stream,HttpContent,TransportContext>)WriteContentToStream);
            return httpResponce;
        }
        public async void WriteContentToStream(Stream outputStream,HttpContent content,TransportContext transportContext)
        {
            var filePath = HttpContext.Current.Server.MapPath("~/MicrosoftBizSparkWorksWithStartups.mp4");
            int bufferSize = 1000;
            byte[] buffer = new byte[bufferSize];
            using var fileStream = new FileStream(filePath,FileMode.Open,FileAccess.Read,FileShare.Read);
            int totalSize = (int)fileStream.Length;
            while (totalSize > 0)
            {
                int count = totalSize > bufferSize ? bufferSize : totalSize;
                int sizeOfReadedBuffer = fileStream.Read(buffer,count);
                await outputStream.WriteAsync(buffer,sizeOfReadedBuffer);
                totalSize -= sizeOfReadedBuffer;
            }
        }
}

我用来从相机获取图像的代码是:

VideoCapture cap = null;
            await Task.Run(() =>
            {
                cap = new VideoCapture();
                cap.Start();
            });

            while (true)
            {
                var img = cap.QueryFrame();
                var bufferr = new VectorOfByte();
                CvInvoke.Imencode(".jpg",img,bufferr);
                byte[] jpgBytes = bufferr.ToArray();
                await outputStream.WriteAsync(jpgBytes,jpgBytes.Length);
            }

但是我无法连接这两段代码

最终目标是创建一个支持 RTSP 的视频流服务器。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)