媒体基础:在没有容器的情况下解码和显示 H264 帧

发布于 2024-12-20 12:08:12 字数 298 浏览 3 评论 0原文

场景是这样的:我的 Windows 客户端应用程序以自定义方式(专有协议)从网络源获取 H264 编码的帧,无需容器。帧的格式是已知的。我需要解码帧并显示视频。要求在高清流媒体时能够完美播放,但在其他场景下可以选择低延迟。

目前,我使用 ffmpeg 的 libavcodec 来解码帧,然后使用 StretchBlt 手动将它们显示在屏幕上。我们正在考虑迁移到媒体基金会,但我不清楚 - 是否有可能拥有不使用容器的源?如果是这样,我需要创建一个自定义的吗?

也欢迎使用媒体基础的替代方案。我目前使用的方法的主要问题是性能不够好,特别是对于高清视频。

The scenario is this: My Windows client app gets H264-encoded frames from a network source, without a container, in a custom way (proprietary protocol). The format of the frames is known. I need to decode the frames and display the video. It is required that the playback will be flawless during HD streaming, but have an option for low-latency for other scenarios.

Currently, I use ffmpeg's libavcodec to decode the frames, then manually display them on the screen with StretchBlt. We're considering a move to Media Foundation, but it's not clear to me - is it possible to have a source that does not use a container? if so, do I need to create a custom one?

Alternatives to using Media Foundation are also welcome. My main issue with the method that I currently use is that the performance is not good enough, especially for HD video.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ヤ经典坏疍 2024-12-27 12:08:12

我没有看到您提到您特别需要或什么 Media Foundation API,因此我建议使用 DirectShow,您可以使用它来实现:

  • 自定义源,请参阅 推送源筛选器示例
  • H.264 解码器,配备 Windows 7(类似于 Media Foundation)或第三方(在几个之间进行选择)
  • 视频渲染器,例如 EVR(与 Media Foundation 共享)或旧版本

I don't see you mention that you specifically need or what Media Foundation API, so I would suggest DirectShow, which you can do it with:

  • custom source, see Push Source Filters Sample
  • H.264 decoder, stock with Windows 7 (similar to Media Foundation) or third party (choice between a few)
  • video renderer such as EVR (shared with Media Foundation) or older versions
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文