关于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. dotnet C# 高性能配置文件读写库 dotnetCampus.Configurations 简介

    在应用程序运行的时,需要根据不同的配置执行不同的内容.有很多根据配置而初始化的功能往往是在应用程序启动的时候需要执行.对于很多类型的应用程序,特别是客户端的应用程序,启动的性能特别重要.也因此,在启动 ...

  2. SQL server 数据库巡检

    SELECT name FROM sysobjects where xtype='u' and name <>'XzryGzGrant' AND name LIKE 'XzryGzGran ...

  3. 开发日记:中控PUSH协议

    using System; using System.IO; using System.Net; using System.Text.RegularExpressions; namespace Con ...

  4. 使用 @NoRepositoryBean 简化数据库访问

    在 Spring Data JPA 应用程序中管理跨多个存储库接口的数据库访问逻辑可能会变得乏味且容易出错.开发人员经常发现自己为常见查询和方法重复代码,从而导致维护挑战和代码冗余.幸运的是,Spri ...

  5. 【爬虫GUI】YouTube评论采集软件,突破反爬,可无限爬取!

    目录 一.背景介绍 1.1 软件说明 1.2 效果演示 二.科普知识 2.1 关于视频id 2.2 关于评论时间 三.爬虫代码 3.1 界面模块 3.2 爬虫模块 3.3 日志模块 四.获取源码及软件 ...

  6. VueJs创建网易音乐播放器和vueJs常见错误处理

    学习vuejs之后,总得自己上手写一些完整的应用,才能够更加了解各个结构与组件之间的运用. 下面从最基础的准备工作开始: 用vue-cli搭建vue应用:先确保自己已经安装Node环境. (1)Win ...

  7. c 语言不输出空数据 (全面覆盖)

    目录 去除空值的专栏 解决方案 一.通过数组的自身性质,让其值大于零 1. short 数组测试 2. int 数组测试 3. long 数组测试 4. float 数组测试 5. float 数组测 ...

  8. java netty 实现 websocket 服务端和客户端双向通信 实现心跳和断线重连

    java netty 实现 websocket 服务端和客户端双向通信 实现心跳和断线重连 maven依赖 <dependency> <groupId>io.netty< ...

  9. 鸿蒙HarmonyOS实战-Stage模型(服务卡片的模块和创建)

    一.服务卡片的模块和创建 在HarmonyOS中,服务卡片是一种提供即时信息和快速操作的小组件,类似于Android中的通知栏.服务卡片可以显示各种类型的信息,包括通知.天气.日历事件.音乐播放器.快 ...

  10. 在Cocos2d中拖动组件并吸附到节点

    最近在学习制作小游戏,要实现一个拖动吸附效果,这里简单实现一下 代码实现 定义节点和函数功能 在properties里新建一个对象,用来接收目标区域的节点 properties:{ sense: { ...