(原创 翻译)DirectShow 向 Media Foundation 的转换

DirectShow和WicrosoftMediaFoundation实现Usb相机,包含H264格式的数据流 DirectShow是微软提供的一套在windows上使用的流媒体框架,9.0之前与DirectX一起发布,之后包含在windows sdk中。 阅读详情

(原创 翻译)DirectShow 向 Media Foundation 的转换

Posted on 2007-04-29 13:21  vcommon 阅读(2854)  评论(2)   编辑  收藏  引用 

简介

          这篇文章解释了如何将使用DirectShow的应用程序转向使用vista上的Digital Media API,即Media Foundation.
  本文假设你已经非常熟悉DirectShow。并且本文并不讲述Media Foundation.

对比Media Foundation 和DirectShow

         我们已经跨入了对高清数字媒体时代。未来的数字高清将无处不在。但是他非常需要健壮的保护,而这是当前的数字媒体平台所不具备的。Media Fundation就是为了这个而存在。
        让我们审视高清数字,这个平台需要很有弹性,便于从小故障下恢复。需要考虑大量的不同品质的video 和audio.Media Foundation就是为了这个而存在。比如,支持下一代的HD技术:
  1:DirectX 视频加速(DXVA) 2.0提供了比DXVA1.0更高效率的视频加速,更稳定,最新的视频解码能力,和扩展的硬件视频加速。在DXVA2.0下,windows可以直接处理某些高清内容,并容易错误恢复。
2:Color-space能得以保存在整个视频处理流程中,所以中途可以无转换损失,用户可以享受到高逼真的画质。这个也能减少CPU等消耗。
3:增强的视频渲染器(enchanced video render EVR)增强了视频处理和时钟等。

        让我们研究一下文件保护,在用户购买了一部电影之后,他可以把电影传到他的某个设备上(一些设备支持直接在播放的时候录制),这个过程中会有多种保护模式,购买后的使用保护,播放时防录制保护,复制保护,如果某一个保护没有正确完成,就会使整套保护没有了意义。所以这需要有一个无缝的平台去相互协作。Media Foundation就是为了这个而存在。
        最后,让我们来总览一下DirectShow. DirectShow的API对这些数字高清媒体的应用程序确实是非常通用的,万能的,但是,DirectShow作为一个10多年的老技术而言已经力不从心了。比如:
   1:流程是静态static的,所以实现动态的Graph和Major format change是非常困难的。
  2:DirectShow filter的线程模型是非常复杂的,要完全理解并永不出错是太困难了。
  3:DirectShow filter只能用于DirectShow。
  4:DirectShow不支持文件保护。
  作为DirectShow的接替者,Media Foundation出现了,他不会马上替代DirectShow,作为第一步,他将在vista上慢慢展露他的影响。
  但是目前为止,Media Foundation只能在媒体保护(Proteced media process))方面大施手脚,还未向DirectShow进行足够的扩展和替代。


Appendix: Feature Comparisons

The following table compares the features of Media Foundation with those of DirectShow.

Feature 
group
FeatureMedia 
Foundation
DirectShow
Basic functionalityAudio and video renderingYesYes
 Event notificationYesYes
 Device enumerationNoYes
 Component enumerationYesYes
 Synchronization to reference clockYesYes
 SeekingYesYes
 Improved stress resilienceYesNo
Content protectionComponent validationYesNo
 Content protection policy negotiationYesNo
 Interoperability between content protection technologiesYesNo
 Protection against kernel-mode and user-mode threatsYesNo
 Component revocation and renewalYesNo
 Video output protection managementYesYes
Media tasksAudio captureNoYes
 Video captureNoYes
 Video editingNoYes
 DVD playback and navigationNoYes
 MPEG-2 supportNoYes
 ASF supportNoYes
 TV technologiesNoYes
 Stream buffer engineNoYes
 Encoder APINoYes
