我们需要什么?
我们正在尝试开发一个质量管理应用程序,在该应用程序中我们在金属部件上显示全息图作为辅助标记。 (使用 Hololen2 + Vuforia + ModleTargets)员工使用传感器跟随这个辅助标记,数据将由测试设备实时分析。结果输出在屏幕上/在测试设备制造商的封闭源应用程序中可见。
捕获视频输出: 目前的计划是通过采集卡采集测试设备的视频流。在 vuforia 应用程序中添加一个 via mrtk2 视频面板,并使用 obs 或 OpenCV python 脚本将捕获的视频流式传输到 Hololens2 以进行屏幕录制。
到目前为止我们尝试了什么
1)发送原始udp流 通过 RMTP 和解码 + 使用 gstreamer 服务器转换并在 Unity 中编写自己的库用于接收 结果:暂时停止,因为接收 udp 流需要连接/会话管理(信令)帧同步和视频大小、颜色格式、帧速率等协议。我们没有解决方案。 任何一个自己的实现都会具有很高的复杂性,并且会消耗大量时间。
2)使用我可以在网上找到的可用协议 实际上,已经为会话创建和流式传输开发了一些协议:
使用这些时,视频通常使用 xh264 进行编码,需要在 HoloLens 2 上解码。有 C/C++ 本机(硬件)解码库的 API,如 unity-vlc 和 ffmpeg.NET,需要媒体库 ffmpeg。我可以弄清楚(未测试)HoloLens2 上有一个硬件 h264 解码器,但我不知道如何访问它。因为那里我不能否认任何关于 HoloLens2 媒体库的信息。
3)使用Unity包
WebRTC单元包(https://docs.unity3d.com/Packages/[email protected]/manual/index.html)支持多种传输协议似乎没有信令机制和
Unity package Render streaming (https://docs.unity3d.com/Packages/[email protected]/manual/index.html) 是一个完全集成的 unity to unity 和 unit to browser streaming package with integrated带有 Web GUI 的流服务器。它提供各种流协议(TCP、UDP、rmtp)和通过 websocket、http(似乎是自定义的而不是 whip)或 Furiouus 的信号机制。 但它不支持 UWP,如文档中所述。实施示例应用程序,我们可以演示一个使用 Vuforia 的工作示例,但它在缺少库的情况下使用目标 UWP 构建失败。 类似于:https://www.youtube.com/watch?v=nHRC0uGBnn8
明天将测试其他编译选项..
接下来的选择是什么?
问题