使用 MediaElement 在 UWP 中播放 UDP H.264 字节流
Play UDP H.264 byte stream in UWP with MediaElement
我正在通过 UDP 从 Tello 无人机接收 H.264 流。我想在 UWP 应用程序中实时显示视频。我已经尝试写入分配给分配给 MediaElement 的 MediaSource 的 MemoryStream。没有快乐。
var mediaSource = MediaSource.CreateFromStream(_stream.AsRandomAccessStream(), "video/avc");
_mediaPlayerElement.Source = mediaSource;
几年前我使用 DirectShow。我在看 Media Foundation,但这些似乎在很多年前就已被弃用。
在这一点上,我对尝试的想法一筹莫展。如何让 UDP 流式传输 H.264 显示在 UWP 应用程序中?
UWP MediaElement 后端有 Media Foundation(Media Foundation 信誉良好,是 Windows 包括 UWP 中当前的低级别媒体 API。但是,没有对您正在寻找的协议的内置支持。您应该开发一个集成层,将您拥有的数据转换为 MediaElement 可以使用的内容。
它可能是一个协议处理程序,例如,因为您基本上想要注入 H.264 数据并以媒体基础友好的方式对其进行格式化,以便 MediaElement 可以应用标准解码器并通过媒体基础管道将内容路由到演示文稿. Media Extensions presentation 的第 12 页在使用 API 方面应该是一个很好的参考点。
或者它也可以是一个可能更简单的媒体流源,在幻灯片 5、20 的 Building video and audio streaming apps presentation 中进行了解释。
我正在通过 UDP 从 Tello 无人机接收 H.264 流。我想在 UWP 应用程序中实时显示视频。我已经尝试写入分配给分配给 MediaElement 的 MediaSource 的 MemoryStream。没有快乐。
var mediaSource = MediaSource.CreateFromStream(_stream.AsRandomAccessStream(), "video/avc");
_mediaPlayerElement.Source = mediaSource;
几年前我使用 DirectShow。我在看 Media Foundation,但这些似乎在很多年前就已被弃用。
在这一点上,我对尝试的想法一筹莫展。如何让 UDP 流式传输 H.264 显示在 UWP 应用程序中?
UWP MediaElement 后端有 Media Foundation(Media Foundation 信誉良好,是 Windows 包括 UWP 中当前的低级别媒体 API。但是,没有对您正在寻找的协议的内置支持。您应该开发一个集成层,将您拥有的数据转换为 MediaElement 可以使用的内容。
它可能是一个协议处理程序,例如,因为您基本上想要注入 H.264 数据并以媒体基础友好的方式对其进行格式化,以便 MediaElement 可以应用标准解码器并通过媒体基础管道将内容路由到演示文稿. Media Extensions presentation 的第 12 页在使用 API 方面应该是一个很好的参考点。
或者它也可以是一个可能更简单的媒体流源,在幻灯片 5、20 的 Building video and audio streaming apps presentation 中进行了解释。