ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

低延迟混合现实捕获如何做到 150ms?MixedRealityCompanionKit 的 MixedRemoteViewCompositor 深度解析

低延迟混合现实捕获如何做到 150ms?MixedRealityCompanionKit 的 MixedRemoteViewCompositor 深度解析 低延迟混合现实捕获如何做到 150msMixedRealityCompanionKit 的 MixedRemoteViewCompositor 深度解析【免费下载链接】MixedRealityCompanionKitThis is a MixedRealityToolkit style repository for code bits and components that may not run directly on Microsoft HoloLens or immersive headsets but instead pair with them to build experiences.项目地址: https://gitcode.com/gh_mirrors/mi/MixedRealityCompanionKit一句话看懂 MixedRemoteViewCompositorMRVCMixedRealityCompanionKit是微软开源的混合现实配套组件工具箱其中的MixedRemoteViewCompositorMRVC让 PC 端应用以低延迟混合现实捕获的方式近乎实时地看到 HoloLens 第一视角画面——官方给出的延迟指标约为150ms。它底层基于Media Foundation媒体管线HoloLens 上的捕获组件把相机画面连同变换数据编码后通过轻量网络层发到远端 PCPC 端解码并按设备位姿渲染。官方文档见 MixedRemoteViewCompositor/README.md。项目全家福MRVC 在配套工具箱中的位置MixedRealityCompanionKit 一共包含 6 大功能模块模块作用Holographic Remoting Host远程托管全息体验KinectIPD用 Kinect 测量瞳距MixedRemoteViewCompositor低延迟远程观看/混合现实捕获本文主角SpectatorView旁人视角观看Windows Mixed Reality CommanderPC 端设备管理与 MRC 捕获控制Asset Bundler资源打包上传下面这张 HoloLens Commander 主窗口截图展示了 PC 与 HoloLens 设备的配对管理其Mixed Reality Capture面板就是官方混合现实捕获的配套入口设备列表中可以同时看到 HoloLens 与 PC 的电量、IP 等状态是排查网络问题的实用工具两种工作模式150ms 低延迟模式 vs 远端合成模式MRVC 提供两种模式见 MixedRemoteViewCompositor/README.md低延迟混合现实捕获Low Latency MRC——延迟约150ms体验类似 Device Portal 的混合现实捕获远端合成MRVC 模式——只传相机图 变换数据场景在 PC 上重新渲染并合成HoloLens 端保持满帧率。 想要150ms关键就在第一种模式合成在 HoloLens 端完成网络只传一路编码视频流。150ms 是怎么拼出来的四段式管线拆解整条链路可以拆成 4 段每一段都尽量做薄阶段位置做了什么① 捕获HoloLensMediaCapture 捕获管线 MRC 视频特效直接拿到已合成的透视混合画面② 编码HoloLens编码为紧凑视频流而非逐帧传原始像素③ 传输网络轻量网络层Socket直连无中间服务④ 解码渲染PCIMFSourceReader 逐帧解码D3D11 纹理直出渲染源码全部在 Source/Shared/ 下核心类一目了然捕获引擎CaptureEngine.cpp播放引擎PlaybackEngine.cpp网络端点NetworkMediaSink.cpp、NetworkMediaSource.cpp捕获端Media Foundation 管线如何介入CaptureEngine的核心思路是给系统MediaCapture挂上一个MRC 视频特效特效定义见 MrcVideoEffectDefinition.cpp音频对应 MrcAudioEffectDefinition.cpp特效插入捕获管线后HoloLens 系统合成器输出的透视混合PV camera 全息内容画面被顺路送入NetworkMediaSinkSink 把每帧封装成IMFSample交给网络层发走。CaptureEngine对外暴露的接口非常简洁InitAsync→StartAsync(enableMrc, connection)→StopAsync见 CaptureEngine.h。注意StartAsync的enableMrc参数——不开启它远端只能看到裸相机画面。网络层Listener 与 Connector 的轻量直连网络层位于 Source/Shared/Network/只有 6 个类非常克制ListenerListener.cpp被动等待连接默认跑在 HoloLens 上应用启动即自动进入监听状态ConnectorConnector.cpp主动发起连接默认跑在 PC 端DataBundleDataBundle.cpp把一帧的多个数据块打包/解包可直接转成IMFSample见 DataBundle.h。这种设备监听、PC 主动连的设计省去了扫码、云端中转等一切多余环节是延迟能压到 150ms 级的重要原因之一。播放端从网络流到 D3D11 纹理PC 端的PlaybackEngine实现IMFSourceReaderCallback流程如下RequestNextSampleAsync不断向NetworkMediaSource伪装成 Media Foundation 数据源要帧每帧到达触发OnReadSample回调PlaybackEngine.h解码后的视频帧直接落到D3D11 纹理连同相机视图/投影矩阵通过SampleUpdated事件交给上层渲染SampleUpdatedArgsImpl纹理由 DirectXManagerDirectXManager.cpp统一管理设备与共享句柄。全程 GPU 纹理直传避免了解码后再拷贝像素、二次上传的开销。新手上手Unity 端 3 步配置低延迟 MRC按 Samples/LowLatencyMRC/README.md 操作导入插件包在 Unity 中 Assets → Import Package选择 Build 目录下的MixedRemoteViewCompositor.unitypackage全部勾选导入添加 MrvcManager新建 GameObject 命名为MrvcManager挂上 Mrvc Manager 脚本并把Enable Mrc打开这是低延迟 MRC 的必选项配置权限发布设置中添加InternetClientServer、WebCam、PrivateNetworkClientServer等能力保证相机与网络可用。PC 端则打开 UWP Viewer 工程Samples/LowLatencyMRC/UWP/点击Playback Mode→ 填入 HoloLens 的 IP 和端口 →Connect To→Start MRC Playback画面即出现在 PC 上。⚠️ 部署 HoloLens 应用时请确认使用的是Release x86的插件 DLL构建说明见 Source/README.md。进阶MRVC 远端合成模式怎么玩如果希望 HoloLens 端零合成开销、保持满帧率可用第二种模式只传 PV 相机图 每帧变换矩阵PC 端把场景相机同步到同一位姿重新渲染场景并与相机图合成模拟出 MRC 效果场景与输入状态如光标位置通过第二条网络连接同步。完整示例与参数说明见 Samples/MRVC/README.md其中Send rates滑块可以调节状态同步频率——官方特别提醒同步频率过高会挤占带宽反而拉高视频延迟。常见问题FAQQ150ms 延迟主要花在哪A主要是编码 局域网传输 解码三段。管线设计特效直采、纹理直传、直连网络把额外开销压到最低剩余基本是物理下限。Q为什么远端只看到相机画面没有全息内容A检查 Unity 中 MrvcManager 的Enable Mrc是否开启没开时只传裸 PV 相机图像。Q连不上或播放失败A确认 HoloLens 与 PC 在同一局域网、端口未被占用网络抖动时可停止后重连必要时重启设备官方文档中的排障建议。Q网络层能拿来同步游戏状态吗A示例里是这么用的但官方注明该网络层专为媒体管线设计正式项目建议换用更成熟的游戏网络框架。关键资料索引总览文档MixedRemoteViewCompositor/README.md低延迟 MRC 教程Samples/LowLatencyMRC/README.md远端合成示例Samples/MRVC/README.md构建说明Source/README.md插件 C 源码Source/Shared/捕获引擎Source/Shared/Media/CaptureEngine.cpp播放引擎Source/Shared/Media/PlaybackEngine.cpp网络层Source/Shared/Network/小结MixedRemoteViewCompositor 用Media Foundation 捕获管线 MRC 特效 轻量网络层 GPU 纹理直出的组合拳把PC 上看 HoloLens 第一视角的延迟压到了150ms量级。对新手而言Unity 端挂一个 MrvcManager、PC 端点几下 UWP Viewer就能跑通整条低延迟混合现实捕获链路想深挖原理Source/Shared/ 下的 C 源码是最佳教材。【免费下载链接】MixedRealityCompanionKitThis is a MixedRealityToolkit style repository for code bits and components that may not run directly on Microsoft HoloLens or immersive headsets but instead pair with them to build experiences.项目地址: https://gitcode.com/gh_mirrors/mi/MixedRealityCompanionKit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表