mft

    2熱度

    2回答

    我正在一個項目捕獲屏幕和編碼它。我已經可以使用桌面複製API(Win8 +)捕獲屏幕。使用API​​我可以獲得ID3D11Texture2D紋理,並將它們從GPU傳輸到CPU,然後使用libx264對它們進行編碼。 但是,將紋理從GPU拉到CPU可能是瓶頸,可能會降低fps。此外,libx264會佔用CPU週期(取決於質量)來對幀進行編碼。我正在尋找在GPU本身編碼ID3D11Texture2D紋

    1熱度

    1回答

    問題 我正在寫有兩個輸入和一個輸出(它結合了兩個視頻流爲一體)的自定義MFT。 我的MFT要求在其輸入之前設置媒體類型,然後才能提供輸出類型。 我已經通過連接兩個源節點(它們將來自聚合媒體源的不同流)連接到我的變換節點,然後將EVR連接到我的單個輸出來設置我的拓撲。 當我開始媒體會話時,我看到拓撲在第一個輸入上調用了SetInputType,並且成功。 但隨後立即嘗試得到一個輸出型:通過調用Get

    1熱度

    1回答

    我想使用「英特爾®快速同步視頻H.264編碼器MFT」對視頻進行編碼。 如果我從系統緩衝區創建IMFSample,它運行良好。就像下面: IMFMediaBuffer *pBuffer = NULL; MFCreateMemoryBuffer(cbSize, &pBuffer); BYTE *pData = NULL; pBuffer->Lock(&pData, NULL, NULL);

    0熱度

    2回答

    在windows media foundation中可以使用Video capture捕獲桌面屏幕。 閱讀Windows開發人員指南後,它似乎用於從設備(如相機或其他外部設備)捕捉視頻。 如果是,它是硬件加速API還是軟件基礎?

    0熱度

    1回答

    我正在學習在Windows Media Foundation中使用H.264編碼器。 我目前擁有的是YUV420p格式的媒體樣本,所以這是包含YYYYYYYYUUVV數據的緩衝區。 由於H.264編碼器MFT需要IMFSample形式的輸入,所以我不確定如何將緩衝區中的數據轉換爲IMFSample。 可能我就是這樣做: IMFMediaBuffer *pBuffer = NULL; MFCrea

    2熱度

    1回答

    我正在開發使用MediaFoundation SourceReader技術的USB攝像頭流式桌面應用程序。該相機具有USB3.0支持,並可提供60fps的1080p MJPG視頻格式分辨率。 我使用的軟件解碼器MJPEG MFT到MJPG轉換爲YUY2幀,然後轉換成RGB32幀來繪製窗口上。在使用這個軟件解碼器時,我能夠在窗口上只渲染30fps,而不是60fps。我在這個網站上發佈了一個問題,並得

    -1熱度

    1回答

    我有工作解決方案從C++中的視頻中提取幀github。問題是它非常緩慢。我正在做的是我正在使用定時器和播放視頻,每當幀準備就緒時,我將它轉換爲位圖並保存並尋找下一個位置。我認爲這不是正確的做法,必須有另一種拉出框架的方式。請通過Github項目並建議任何更改。 以下是我的定時器功能 if (m_spMediaEngine != nullptr) { LONGLONG pts;

    1熱度

    1回答

    我試圖在MFT中使用WMA8編碼器來編碼音頻數據。整個音頻持續時間爲10秒,ProcessInput和ProcessOut都可以正常/成功運行。編碼音頻數據的時間戳也是正確的。問題是,編碼後的音頻寫入文件後(使用自己的複用器)似乎不正確。 有一件事我注意到,從輸出mftrace,輸出類型似乎有一個奇怪的對齊和每秒字節數。以下是編碼器設置代碼和mftrace的輸出。 CLSID* pCLSIDs =

    1熱度

    1回答

    鏈接Walkthrough: Creating a Windows Store app using WRL and Media Foundation 提供了自定義MFT創建並將其用作可激活類的示例。裏面的C#代碼的MFT使用激活類ID字符串這樣 mediaCapture.AddEffectAsync(MediaStreamType.Photo, "GrayscaleTransform.Graysc

    2熱度

    1回答

    要與Windows Media基礎解碼H264流變換,工作流程是目前這樣的: IMFSample sample; sample->SetTime(time_in_ns); sample->SetDuration(duration_in_ns); sample->AddBuffer(buffer); // Feed IMFSample to decoder mDecoder->Proce