访问 MJPEG Stream .net 核心
Posted
技术标签:
【中文标题】访问 MJPEG Stream .net 核心【英文标题】:Accessing MJPEG Stream .net core 【发布时间】:2020-07-23 03:24:09 【问题描述】:我正在尝试通过我的 .net 核心应用程序访问 mjpeg 流。似乎 AForge.Video 与 .net 核心不兼容。 是否有任何可用的库/编码示例如何访问视频流并从中获取单个图像?是否有可能让 Aforge 与 .NET core 一起运行?
private MJPEGStream stream = null;
public void initRecorder(RecorderUnit unit)
stream = new MJPEGStream(unit.getAdress());
stream.NewFrame += stream_newFrame;
stream.VideoSourceError += stream_error;
private void stream_newFrame(object sender, NewFrameEventArgs eventArgs)
Bitmap bmp = (Bitmap)eventArgs.Frame.Clone();
private void stream_error(object sender, VideoSourceErrorEventArgs eventArgs)
【问题讨论】:
AForge hasn't been updated since 2013 - 我认为你应该完全使用不同的库。也就是说,.NET 平台(无论是 .NET Core 还是 Windows .NET Framework)在进行图像处理工作时从未真正流行起来——您是否考虑过在更适合这种工作负载的不同平台上编写代码? (例如 C/C++ 与 libavcodec 或 Python 与 OpenCV?) 我确信最初的问题是 System.Drawing 库在 NetCore 中不可用。我也很确定这已在更高版本的 Net Core 中得到解决——您使用的是哪个 NetCore 版本? 【参考方案1】:在过去的时间里,我在 C# 中使用 FFmpeg 包装器取得了很大的成功。这是我用过的一个:https://github.com/Ruslan-B/FFmpeg.AutoGen。掌握 FFmpeg 编译过程需要一些工作,这通常是通过 Linux 的交叉编译完成的,通常是其中的必要部分。理解 FFmpeg API 也需要一些工作。提取帧有很多选项和步骤,并且在使其性能方面存在一些困难,尤其是提取帧的显示。这个项目不会像你希望的那么容易;但是,完成后,您将拥有完整的 FFmpeg 功能。
【讨论】:
以上是关于访问 MJPEG Stream .net 核心的主要内容,如果未能解决你的问题,请参考以下文章
模型绑定不适用于 asp.net 核心 Web api 控制器操作方法中的 Stream 类型参数。(即使使用自定义流输入格式化程序)
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly before end of the underlying st...
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly before end of the underlying st...