【问题标题】:How to perform processing of Azure Media Service Live Stream video as it's being streamed?如何在流式传输时执行 Azure 媒体服务实时流视频的处理?
【发布时间】:2016-05-29 05:38:15
【问题描述】:

我正在创建一个应用程序,它从托管在网络上的摄像头获取视频,通过计算机视觉算法运行它以检测人类(使用 EmguCV 的 OpenCV 包装器用 C# 编写)并将处理后的视频流式传输到 ASP.NET 客户端。

我认为可行的过程是让 Azure 媒体服务为视频创建一个实时流通道,并在该过程的某处注入我的代码来处理视频。该算法在其大部分决策中使用 SQL 数据库,因此我想将其放入 WebJob 并让它在存储视频时对其进行处理。我宁愿在 Azure 媒体服务流程的某个地方处理它,而不是使用 WebJob。

我的问题是:有没有办法在视频进入时对其进行处理,所以在存储中看到的是处理后的视频,在人物周围有盒子(我的算法放置的盒子,将帧作为输入和输出一个框架)?如果是这样,我可以将我的逻辑放在哪里,在编码器设置中?

另外,如果您有其他方法,请告诉我!我对想法持开放态度!我计划扩展这个应用程序以使用多个摄像头作为输入,并且客户端应该能够在提要之间切换。这与我的问题无关,但需要考虑。我知道可以让 WebJob 将视频从存储中取出,对其进行处理,然后将其放回原处,但是应用程序会失去“实时”方面。

技术栈: 已创建 Azure SQL 数据库 已创建 Azure 网站 Azure 媒体服务和存储已创建 可能的 Azure WebJob 来处理算法?

提前非常感谢您的帮助!

【问题讨论】:

  • 如果您发现这些答案有帮助,请将其标记为正确。

标签: c# asp.net-mvc opencv video azure-media-services


【解决方案1】:

截至目前,Azure 媒体服务不允许将用户定义的代码插入到处理管道中。您可以选择现有处理器或使用当前通过 azure 市场提供的 3d 方编码器。

目前(根据​​您的要求)我认为您需要一个代理 VM,它对传入流进行人脸识别并将处理后的流重定向到 Azure 媒体服务直播频道。 NGIX Web 服务器 + ffmpeg + OpenCV 是一个很好的解决方案。

【讨论】:

  • 非常感谢您的回复!您能否提供有关“将处理后的流重定向到 Azure 媒体服务”的过程的更多详细信息?我不清楚这是如何工作的。有没有办法将视频直接发送到直播中?我知道它使用 RTMP 协议,但我找不到如何在 C# 中执行此操作。再次感谢!
  • helping-squad.com/transcoding-your-video-with-nginx 谈论使用 ngix 和 ffmpeg 进行转码。在他们的示例中,他们正在调整大小和一些比特率变化。按照这些思路,您可以尝试应用 OpenCV 并将结果重定向到 azure 媒体服务。没有适合您的交钥匙解决方案,但我希望它会对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-02
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 2015-04-26
  • 2018-06-15
  • 1970-01-01
相关资源
最近更新 更多