MF(一)了解 media Foundation

来源:互联网 发布:同花顺软件官方网站 编辑:程序博客网 时间:2024/06/07 06:55


          刚刚想学习一下DirectShow ,却发现MS 又搞出来了一个 Media Foundation, 而且MS 推荐采用Media Foundation 的技术来做多媒体的开发。 MF 是 Dshow 的后继者。 追随新的技术是明智的,因为新的技术产生往往是解决已有技术不能解决或者不容易解决的问题。
  MF (MMF) 是在 vista 之后引入的技术。 MF 有很多优化和增强,主要是下面几个方面:
  1. 更好的支持多媒体的格式,包含 MPEG-4
  2. 支持录制设备和硬件解码
  3. 编程模型更加简单
  4. 增强的多媒体平台
  在vista 上, MF 并没有支持很多种多媒体格式,但是在window 7 中,已经可以支持如下的 source,sink 了。
  AAC decoder
  AAC encoder
  AVI/WAVE file source
  DV video decoder
  H.264 video decoder
  H.264 video encoder
  MJPEG decoder
  MP3 file sink* (不包含 mp3 音频解码器)
  MP4/3GP file source
  MP4/3GP file sink

  MF 的编程模型更加灵活,基本上,有两种模型,如下图:

MF 中常用的一些概念有:
 1. Attributes。 这个概念是在MF 中用来配置对象,描述媒体格式,对象属性等。(IMFAttributes )
 2. Media Type。 用来描述 媒体或者数据流的类型
 3. Media buffers。 用来存储媒体数据。
 4. Media samples。 媒体的sample
 5. Media source。 倒入数据到管道的对象(实体),可能是从本地文件倒入数据流,也可能是从网络倒入,或者其他的刻录设备。
 6. Media Foundation Transforms (MFT) ,在处理数据量的对象(实体),可能是编码器,或者解码器,或者特效增强等。
 7. Meida Sinks。消耗数据量的对象(实体),可能是把图形渲染到显示设备上,可能是把数据流写入到文件中。
 8. Media session。 通过管道控制数据的对象(实体)包含了 Media source, MFT, Media sink. 类似directshow 中的filter graphic
 



0 0