关于Microsoft Media Foundation

是什么

Microsoft Media Foundation是用来处理(创建、修改、传输、合成)多媒体数据(音视频)的一个平台。

有什么用

Microsoft Media Foundation可以开发视频/音频播放器、视频编辑程序、文件格式转换器、音频视频捕获应用程序、编码器和解码器、数字信号处理器等。

凡是在Windows中涉及到多媒体数据处理的,都可以由Microsoft Media Foundation来完成。

Microsoft Media Foundation是Windows系统的一部分(最低支持Windows Vista系统),所以基于Media Foundation开发的应用程序无需安装任何其他库。

Media Foundation中的重要概念

组件

在Media Foundation中存在各种各样不同的组件,每个组件都有一对输入/输出,通过对输入流进行处理然后输出结果来完成组件的功能,不同功能的组件按正确顺序链接组合在一起就能处理媒体数据了。

每个组件能处理的输入流和输出的数据流是特定的,比如A组件的输出流(处理结果)是ACC音频流而B组件的输入流是MP3音频流那么B就无法处理A的结果。所以要强调正确的链接顺序。

MF组件按功能可分为三类:

媒体源组件:负责从媒体文件、网络或媒体设备等加载多媒体数据流。

数据处理组件:负责具体的数据处理。比如解码、编码或自定义处理逻辑。

呈现组件:管理输出的最终的媒体流。发送给网络或者呈现在屏幕上,或者保存为文件。

MFTopology

组件按特定顺序连接起来表示一个Topology。Topology可以理解为由组件连接在一起的一条管道。Topology可以用来帮助创建管道。

MFSession

Session用来管理媒体数据在Topology中的流动。

MF中的最小功能单元是组件,完全可以只由组件来开发应用。

但是MFTopology和MFSession已经为我们封装好了常见的、重要的功能。所以使用它们开发应用会更加方便

了解Microsoft Media Foundation的更多相关文章

  1. 用Microsoft.Solver.Foundation进行线性规划,为WPF应用添加智能

    在管理信息系统的开发过程中,往往会涉及到一些线性规划数学模型,例如资源配置优化.微软的Microsoft.Solver.Foundation是一个数学库,可以很好的对线性规划问题进行求解.关于它的细节 ...

  2. C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\Team Foundation\4.0\Cache\VersionControl.config is not valid and cannot be loaded.

    Recently, we experienced a strange problem with TFS 2010. We spent a few days before we figured it o ...

  3. Microsoft Team Foundation Server 2010 安装 序列号 注册码(转载)

    安装过程: 一.安装操作系统 安装Windows 2008 R2简体中文版 二.准备安装过程中的需要的用户账户,并设置相应权限. 具体流程如下: 1.点击“开始”——“管理工具”——“计算机管理” 2 ...

  4. 解读MMS(Microsoft Media Server)协议

    下面是一次截取的MMS协议开始帧 部分(十六进制): 01000000cefa0bb0c00000004d4d5320 18000000000000000000000000000000 1600000 ...

  5. Intel® Media Server Studio Support

    复制自网址:https://software.intel.com/en-us/intel-media-server-studio-support/code-samples Code Samples M ...

  6. (转) [it-ebooks]电子书列表

    [it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...

  7. CaptureManagerSDK

    Simple SDK for capturing, recording and streaming video and audio from web-cams on Windows OS by Win ...

  8. Windows api 函数全部列表 (未完成)

    网上找了很久,发现没有完整版的,msdn上面有,但是不方便查阅,所以想自己整理一下:由于工程量过于庞大,希望大家共同完成.MSDN:http://msdn.microsoft.com/en-us/li ...

  9. C++模板类与Qt信号槽混用

    一.正文 目前正在做一个视频处理相关的项目.项目的技术栈是这样的,UI层采用Qt来实现基本的数据展示和交互,底层音视频采用的是一套基于FFmpeg的视频处理框架.这是一套类似Microsoft Med ...

  10. [转载]matlab视频读取函数VideoReader

    看到以前matlab中读取视频多 使用mmreader等(参考<matlab读取/播放视频的函数>),而现在matlab有一个专门的视频读取类VideoReader完成视频读取的功能. 相 ...

随机推荐

  1. netcore依赖注入通过反射简化

    aspnetcore里面用到许多的service,好多业务代码都要通过Service.AddScoped.Singleton.Transient等注入进去,类太多了写起来和管理起来都很麻烦,所以借鉴了 ...

  2. Java的Stream流的分页,Stream的skip和limit实现分页

    1.工具类 package com.cc.testproject.utils; import com.github.pagehelper.PageInfo; import org.springfram ...

  3. MySQL:根据指定日期加365天,当前时间距离明年的指定的日期还有多少天-SQL

    一.数据准备 /* Navicat Premium Data Transfer Source Server : songweipeng Source Server Type : MySQL Sourc ...

  4. HTTP 报文详解

    报文的语法 所有的 HTTP 报文都可以分为两类:请求报文和响应报文.请求报文会向 Web 服务器请求一个动作,响应报文会将请求的结果返回给客户端.请求和响应报文的基本报文结构相同 请求报文的格式: ...

  5. 面向K-12学生的远程访问学校计算机实验室

    ​ 为了应对新冠肺炎大流行,许多学校被迫采用远程学习和混合时间制度.在家学习的学生必须使用自己的个人设备或学校提供的设备(例如 Chromebook )来完成课堂作业. 尽管许多解决方案可以帮助学生和 ...

  6. SimpleHTTPServer模块详解

    SimpleHTTPServer实现文件的展示和下载 可以用python2.7直接启动一个进程.以命令执行的当前目录为页面根目录,如果不存在index.html,默认展示当前目录的所有文件. pyth ...

  7. dbeaver使用详解

    1.dbeaver使用本地驱动 解压 点击可执行文件 驱动管理 新建驱动 起名字 com.mysql.jdbc.Driver jdbc:mysql//{host}[:{port}]/[{databas ...

  8. deeplearning4j训练MNIST数据集以及验证

    训练模型官方示例 MNIST数据下载地址: http://github.com/myleott/mnist_png/raw/master/mnist_png.tar.gz GitHub示例地址: ht ...

  9. 转 [golang]为什么Response.Body需要被关闭

    Body io.ReadCloser       The http Client and Transport guarantee that Body is always non-nil, even o ...

  10. Windows 7 任务栏开发 之 进度条(Progress Bar)

    上一篇我们完成了"覆盖图标"(Overlay Icon)的相关开发,本篇我们将对进度条特性进行研究.在使用IE 下载文件时,任务栏图标会同步显示当前下载进度(如下图).那么在应用程 ...