是否有任何开源解决方案可以在 Hololens2 UWP Vuforia 应用程序中显示远程流?

问题描述 投票:0回答:0

我们需要什么?

我们正在尝试开发一个质量管理应用程序,在该应用程序中我们在金属部件上显示全息图作为辅助标记。 (使用 Hololen2 + Vuforia + ModleTargets)员工使用传感器跟随这个辅助标记,数据将由测试设备实时分析。结果输出在屏幕上/在测试设备制造商的封闭源应用程序中可见。

捕获视频输出: 目前的计划是通过采集卡采集测试设备的视频流。在 vuforia 应用程序中添加一个 via mrtk2 视频面板,并使用 obs 或 OpenCV python 脚本将捕获的视频流式传输到 Hololens2 以进行屏幕录制。

到目前为止我们尝试了什么

1)发送原始udp流 通过 RMTP 和解码 + 使用 gstreamer 服务器转换并在 Unity 中编写自己的库用于接收 结果:暂时停止,因为接收 udp 流需要连接/会话管理(信令)帧同步和视频大小、颜色格式、帧速率等协议。我们没有解决方案。 任何一个自己的实现都会具有很高的复杂性,并且会消耗大量时间。

2)使用我可以在网上找到的可用协议 实际上,已经为会话创建和流式传输开发了一些协议:

  • HTTP 流式传输 (HLS)(传输 + 会话)
  • RTMP(传输+会话),
  • RTP(传输)+ RTPS(会话),
  • WebRTC:可以使用不同的协议栈 RTMP/TCP/UDP (Transport) + SDP (standardized format for video paramaters) + ICE (p2p)/ WHIP (http, client-server) / Websocket(client-server) (signaling protocols) 可以使用和一些好的开放源流媒体服务器(gstreamer、mediamtx 和 srs)

使用这些时,视频通常使用 xh264 进行编码,需要在 HoloLens 2 上解码。有 C/C++ 本机(硬件)解码库的 API,如 unity-vlc 和 ffmpeg.NET,需要媒体库 ffmpeg。我可以弄清楚(未测试)HoloLens2 上有一个硬件 h264 解码器,但我不知道如何访问它。因为那里我不能否认任何关于 HoloLens2 媒体库的信息。

3)使用Unity包

明天将测试其他编译选项..

  • 混合现实 WebRTC(https://github.com/microsoft/MixedReality-WebRTC): 各种协议支持,微软专门为HoloLens带来了Webrtc。 已弃用,据我所知,仅支持 Hololens1 和 ARM32。所以我无法评估是否值得尝试它。

接下来的选择是什么?

  • 直接用untiy开发一个raw udp流媒体库
  • 使用 visionlib (ARM32) 兼容和 MixedRealityWebRTC (ARM32) 重建应用程序
  • 将 ffmpeg + API 移植到 UWP ?
  • 似乎也有一些使 WebRTC 一般可用于 UWP 平台的方法:https://github.com/microsoft/winrtc

问题

  • Vuforia 支持 ARM32 吗?
  • 如何通过Unity Code访问Hololens2的硬件解码器?
ffmpeg uwp video-streaming vuforia hololens
© www.soinside.com 2019 - 2024. All rights reserved.