Video rendererSubstream mixing using per-pixel or planar alpha blendingYesYes
 Customizable video compositionNoYes
 Support for custom presentersYesYes
 Windowless renderingYesYes
 Multimonitor supportYesYes
 DXVAYesYes
 DirectDraw exclusive modeYesYes
 Backward compatibility with existing applicationsYesYes
 Accurate frame steppingYesYes
 Alpha blending of image dataYesYes
 Glitch resilienceYesNo
 Enhanced video fidelityYesNo
 Enhanced content protection robustnessYesNo
 Standalone useYesNo
 Standalone mixing componentYesNo
Transforms (MFT or DMO)Synchronous data processingYesYes
 Simple programming modelYesYes
 Standalone useYesYes
 Multiple inputs and multiple outputsYesYes
 Dynamic number of streamsYesNo
 Access to sample-level metadataYesNo
 In-place processingYesYes
 Dynamic format changesYesNo
 Quality adjustmentYesNo
 Rate changeYesNo

The following table compares the features of Media Foundation with those of the Windows Media Format SDK.

Feature 
group
FeatureMedia 
Foundation
Format SDK
ASF file featuresAudio and video streamsYesYes
 Image streamsNoYes
 Arbitrary streams (text, file, Web, custom data)NoYes
 Script commandsNoYes
 Data unit extensionsYesYes
 SMPTE time code supportNoYes
 Mutual exclusionYesYes
 Stream prioritizationYesYes
 Bandwidth sharingNoYes
 IndexesYesYes
 MarkersYesYes
 Multiple bit rate streamYesYes
 Multiple language supportYesYes
Codec featuresCBR encodingYesYes
 VBR encodingYesYes
 Two-pass encodingYesYes
 High-resolution audio supportYesYes
 Low delay audioYesYes
 S/PDIF audio outputYesYes
 Video imageYesYes
 Device conformance templateYesYes
 Video complexity settingsYesYes
 Frame interpolationYesYes
 DirectX Video AccelerationYesYes
File writingVideo resizingYesYes
 Color space conversionYesYes
 Audio resamplingYesYes
 ASF file sinkYesYes
 Network sinksNoYes
 Push sinksNoYes
 Watermarking supportNoYes
 Input formats, input settings, and data unit extensionsYesYes
 WMA smart recompressionNoYes
 Multichannel audioYesYes
File readingUser-allocated sample supportNoYes
 Synchronous readingNoYes
 Output format enumerationYesYes
 Multichannel audioYesYes
 MP3 supportYesYes
 Network sourcesYesYes
MetadataID3 supportNoYes
 Custom metadataYesYes
Digital rights managementLive DRMNoYes
 DRM IndividualizationYesYes
 Back up and restore DRM licensesYesYes
 View DRM attributes in the Metadata EditorYesYes
 Output protection levelsYesYes
 License revocationYesYes
 Windows Media DRM for Network DevicesYesYes
 Secure Audio PathNoYes
 Playlist burningYesYes
 Third-party transcription supportYesNo
 Local license issuanceYesNo
 Enhanced Windows Media DRM renewabilityYesNo

C#与DirectShow、Media Foundation的结合:打造高效的视频处理应用 DirectShow在C#中使用DirectShow和Media Foundation进行视频处理,开发者可以灵活地选择不同的框架以满足不同的应用需求。DirectShow适合老旧系统或对兼容性要求较高的项目,而Media Foundation则在性能和硬件加速方面表现更佳,适合现代Windows应用。通过本文的讲解和示例代码,读者可以清晰了解如何在C#中结合这两种技术进行视频处理。在未来的多媒体应用中,结合DirectShow与Media Foundation的优势将为视频处理带来更多可能性。 阅读详情

相关推荐

Direct Show的前世今生

