我是一个视频流和处理的初学者。
我需要从一个Basler GiGE相机的流,并显示在一个网络容器。
我正在使用Basler.Pylon C# API来访问相机并逐一抓取图像。从返回的IGrabResult对象中,我可以访问各种参数,如宽度、高度、步长,当然还有字节缓冲区。
在我的PC上,我可以很容易地在图像窗口中显示它,但是我需要做什么才能在ASP.NET web应用程序中显示它呢?
编辑
我不是在寻找代码,而是寻找更多的指南,如果有人能解释一下一般视频流是如何工作的,那也是可行的。
发布于 2017-11-15 18:59:38
视频流是相当专业的,一般来说,如果你想通过互联网向多个终端用户传输高质量的视频,那么使用专用的视频流服务器是最容易的,而不是自己构建一个服务器。
专门的视频流服务器可以通过托管服务(例如Vimeo)提供,可以是您安装和运行的商业服务器(例如Wowza),也可以是免费的流媒体服务器(例如,GStreamer),因此您可以在那里选择。
通常情况下,流式服务器会将视频分割成块,并创建视频的多个比特率副本。这允许客户端使用自适应比特率流(ABR)并逐块下载视频,根据当前设备和网络条件选择下一个块的比特率版本。HLS和MPEG-破折号是ABR流协议的代表.
在一个网页上,您需要一个HTNML5播放器,它可以理解这个流协议--同样,还有很多例子,比如免费的Shaka和Dash.js播放器。将这些内容集成到网页中是非常简单的。
您可以在Netflix和YouTube等服务上观察到这些应用,这些服务通常以较低的比特率启动,以确保快速启动,然后“升级”到更高的比特率,直到达到当前网络条件和设备的最佳比特率为止。在这里可以看到一些关于在观看YouTube时如何看到这方面的图表的信息,例如:
说了以上所有的话,你的案子似乎是在处理一组静止的图像,这是毫无价值的。虽然所有的视频实际上都是隐藏在幕后的静止图像流,但可能是因为您的图像变化不频繁,因此您可能不需要上述一些技术--很多视频流技术都是为了处理服务器到客户端每秒30或60帧的大量数据流。
例如,如果您的镜像流是每30秒一次,那么就像Nisus所说的那样,可以很容易地在您的网页中显示这些图像,并让web页面或应用程序每30秒对服务器进行一次轮询(在您的例子中使用ASP.NET AJAX )来下载新图像。
发布于 2017-11-14 17:30:03
您至少有两个选项-第一个是每隔几秒钟生成一系列jpeg图像,然后使用标记和简单的javascript代码在客户端逐一显示它们。第二个选项是生成和流MP4视频,并在客户端显示它与一些COM-windows媒体播放器或html5控件。
https://stackoverflow.com/questions/47197999
复制相似问题