Articles of ms media foundation

我可以在没有播放的情况下从DirectShow获取原始video帧吗?

我正在使用媒体基础工作媒体播放器。 我想支持VOB文件播放。 但是,媒体基础目前不支持VOB容器。 因此我希望使用DirectShow。 我的想法是不使用DirectsShowgraphics来替代path,而只是抓取一个video帧,并把它传递给媒体基础中的相同pipe道。 在媒体基础上,我有一个“IMFSourceReader”,它只是从video文件中读取帧。 是否有直接显示的等价物,它只是给我的帧,而不需要创build一个graphics,开始播放循环,然后试图从渲染引脚提取帧? (更清楚的是,DirectsShow是否支持这样的架构,它可以给我原始帧,而不必真正播放video?) 我已经阅读了关于ISampleGrabber,但它不赞成,我认为它不适合我的架构。 我以前没有在DirectShow上工作过。 谢谢,Mots

在C ++中使用Media Foundation&Windows 8捕获问题

这将是我的第一个问题在StackOverflow几天后寻找一个解释。 请温柔地问我,因为我知道我的问题有点奇怪是一个普遍的问题。 我制作了一个基于微软示例“CaptureToFile”的MF捕捉video应用程序。 它确实在Windows 7 x64上工作。 我升级到Visual Studio 2013没有问题。 当我尝试在Windows 8.1 x64机器上进行所有的开发时出现问题。 该应用程序编译和执行没有错误,但它是无法通过在asynchronous模式下使用m_pReader-> ReadSample()捕获采样; 只有前两个样本到达OnReadSample方法; 并且必须有“控制”样本,因为IMFSample全部为空。 之后,应用程序被“吊”等待数据。 我已经尝试了原始MFCaptureToFile样品,同样的悲伤结果。 当然,我觉得硬件和软件是相似的(相同的驱动程序版本的捕获卡,都是台式电脑…) 你知道这种行为的可能原因吗? 在Win7中,一切都是无懈可击的! 或者至less,如果你能点亮一些关于寻找新事物的新途径 提前致谢 更新:游戏中还有另外一个“玩家”。 纵观线程,我发现一个工作线程在'RTWorkQ.dll',实时工作队列容器中,只针对Windows 8。我将继续研究。 同时,如果您有任何想法,可以分享,我很乐意听到您的声音。 更新2:我修改了示例MFCaptureToFile同步获取video样本,因为我认为这个问题可能是由于asynchronous行为; 与队列有关。 我不得不说,即使这个变化,问题仍然存在。 第二次尝试阅读样本时,应用程序被“吊死”,等待阅读不会永远不会到来。 更新3:我已经尝试使用捕获video(MFCaptureEngine)的另一种MF方式的CaptureEngine示例应用程序。 它的构build和运行完美无瑕,但是在开始“预览”时不会显示任何图像,也不会logging任何有用的,只有非可播放的文件。 更新4:我已经在Windows 8 PRO中安装了Visual Studio 2010 Ultimate。 样本MFCaptureToFile在样本中再次失败。 无法从图像采集卡读取第二个采样。 我开始认为这可能是采集卡(Datapath VisionRGB-E1S)和Windows 8 PRO之间的不兼容,尽pipe驱动程序确保在此平台上正常工作,并且testing程序显示图像。 明天我要用外置的USBnetworking摄像机来testing。

如何在Windows中使用H264video编码器MFT对位图进行编码

我的应用程序做从GDI或DXGI方法捕获帧的编码。 目前我正在做编码与帮助x264库。 AFAIK x264是基于软件的库,我想用GPU来编码,所以可以节省CPU周期,希望速度也会更快。 经过search,我find了一个正在做h264编码的H.264video编码器 MFT。 但几个问题都回答了我。 1)它比x264编码库快吗? 2)可以帮助这个MFT编码位图帧吗? – 我只看到MFVideoFormat_I420,MFVideoFormat_IYUV,MFVideoFormat_NV12,MFVideoFormat_YUY2,MFVideoFormat_YV12支持这些格式 3)是硬件加速(是指使用CPU还是GPU)? – 最初我的理解是使用GPU,但是在阅读这篇文章之后,我感到困惑MFT编码器(h264)CPU利用率高 。 4)H.264 Video Encoder MFT可以独立使用而不使用接收器,因为我必须在networking上发送数据? 5)有没有其他的select在Windows中? 这可能是一些非常愚蠢的问题,请随时编辑。