近来在研究Media Foundation,查了一下资料竟然发现这个被微软官方钦定的Direct Show的继承人既然已经推出有10年的时间了。这不由让人好奇,自推出以来就被人诟病的Direct Show为什么还能在这10年的时间里居然还地位稳固呢? 好了,这一期先不探讨Diret Show地位稳固的原因了,先简单回顾一下Direct Show的发展历史,至于它是否会被MF替换,什么时候会被替

R_hgt的专栏 2973

Media Foundation与DirectShow的具体差别有哪些

DirectShow是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM(Component Object Model)的流媒体处理的开发包,与DirectX开发包一起发布。DirectShow使用一种叫Filter Graph的模型来管理整个数据流的处理过程,运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行

Baple的专栏 1万+

Wine 8.0深度解析:从PE转换到国产系统实战部署

在跨平台计算领域,应用兼容性始终是核心挑战之一。其原理在于通过系统调用翻译和API重实现,在异构操作系统间构建桥梁。这项技术的核心价值在于打破生态壁垒,实现软件资源的复用,避免因单一平台限制而重复开发或切换整套系统。其典型应用场景包括在Linux或macOS上运行Windows专业软件、游戏,以及在国产化替代过程中保障特定行业应用的连续性。本文聚焦于Wine 8.0这一里程碑版本,它通过引入PE到ELF的完整格式转换,从架构层面提升了性能与系统集成度,并持续完善了图形、多媒体及.NET运行时支持。针对Arc

weixin_30846347的博客 245

从Directshow转向 Media Foundation

 对比Media Foundation 和DirectShow         我们已经跨入了对高清数字媒体时代。未来的数字高清将无处不在。但是他非常需要健壮的保护,而这是当前的数字媒体平台所不具备的。Media Fundation就是为了这个而存在。        让我们审视高清数字,这个平台需要很有弹性,便于从小故障下恢复。需要考虑大量的不同品质的video 和audio.Media

智慧的鱼 7407

Unity视频播放终极方案:告别VLC依赖,UMP插件全平台配置与中文路径问题解决

在Unity开发中,视频播放功能是常见的多媒体需求,其核心在于解码器与渲染管线的协同工作。视频播放技术通过调用系统原生解码API或集成第三方解码库,将压缩的视频数据解码为可渲染的帧序列,再通过GPU纹理映射到游戏对象上,实现流畅的视觉呈现。这项技术的工程价值在于平衡性能、兼容性与包体大小,尤其在跨平台项目中,需要兼顾不同操作系统的媒体框架差异。在实际应用场景中,如游戏过场动画、UI背景视频、AR/VR内容展示等,稳定高效的视频播放能显著提升用户体验。本文聚焦于Unity Asset Store中的Unive

culi3118的博客 381

Unity跨平台视频播放:告别VLC,UMP Pro保姆级配置指南

在Unity应用开发中,视频播放功能是增强用户体验的关键技术点。其核心原理在于通过解码引擎处理视频流,并将其渲染到纹理或屏幕上。传统的VLC方案虽然格式兼容性广,但存在集成复杂、包体庞大和跨平台适配难等工程痛点。UMP Pro插件通过封装各平台原生播放能力,提供了统一的API接口,显著降低了开发复杂度,提升了运行效率与包体控制。这一技术方案特别适用于游戏过场动画、教育应用嵌入视频及商业演示等需要稳定、高效媒体播放的场景。本文基于Unity3D和跨平台开发实践,详细解析了UMP Pro的配置流程与避坑指南,帮

535

Microsoft Media Foundation官方文档翻译(20)《Stream Subtype GUIDs》《...

官方英文文档链接:https://docs.microsoft.com/en-us/windows/desktop/medfound/stream-subtype-guids 基于05/31/2018 Media Type 剩下的几篇都在此页 Stream Subtype GUIDs Complete and Partial Media Type Media Type Conversio...

zhangchaosd的博客 540

Steam Machine技术解析:Proton兼容层与Linux游戏生态开发实战

