ms-media-foundation相关内容

在发送到SinkWriter SharpDX之前调整纹理大小

我正在开发屏幕录制应用程序.我的问题是,在使用CreateDXGISurfaceBuffer制作样本之前,我需要调整Texure2d的大小.我是Mediafoundation的新手,在阅读文档后,我从网站上找不到任何示例代码.我正在使用IDXGIOutput1 :: DuplicateOutput获取屏幕纹理.有没有更好的方法来调整纹理大小而不影响性能? 解决方案 视频处理器MFT 可以缩 ..
发布时间:2020-06-13 18:33:47 其他开发

使用Media Foundation编码Direct X曲面

我正在尝试使用MediaFoundation API对视频进行编码,但是在将样本推送到SinkWriter时遇到问题. 我正在获取要通过桌面复制API进行编码的帧.我最终得到的是带有桌面图像的ID3D11Texture2D. 我正在尝试创建一个包含该表面的IMFVideoSample,然后将该视频示例推送到SinkWriter. 我已经尝试过以不同的方式来解决这个问题: 我 ..
发布时间:2020-06-13 18:33:22 C/C++开发

Windows Media Foundation使用IMFTransform将mp4电影帧解码为2D纹理

我正在尝试使用Windows Media Foundation类对mp4视频进行解码,并将帧转换为2D纹理,DirectX着色器可以使用该纹理进行渲染.我已经能够使用 MFCreateSourceReaderfromURL 读取源流,并且能够读取其主要类型为 MFMEdiaType_Video 而次要类型为的流的媒体类型. MFVideoFormat_H264 如预期. 我现在需要将此格式转 ..
发布时间:2020-05-12 19:41:35 其他开发

IMFSinkWriter无法导出mp4的大尺寸视频

我的Windows MFC应用程序具有导出视频文件的功能. 并且可以选择编码格式(通过 WMV 或 MP4 )和帧大小. 但是,不幸的是,当我尝试导出设置为大帧大小的 MP4 文件时,每次发生 MF_E_INVALIDMEDIATYPE . 简单地说,这是我在每种情况下进行测试时的结果. WMV 640 x 480 ...确定 640 x 576 ...确定 1280 x ..
发布时间:2020-05-09 19:27:40 C/C++开发

我应该释放内部分配的MFT输出缓冲区的返回IMFSample吗?

媒体基础转换对象(MFT)可以实现输出缓冲区分配模型,在该模型中,缓冲区是由MFT对象在内部分配的. 在这种情况下,内部分配的缓冲区是通过MFT_OUTPUT_DATA_BUFFER结构的pSample成员返回的,该成员传递给IMFTransform::ProcessOutput()方法. 从 MFT_OUTPUT_DATA_BUFFER结构文档: typedef struct ..
发布时间:2020-05-08 22:19:00 C/C++开发

异步MFT没有发送MFTransformHaveOutput事件(英特尔硬件MJPEG解码器MFT)

我正在使用MediaFoundation SourceReader技术开发USB摄像头流桌面应用程序.该相机具有USB3.0支持,可提供60fps的1080p MJPG视频格式分辨率. 我使用Software MJPEG Decoder MFT将MJPG转换为YUY2帧,然后转换为RGB32帧以在窗口上绘制.使用此软件解码器时,我只能在窗口上渲染30fps,而不是60fps.我已经在该站点上 ..
发布时间:2020-05-08 01:11:49 其他开发

Media Foundation onReadSample返回样本的大小错误

我正在努力将捕获库从DirectShow转换为MediaFoundation。捕获库似乎运行良好但我在运行Windows 8 32位的平板电脑上遇到集成网络摄像头的问题。 枚举捕获格式时(如 Media Foundation文档 ),我得到了以下支持的相机格式: 0:MFVideoFormat_NV12,分辨率:448x252,帧率:30000x1001 1:MFVideoForma ..
发布时间:2018-07-26 15:21:42 C/C++开发

DXGI桌面复制:通过网络发送它们的编码帧

