2017-02-05 33 views
0

我的程序使用Windows Media Foundation WMV/WMA MFT編碼爲ASF格式(mux由ffmpeg完成)。生成的文件可以通過Win10上的Windows Media Player完美播放,但無法通過GraphEdit呈現,錯誤代碼== NS_E_INVALID_DATA(0xC00D002FL)。ASF文件無法由GraphEdit呈現,但可以通過WMP播放

當使用IWMSyncReader-> GetNextSample讀取音頻樣本時,會發生相同的錯誤。

樣本破碎視頻是在這裏:https://www.dropbox.com/s/x8uyaqbclq93u5d/big_buck_bunny.wmv?dl=0

任何人都可以看看,檢查原因是什麼? 謝謝

+1

損壞的視頻不包含視頻和音頻的擴展流屬性對象。您可以使用MS Windows Media ASF Viewer等工具檢查它:https://www.microsoft.com/en-us/download/details.aspx?id=12826。您似乎需要正確配置ASF媒體接收器才能使其創建擴展流屬性。 – VuVirt

+0

順便說一下,我在Win7和Win10上使用SimplePlay示例程序,可以在兩個平臺上完美地播放視頻。 它可能是由Windows Media API的某些限制引起的? – rhbc73

+0

Win7和Win10都可以在WMP中完美播放。只有Windows Media API無法讀取音頻。 – rhbc73

回答

0

用Windows Media ASF查看器檢查您的wmv文件後,我得出結論,它由Lavf編碼器(FFMPEG)編碼。因此,我安裝了LAV directshow filters並用Graphstudionext播放了wmv。我將該文件添加爲文件源異步,然後該圖自動使用LAV分離器。看來只有LAV分配器才能解析這個wmv。在您的應用程序中,您可以通過File source async filter添加文件並讓LAV解析它(如果已安裝)來執行此操作。

相關問題