加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Microsoft Media Foundation官方文档翻译(8)《Overview of the

发布时间:2020-12-14 02:12:20 所属栏目:Windows 来源:网络整理
导读:官方英文文档链接:https://docs.microsoft.com/en-us/windows/desktop/medfound/overview-of-the-media-foundation-architecture 基于05/31/2018 ? This topic describes the general design of Microsoft Media Foundation. For information about using M

官方英文文档链接:https://docs.microsoft.com/en-us/windows/desktop/medfound/overview-of-the-media-foundation-architecture

基于05/31/2018

?

This topic describes the general design of Microsoft Media Foundation. For information about using Media Foundation for specific programming tasks,see Media Foundation Programming Guide.

下图显示了 Media Foundation 的结构。

?

Media Foundation 提供了两种不同的模型。第一种是图左边,使用端到端管道(end-to-end pipeline)来处理媒体数据。应用程序 initializes the pipeline,例如,通过提供要播放的文件的URL,然后调用控制 streaming 的方法。在图右侧的第二个模型中,应用程序从源中提取数据,将其推送到目的地。如果您需要处理数据,那么此模型特别有用,因为应用程序可以直接访问数据流。

Primitives and Platform(基本数据结构和平台)

在图底部,那些 Primitives 是在整个 Media Foundation API 中会用到的辅助对象:

  • Attributes 一种在对象内部存储信息的通用方法,是键/值对的列表。
  • Media Types 描述 stream 的格式。
  • Media Buffers hold 媒体数据块,例如视频帧和音频帧,并用于在对象之间传输数据。
  • Media Samples media buffers 的容器。同时包含关于 buffer 的元数据(metadata),例如时间戳。

Media Foundation Platform APIs 提供了 Media Foundation 管道使用的一些核心功能,例如异步回调(asynchronous callbacks)和工作队列(work queues)。某些应用程序可能需要直接调用这些API;此外,如果您需要自己为 Media Foundation 实现源(source),转换(transform)或接收器(sink),则也需要这些 API。

Media Pipeline

媒体管道包含三种类型的对象,用于生成或处理媒体数据:

  • Media Sources 将数据引入管道。媒体源可以从本地文件获取数据,也可以来自网络流,或者来自硬件捕获设备。
  • Media Foundation Transforms (MFTs) 处理流中的数据。编码器和解码器都实现为 MFTs。
  • Media Sinks 使用数据。例如,在显示器上显示视频,播放音频或将数据写入媒体文件。

开发者可以自己实现这三种对象。例如为了支持新的媒体格式。

Media Session 控制着 pipeline 中的数据流,并处理 例如质量控制,音频/视频同步和响应格式更改等 任务。

Source Reader and Sink Writer

Source Reader 和 Sink Writer 提供了另一种方式去使用基本的 Media Foundation 组件(media sources,transforms,and media sinks)。source reader 托管 media source 和零个或多个解码器,而 sink writer 托管 media sink 和零个或多个编码器。你可以用 source reader 从 media source 中获取压缩过或未压缩的数据,然后用 sink writer 对数据进行编码并将数据发送到 media sink。

注意

source reader 和 sink writer 在 Windows?7 中可用。(win7以上?)

?

该编程模型可以使应用程序更好地控制数据流,并使应用程序可以直接访问源数据。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读