了解Microsoft Media Foundation
关于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的更多相关文章
- 用Microsoft.Solver.Foundation进行线性规划,为WPF应用添加智能
在管理信息系统的开发过程中,往往会涉及到一些线性规划数学模型,例如资源配置优化.微软的Microsoft.Solver.Foundation是一个数学库,可以很好的对线性规划问题进行求解.关于它的细节 ...
- 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 ...
- Microsoft Team Foundation Server 2010 安装 序列号 注册码(转载)
安装过程: 一.安装操作系统 安装Windows 2008 R2简体中文版 二.准备安装过程中的需要的用户账户,并设置相应权限. 具体流程如下: 1.点击“开始”——“管理工具”——“计算机管理” 2 ...
- 解读MMS(Microsoft Media Server)协议
下面是一次截取的MMS协议开始帧 部分(十六进制): 01000000cefa0bb0c00000004d4d5320 18000000000000000000000000000000 1600000 ...
- Intel® Media Server Studio Support
复制自网址:https://software.intel.com/en-us/intel-media-server-studio-support/code-samples Code Samples M ...
- (转) [it-ebooks]电子书列表
[it-ebooks]电子书列表 [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...
- CaptureManagerSDK
Simple SDK for capturing, recording and streaming video and audio from web-cams on Windows OS by Win ...
- Windows api 函数全部列表 (未完成)
网上找了很久,发现没有完整版的,msdn上面有,但是不方便查阅,所以想自己整理一下:由于工程量过于庞大,希望大家共同完成.MSDN:http://msdn.microsoft.com/en-us/li ...
- C++模板类与Qt信号槽混用
一.正文 目前正在做一个视频处理相关的项目.项目的技术栈是这样的,UI层采用Qt来实现基本的数据展示和交互,底层音视频采用的是一套基于FFmpeg的视频处理框架.这是一套类似Microsoft Med ...
- [转载]matlab视频读取函数VideoReader
看到以前matlab中读取视频多 使用mmreader等(参考<matlab读取/播放视频的函数>),而现在matlab有一个专门的视频读取类VideoReader完成视频读取的功能. 相 ...
随机推荐
- 2018-11-14-git无法pull仓库refusing-to-merge-unrelated-histories
title author date CreateTime categories git无法pull仓库refusing to merge unrelated histories lindexi 201 ...
- 开启 ssh 服务
开启 ssh 服务 vim /etc/ssh/sshd_config 重启 ssh 服务:/etc/init.d/ssh restart 设置服务自启动:update-rc.d ssh enable
- 16、数据库加固-mysql 加固
1.修改 DBA 登录密码 shell 下执行: mysqladmin -u root password 非首次修改:mysqladmin -u root password -p原密码 在 mysql ...
- Rails向数据库添加新字段和修改字段
目录 添加字段 控制台上执行下面的命令 会生成文件db/migrate/20210529131328_add_column_to_black_ips.rb 执行迁移 执行结果 修改字段 添加迁移文件 ...
- C 语言编程 — 数据类型的别名
目录 文章目录 目录 前文列表 typedef 关键字 typedef 和预处理器指令 #define 的区别 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本 ...
- linux源码编译安装软件原理
目录 一.关于软件包 二.软件编译过程 三.编译安装常用参数 四.源码编译出错的解决思路 五.各种软件安装方法的特点 一.关于软件包 在linux中安装软件是需要安装包的,软件的安装包有各种类型: ...
- Vue cli之使用Vue-CLI初始化创建前端项目
1.生成项目目录 使用vue自动化工具可以快速搭建单页应用项目目录. 该工具为现代化的前端开发工作流提供了开箱即用的构建配置.只需几分钟即可创建并启动一个带热重载.保存时静态检查以及可用于生产环境的构 ...
- 将编译过的C++库迅速部署在Visual Studio新项目中
本文介绍在Visual Studio中,通过属性表,使得一个新建解决方案中的项目可以快速配置已有解决方案的项目中各类已编译好的C++第三方库的方法. 例如,我们现有一个解决方案,其中的一个项目 ...
- TDengine入驻Rainbond开源应用商店
前言 TDengine是一个高效的存储.查询.分析时序大数据的平台,专为物联网.车联网.工业互联网.运维监测等优化而设计.Rianbond擅长应用自动化管理 ,两者结合起来实现1+1大于2,本文详细讲 ...
- Yii AR事务操作
Yii Ar事务操作,示例代码如下: $model=Post::model(); $transaction=$model->dbConnection->beginTransaction() ...