ms-media-foundation相关内容
我正在开发屏幕录制应用程序.我的问题是,在使用CreateDXGISurfaceBuffer制作样本之前,我需要调整Texure2d的大小.我是Mediafoundation的新手,在阅读文档后,我从网站上找不到任何示例代码.我正在使用IDXGIOutput1 :: DuplicateOutput获取屏幕纹理.有没有更好的方法来调整纹理大小而不影响性能? 解决方案 视频处理器MFT 可以缩
..
我正在尝试使用MediaFoundation API对视频进行编码,但是在将样本推送到SinkWriter时遇到问题. 我正在获取要通过桌面复制API进行编码的帧.我最终得到的是带有桌面图像的ID3D11Texture2D. 我正在尝试创建一个包含该表面的IMFVideoSample,然后将该视频示例推送到SinkWriter. 我已经尝试过以不同的方式来解决这个问题: 我
..
我正在尝试使用MediaFoundation将ID3D11Texture2D编码为mp4.下面是我当前的代码. 初始化接收器编写器 private int InitializeSinkWriter(String outputFile, int videoWidth, int videoHeight) { IMFMediaType mediaTypeIn = nu
..
我正在尝试将H.264视频供稿流式传输到Web浏览器. Media Foundation用于编码分段的MPEG4流(启用了MFTranscodeContainerType_FMPEG4,MF_LOW_LATENCY和MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS的MFCreateFMPEG4MediaSink).然后,该流通过IMFByteStream连接到Web服
..
我正在尝试使用Windows Media Foundation类对mp4视频进行解码,并将帧转换为2D纹理,DirectX着色器可以使用该纹理进行渲染.我已经能够使用 MFCreateSourceReaderfromURL 读取源流,并且能够读取其主要类型为 MFMEdiaType_Video 而次要类型为的流的媒体类型. MFVideoFormat_H264 如预期. 我现在需要将此格式转
..
我的Windows MFC应用程序具有导出视频文件的功能. 并且可以选择编码格式(通过 WMV 或 MP4 )和帧大小. 但是,不幸的是,当我尝试导出设置为大帧大小的 MP4 文件时,每次发生 MF_E_INVALIDMEDIATYPE . 简单地说,这是我在每种情况下进行测试时的结果. WMV 640 x 480 ...确定 640 x 576 ...确定 1280 x
..
媒体基础转换对象(MFT)可以实现输出缓冲区分配模型,在该模型中,缓冲区是由MFT对象在内部分配的. 在这种情况下,内部分配的缓冲区是通过MFT_OUTPUT_DATA_BUFFER结构的pSample成员返回的,该成员传递给IMFTransform::ProcessOutput()方法. 从 MFT_OUTPUT_DATA_BUFFER结构文档: typedef struct
..
我正在使用MediaFoundation SourceReader技术开发USB摄像头流桌面应用程序.该相机具有USB3.0支持,可提供60fps的1080p MJPG视频格式分辨率. 我使用Software MJPEG Decoder MFT将MJPG转换为YUY2帧,然后转换为RGB32帧以在窗口上绘制.使用此软件解码器时,我只能在窗口上渲染30fps,而不是60fps.我已经在该站点上
..
我正在努力将捕获库从DirectShow转换为MediaFoundation。捕获库似乎运行良好但我在运行Windows 8 32位的平板电脑上遇到集成网络摄像头的问题。 枚举捕获格式时(如 Media Foundation文档 ),我得到了以下支持的相机格式: 0:MFVideoFormat_NV12,分辨率:448x252,帧率:30000x1001 1:MFVideoForma
..
我正在尝试编写一个应用程序,它将捕获屏幕的视频流并将其发送到远程客户端。我发现在Windows上捕获屏幕的最佳方式是使用 DXGI桌面复制API (自Windows 8起可用)。 Microsoft提供了一个整洁的示例,将重复的框架流式化。现在,我一直在想,什么是最简单但仍然相对较快的方法来编码这些帧并通过网络发送。 帧来自 AcquireNextFrame ,其中包含桌面位图和元数据的表面
..
我的应用程序对GDI或DXGI方法捕获的帧进行编码。目前我正在使用帮助x264库进行编码。 AFAIK x264是基于软件的库,我想在GPU的帮助下进行编码,因此可以节省CPU周期,希望速度也会更快。 > 搜索后,我发现一个正在进行h264编码的MFT。 但是对于我来说,几个问题都可以回答。 1)比x264更快编码库? 2)可以帮助这个MFT来编码位图帧吗? - 我
..
这将是一个长的职位,因为我想暴露你所有的步骤,我试图使这项工作:) 我有C + + COM dll包含使用Media Foundation API显示视频的VideoPlayer类。 VideoPlayer类使用IDL文件定义: [ object, uuid(74FDBBB1-BFFB-4F7E-ACA3-ADB0C7232790), dual, 不可扩展, poin
..
我正在编写这个库,通过Media Foundation框架实现C ++ / CLI中的一些基本音频播放器功能,这些功能将由托管代码使用。我可以播放音频,停止,暂停等,只是罚款。对于不熟悉Media Foundation的任何人,媒体会话将发布您可以处理通知的事件。这通过使用IMFAsyncCallback对象调用具有会话对象的BeginGetEvent来完成。 IMFAsyncCallback定义
..
我在写一个媒体基础应用程序,我需要为视频设备设置捕获帧速率。我写的函数是: bool SetRequestedFrameRate(const size_t requestedFramesPerSecond); 其中,我传递一个用户定义的整数作为帧速率参数。我按照上的代码段https://msdn.microsoft.com/en-us/library/windows/de
..
我通过Media Foundation从摄像机读取样本时遇到了一些问题。我在Windows SDK示例文件夹MFCaptureToFile中的示例。 我的类设置正确从继承抽象IMFSourceReaderCallback类,就我可以告诉: / p> #include #include #include #in
..
我发现Microsoft Media Foundation会生成MPEG4文件,其中MDAT原子位于MOOV原子之前。流式传输需要MDAT之前的MOOV。我假设解决我的问题是使用 MF_MPEG4SINK_MOOV_BEFORE_MDAT 属性,但我似乎无法得到它的效果。我的代码在很大程度上与 http://blogs.msdn.com/b/eternalcoding/archive/2013/0
..
我正在使用媒体基础创建一个视频会议的应用程序,我有一个问题解码我通过网络接收的H264视频帧。 设计 目前,我的网络源会对每个请求样本,除非有可用的存储样品。如果样本通过网络到达并且没有令牌可用,则样本被存储在链接列表中。否则,它将与MEMediaSample事件排队。我还将解码器设置为低延迟。 我的问题 使用我的网络源运行拓扑我立即看到呈现到屏幕的第一帧。然后,我经历一个
..
我发现Microsoft Media Foundation会生成MPEG4文件,其中MDAT原子位于MOOV原子之前。流式传输需要MDAT之前的MOOV。我假设解决我的问题是使用 MF_MPEG4SINK_MOOV_BEFORE_MDAT 属性,但我似乎无法得到它的效果。我的代码在很大程度上与 http://blogs.msdn.com/b/eternalcoding/archive/2013/0
..
我需要一些方法来获取屏幕数据,并将它们传递给DX9表面/纹理,并以至少 25fps 以 1600 * 900 的分辨率渲染,会更好。 我试过BitBliting,但即使之后,我是在20fps,加载数据到纹理和渲染,我在11fps,这远远落后于我需要。 GetFrontBufferData没有问题。 这里 关于使用Windows Media API 的问题,但我不熟悉。示例正在将数
..
这是我的枚举代码:我使用windows media foundation api枚举我的麦克风和可用的摄像机。 class deviceInput { public: deviceInput(REFGUID source); 〜deviceInput(); int listDevices(bool refresh = false); IMFActivate * getDe
..