我正在尝试编写一个应用程序,它将捕获屏幕的视频流并将其发送到远程客户端。我发现在Windows上捕获屏幕的最佳方式是使用 DXGI桌面复制API (自Windows 8起可用)。 Microsoft提供了一个整洁的示例,将重复的框架流式化。现在,我一直在想,什么是最简单但仍然相对较快的方法来编码这些帧并通过网络发送。 帧来自 AcquireNextFrame ,其中包含桌面位图和元数据的表面 ..
发布时间:2017-10-23 22:29:30 C/C++开发

如何在Windows中使用H264视频编码器MFT编码位图

我的应用程序对GDI或DXGI方法捕获的帧进行编码。目前我正在使用帮助x264库进行编码。 AFAIK x264是基于软件的库,我想在GPU的帮助下进行编码,因此可以节省CPU周期,希望速度也会更快。 > 搜索后,我发现一个正在进行h264编码的MFT。 但是对于我来说,几个问题都可以回答。 1)比x264更快编码库? 2)可以帮助这个MFT来编码位图帧吗? - 我 ..
发布时间:2017-08-17 01:59:52 开发方法

从C ++ COM DLL回调到C#应用程序

这将是一个长的职位,因为我想暴露你所有的步骤,我试图使这项工作:) 我有C + + COM dll包含使用Media Foundation API显示视频的VideoPlayer类。 VideoPlayer类使用IDL文件定义: [ object, uuid(74FDBBB1-BFFB-4F7E-ACA3-ADB0C7232790), dual, 不可扩展, poin ..
发布时间:2016-12-18 19:52:33 C#/.NET

从非托管代码的System.AccessViolationException?

我正在编写这个库,通过Media Foundation框架实现C ++ / CLI中的一些基本音频播放器功能,这些功能将由托管代码使用。我可以播放音频,停止,暂停等,只是罚款。对于不熟悉Media Foundation的任何人,媒体会话将发布您可以处理通知的事件。这通过使用IMFAsyncCallback对象调用具有会话对象的BeginGetEvent来完成。 IMFAsyncCallback定义 ..
发布时间:2016-11-06 12:30:23 C#/.NET

如何生成“moov before mdat” MP4视频文件与Media Foundation

我发现Microsoft Media Foundation会生成MPEG4文件,其中MDAT原子位于MOOV原子之前。流式传输需要MDAT之前的MOOV。我假设解决我的问题是使用 MF_MPEG4SINK_MOOV_BEFORE_MDAT 属性,但我似乎无法得到它的效果。我的代码在很大程度上与 http://blogs.msdn.com/b/eternalcoding/archive/2013/0 ..
发布时间:2016-10-25 15:56:46 C/C++开发

媒体基础H264解码器无法正常工作

我正在使用媒体基础创建一个视频会议的应用程序,我有一个问题解码我通过网络接收的H264视频帧。 设计 目前,我的网络源会对每个请求样本,除非有可用的存储样品。如果样本通过网络到达并且没有令牌可用,则样本被存储在链接列表中。否则,它将与MEMediaSample事件排队。我还将解码器设置为低延迟。 我的问题 使用我的网络源运行拓扑我立即看到呈现到屏幕的第一帧。然后,我经历一个 ..
发布时间:2016-10-25 15:37:30 C/C++开发

如何生成“moov before mdat” MP4视频文件与Media Foundation

我发现Microsoft Media Foundation会生成MPEG4文件,其中MDAT原子位于MOOV原子之前。流式传输需要MDAT之前的MOOV。我假设解决我的问题是使用 MF_MPEG4SINK_MOOV_BEFORE_MDAT 属性,但我似乎无法得到它的效果。我的代码在很大程度上与 http://blogs.msdn.com/b/eternalcoding/archive/2013/0 ..
发布时间:2016-10-25 14:51:03 C/C++开发

整个屏幕捕获和渲染在DirectX [性能]

我需要一些方法来获取屏幕数据,并将它们传递给DX9表面/纹理,并以至少 25fps 以 1600 * 900 的分辨率渲染,会更好。 我试过BitBliting,但即使之后,我是在20fps,加载数据到纹理和渲染,我在11fps,这远远落后于我需要。 GetFrontBufferData没有问题。 这里 关于使用Windows Media API 的问题,但我不熟悉。示例正在将数 ..
发布时间:2016-10-17 10:23:02 C/C++开发