我很高興地提高我的C++程序,我通過directshow閱讀視頻。現在我試着寫也很好的視頻。
然後來了一個適當的編解碼器(關於VOB/ogg)的搜索...
但是,突然間,今天突然顯示的視頻顯示緩慢。
現在,我卸載了之前安裝的任何其他編解碼器,視頻根本無法播放。
原因似乎是CComQIPtr< IMediaSeeking, &IID_IMediaSeeking > pSeeking(pGraph);
和hr = pSeeking->SetPositions(&Startzeit, AM_SEEKING_AbsolutePositioning,NULL, AM_SEEKING_NoPositioning);
提供了一個錯誤,當時不支持SetPosition ...在任何時候都很支持。
也hr=pSeeking->GetDuration(&duration)
返回0和相應的AM_MEDIA_TYPE mt;
我用來獲取framepersecond有一個空格式類型。 (pbFormat是Null)。
我無意中安裝/卸載了一些重要的東西嗎?
你有沒有聽說過類似的問題?
正如我所說,前幾天相同的視頻和源代碼工作正常(我現在改變了評論)。
我想給你更多的源代碼,但它有點長,但如果你認爲這會有所幫助,我當然會添加它。
問候,
朱利安
這裏是源代碼:http://pastebin.com/jMdWejH9
這當然只是整個代碼的一部分,但我認爲這是主要的一部分,這裏有插入所有過濾器。
請記住,這實際上工作,直到前幾天的!^^
第一部分是可變deklaration(所有重要變量FAS我所知道的,第二個是調用的函數)編解碼器的變化導致IMediaSeeking失敗setPosition
回答
如果您在DirectShow中渲染文件,該框架使用系統中安裝的編解碼器/過濾器。如果你刪除了一些編解碼器,它會花費另一個或者中斷,因爲它不能渲染。要知道框架使用哪些過濾器,您可以嘗試在GraphEdit或GraphStudioNext中渲染文件。 (只需將這些文件放在這些程序中的一個上,並查看過濾器圖)。對於我們的player,我們獲得了編解碼器包ffdshow-tryouts和Haali Media Splitter的最佳結果。
謝謝!說,你也知道如何解決另一個編解碼器問題嗎?我嘗試使用ffdshow視頻編解碼器(mjpg)和avi_utils庫的AVIStreamWrite函數將視頻保存到另一個程序中。使用Microsoft RLE,Video 1,Intel IYUV,Cinepak和Lagarith編解碼器,一切運行良好。只是用fdshow它告訴我,它有一個地址違規寫入掛起的過程...是否有其他的解碼器/編碼器丟失或不兼容? – Julian
我不是ffdshow的專家,但ffdshow與您提到的其他編解碼器有點不同。 ffdshow內部有一堆不同的編解碼器。您使用ffdshow內的哪些編碼解碼器?也許你應該在ffdshow論壇上提出這個問題或者作爲一個問題。 – CPlusSharp
- 1. 編譯器錯誤導致execve失敗?
- 2. 地理編碼器初始化失敗
- 3. 錯誤的編譯失敗導致TeamCity
- 4. jadx導致失敗的酸碼?
- 5. 可選的URL導致JSON解碼在Swift中失敗4
- 6. gcc -funit一次導致編譯失敗
- 7. 分配變量導致SFTP失敗
- 8. 試圖聲明和初始化變量,但它會導致編譯失敗
- 9. SAX:UTF-8解碼/編碼失敗
- 10. C#Base64編碼/解碼失敗
- 11. base64編碼然後解碼失敗
- 12. BlazeDS生成的文件導致Flex編譯器失敗
- 13. 由於URL編碼導致URL重寫失敗
- 14. 過濾器值導致查詢失敗
- 15. tf.where導致優化器在張量流失敗
- 16. 轉換導致ú失去編碼
- 17. Web.xml導致Tomcat7失敗
- 18. $ httpBackend.flush();導致噶失敗
- 19. 導致TestNG測試失敗?
- 20. Firebase setWithPriority導致Firebase.update失敗
- 21. 'FieldBoost'導致CFIndex失敗
- 22. 導致HTML5驗證失敗
- 23. 郵件頭導致失敗
- 24. Shebang導致腳本失敗
- 25. php 5.3導致flush()失敗?
- 26. phpMyAdmin導致連接失敗
- 27. Jquery .clone()導致$ .post失敗
- 28. 失敗的分辨率:Lorg /阿帕奇/公/編解碼器/消化/ DigestUtils
- 29. JSON解碼失敗
- 30. 編碼器的InitilizeExt()對於openH264失敗
你如何建立你的圖?在[運行對象表](http://msdn.microsoft.com/en-us/library/windows/desktop/dd390650(v = vs.85).aspx)中註冊圖形並使用GraphEdit或[ GraphStudioNext](http://code.google.com/p/graph-studio-next/)來查看加載的過濾器。 – CPlusSharp
可能是錯誤的/缺少解複用器/解析器。 – wimh
如果您的播放方式出現意外和/或出現問題,首先要檢查的是圖形的有效拓撲。看到意想不到的過濾器就會明白出了什麼問題。否則,你可以在這裏發佈。 –