2013-03-31 74 views
1

我想在Windows 7上將固定大小的原始像素幀編碼爲MPEG。我試圖使用mediaaiton transofrmation來做到這一點。但媒體基金會不支持將原始幀直接轉換爲MPEG。相反,我必須使用媒體接收器將原始像素緩衝區轉換爲WMV3格式,然後使用轉碼拓撲將WMV轉換爲MPEG。媒體基礎將原始像素幀轉換爲MPEG視頻

媒體基礎支持將幀緩衝區直接轉換爲MEPG嗎?

此外,當我這樣做時,我遇到了轉碼框架的麻煩,無法將單幀WMV視頻轉換爲MEPG。不知道爲什麼,但它導致在單幀WMV饋送時創建空的MPEG文件。這是媒體基礎的一個已知限制嗎?

問候

GT

附:我不打算實施直接顯示的過濾器圖表來做到這一點。根據媒體發佈的文件,它應該提供所有直播節目提供的設施。

回答

1

Media Foundation爲您提供H.264 Video Encoder處理壓縮的MFT/DMO。與DirectShow不同(它不想使用,但它爲您提供了使用第三方編碼器壓縮到MPEG-4和MPEG-4 AVC的類似選項),與Media Foundation一起,您可以使用轉換它自己的,而不是將其插入到全功能圖形(拓撲)中。微軟僅爲您提供H.264編碼器,僅從Windows 7開始(對您有好處)。

MFT的使用在MSDN文章中描述,並且一步一步地獲得壓縮的H.264(MPEG-4 AVC)NAL單元,但它們不完全是「文件」。 MPEG-4文件按照MPEG-4 Part 14規範格式化,Microsoft爲其提供MPEG-4 File Sink。後者基本上假設您使用拓撲而不是單個組件。因此,您的選擇是實現一個自定義視頻源節點以插入到拓撲中,並構建編碼拓撲以將數據通過H.264編碼器路由到MPEG-4文件接收器,或分別實例化視頻編碼器和文件接收器,在拓撲設置之外使用它們並在它們之間傳遞數據。

根據媒體發現的文件,它應該提供所有直接顯示提供的設施。

不是它不應該,它不。 Microsoft僅在Windows 7 +中通過Media Foundation提供MPEG-4視頻編碼器和多路複用器,並且根本不會將它們提供給DirectShow(除非通過MF組件封裝),但MF在許多方面不如DS:支持在較老的操作系統中,功能集,可擴展性和開銷 - 僅舉幾例。