如果你是一个PC游戏玩家,最近可能被一个词刷屏了:Steam Machine。它听起来像是一台复古街机,又像是一个全新的游戏主机,但 Valve 官方给出的定义是“能运行你整个 Steam 游戏库的掌上 PC”。这听起来很美好,但问题也随之而来:它到底是 Valve 用来对抗任天堂 Switch 和 ROG Ally 的“游戏掌机”,还是一个披着游戏外衣的、试图重新定义客厅娱乐的“PC 形态实验”?对于普通玩家和开发者来说,这仅仅是一个新硬件,还是背后隐藏着 SteamOS、Proton 兼容层乃至整个 L

weixin_30566111的博客 408

Microsoft Media Foundation官方文档翻译(14)《Image Stride》

官方英文文档链接:https://docs.microsoft.com/en-us/windows/desktop/medfound/image-stride 基于05/31/2018 当视频图像存储在内存中时,内存缓冲区可能在每行像素后面有额外的填充字节,填充字节会影响图像在内存中的存储方式,但不会影响图像的显示方式。 stride 是从内存中一行像素开头到内存中的下一行像素间隔的字...

weixin_30408739的博客 131

基于QT C++的音乐播放器开发实战:从界面设计到播放逻辑完整实现

在桌面应用开发领域,跨平台框架QT与C++的结合是实现高性能、高可控性软件的重要技术路径。其核心原理在于QT的信号与槽机制提供了灵活的事件驱动架构,而C++则确保了底层资源的高效管理。这种组合的技术价值在于能够构建功能完整、性能优异的原生应用,尤其适用于多媒体处理、复杂交互界面等场景。本文聚焦于音乐播放器这一经典应用,通过QMediaPlayer、QListView等核心组件的实战整合,深入解析播放控制、列表管理等关键技术点。文章特别针对中文路径处理、播放进度同步等常见工程难题提供了解决方案,并分享了界面美

diyudong4681的博客 395

USB摄像头调用与调试实战项目完整指南

你以为的“插上就能用”,其实是无数工程师在底层默默构筑的技术长城。从一颗CMOS传感器开始,到ISP处理、USB传输、驱动加载、操作系统抽象、应用调用……每一层都有它的规则和陷阱。任何一个环节松动,都会让整个系统变得脆弱不堪。所以,下次再遇到摄像头异常,请不要再轻易归咎于“设备坏了”。试着问问自己:🔋 供电够吗?🧵 线缆达标吗?⚡ 接口带宽撑得住吗?🧠 驱动加载正确吗?📊 数据流有没有被丢弃?只有建立起完整的系统视角,才能真正掌控视觉采集的每一个瞬间。

weixin_33431149的博客 1326

Microsoft Media Foundation官方文档翻译(16)《Extended Color Information》

官方英文文档链接:https://docs.microsoft.com/en-us/windows/desktop/medfound/extended-color-information 基于05/31/2018 In this article Color Space in Media Types Color Space Conversion Using Extended Colo...

zhangchaosd的博客 371

Delphi XE中DSPack 2.3.3控件安装、使用与兼容性实战指南

DirectShow是Windows平台经典的多媒体处理框架,其通过Filter Graph模型将音视频处理流程模块化,实现了数据流的灵活组装与控制。这一原理为开发者提供了强大的底层媒体操作能力,其技术价值在于能够高效处理本地文件播放、实时流媒体捕捉与格式转换等复杂任务。在Delphi开发环境中,DSPack控件包作为DirectShow的封装层,将COM接口与Filter Graph的复杂性转化为可视化的VCL组件,极大地提升了开发效率,广泛应用于视频监控、会议系统、媒体播放器等桌面应用场景。本文聚焦于经

weixin_30388677的博客 461

Microsoft Media Foundation官方文档翻译(16)《Extended Color Information》未完

官方英文文档链接:https://docs.microsoft.com/en-us/windows/desktop/medfound/extended-color-information 基于05/31/2018 此篇也先咕咕,感觉没完全理解,还剩一点,以后翻 In this article Color Space in Media Types Color Space Convers...

