1、为什么用.net framework4.6.1 ,因为要用EmguCV 来 播放流媒体。 而EmguCV目前只在framwwork4.6 运行良好,如果是.net5 (或者.net core)只需要明白道理找个其他库即可;
2、按道理是先写一篇windows程序的,因为EmguCV 自带显示控件,可以直接显示视频。再web下用signalR显示涉及的知识点有点多:
1)为什么用signalR,或者流媒体服务,或者写websocket ? 因为哥愿意。 但是signalR是只传输文本的,所以把图片转成base64 传到页面;
2)页面不需要h5的vedio之类,为什么呢,还是哥愿意。图片自然不能写地址,src指定base64 数据即可;
3)EmguCV得到的图片,可不是.net中的bitmap 之类,得转换。
所以一些核心代码如下:
1、创建.net framework4.6.1 的mvc项目用SignalR 实现HomeIndex给视图发送文本数据并显示。 signalR这一套,不在这篇文章,所以自行研究透,这是前提。以后我会写一篇简单的教程;
解释一下,静态构造函数是为了单例,不然多打开几个页面就实例化多次,会初选视频抖动。实际项目需要用依赖注入单例,或者更加优美的方式这里提高阅读性,简单实现;
中间的几句转换代码,上面提到了为什么。