weixin_30917213的博客 166

WPF使用Mediafoundation框架捕捉摄像头(源码)

现在没有0分资源了,兑现不了诺言。本例主要是vb.net使用mediafoundation框架打开摄像头。包括同步异步两个方式。

别再手动画柜子了!用EPLAN导入STEP模型,5分钟搞定一个标准机柜

本文详细介绍了如何利用EPLAN Pro Panel的3D布局功能,快速将STEP模型转化为智能机柜宏,大幅提升电气工程设计效率。通过实战步骤解析,包括模型导入、智能解析、安装面定义及拼柜技巧,帮助工程师5分钟内完成标准机柜设计,避免传统手动建模的尺寸偏差问题。

weixin_26875109的博客 436

PotPlayer64安装路径深度指南:64位Windows下路径对齐与配置治理

PotPlayer作为主流64位多媒体播放器,其运行稳定性高度依赖安装路径与系统架构的精准对齐。在Windows 64位环境下,文件系统重定向、注册表分层(WOW6432Node)、插件架构匹配(如LAV Filters、NVIDIA nvEncodeAPI64)共同构成一套严苛的路径治理体系。错误的路径选择将直接导致硬件加速失效、右键菜单丢失、字幕翻译异常等典型故障。掌握符号链接(mklink /J)、COM组件手动注册、注册表路径一致性校验等关键技术,不仅能规避90%的部署问题,更可支撑多版本共存、IT

weixin_34405354的博客 586

【数据分享】1985-2023年30米CLCD土地覆盖栅格数据分享

总的来说,CLCD 反映了中国快速的城市化进程和一系列生态工程,揭示了气候变化条件下人为对 LC的影响,其在全球变化研究中具有潜在应用价值。最后,通过目视解译的独立样本和第三方测试样本评估CLCD的准确性。特别地,该研究将CLCD产品与目前最先进的30m专题产品包括不透水表面积(ISA)、地表水和森林进行比对,以综合评估CLCD的质量(以下为技术流程图)。数据分类:分为九类用地,该数据包括9种用地类型,分别为:农田、森林、灌木、草原、水域、冰雪、裸地、不透水面、湿地。数据格式:.tif格式。

weixin_61129400的博客 6927

MediaFoundation采集

Media Foundation 旨在应对高清内容带来的挑战。 在整个平台中改进的音频和视频质量,现在可以为下一代高清内容提供出色的体验。与 DXVA 1.0 相比,DirectX 视频加速 (DXVA) 2.0 提供更高效的视频加速,视频解码更可靠、更精简,在视频处理中扩展了硬件的使用。 使用 DXVA 2.0,Windows 可以处理一些要求最苛刻的高清内容,并提供高质量和改进的故障复原能力。在整个视频管道中保留颜色空间信息。 用户可以以完全保真度欣赏视频内容。 颜色信息和交错图像现在传递到硬件进行单通

qq_15821883的博客 2760

C#创建COM组件,QT调用COM组件简单测试(VS2008+QT4.6.4)

一. C#创建组件: 1. VS2008新建一个项目,选择Visual C#, Class library 修改Properties下面的AssemblyInfo.cs文件,ComVisible属性设置为True,即:[assembly: ComVisible(true)] 2. 右击项目,选择“属性”, 选择“生成”选项卡,把“为COM互操作注册”勾选上 选择“签名”选项卡,把“

3518

FreeCAD源码分析:Sketcher模块

Sketcher模块基于Part模块功能实现了特征编辑(Feature Editing)建模的功能。这类参数化建模系统主要包括几何表示、约束求解器等两大组成部分。

国产CAx(CAD/CAE/CAM)软件研发 6524
上一篇: flex捕获摄像头拍照
下一篇: Media Foundation SDK Samples on Code Gallery
王晓鹏
博客等级 码龄22年 58粉丝 175原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值