2011-11-06 126 views
1

我正在開發基於directshow的應用程序,該應用程序必須將AVI源文件轉換爲可以使用Quicktime播放的mp4文件。由於3ivx,根據我的網絡研究,最流行的方式來完成這項任務,已成爲商業(我的預算是相當有限的),我決定使用基於ffdshow的解決方案。如何使用graphedit和ffdshow將avi轉換爲mp4?

我創建了GraphEdit中一個簡單的圖形,使用LAME音頻編碼和GDCL MPEG 4複用器的複用,但每次我嘗試播放影片用QuickTime,I'm得到指示錯誤的「取樣說明」錯誤。 使用Windows Media Player播放正在工作,但沒有聲音。

我的猜測是muxer存在問題,因爲每次我嘗試添加音頻編碼時,graphedit會在編碼單元后自動添加一個解碼器(請參見圖片鏈接)。

http://imageshack.us/photo/my-images/39/graphjrgr.png/

如何ffdshow的更好的方式集成任何的想法,建議替代MP4 muxers,或完成不同的做法是值得讚賞!

回答

0

的GDCL複用器有限的音頻格式數字,它支持,也許你應該檢查的源代碼合併器,看看你正在使用的格式是事實上的支持。基本上,您需要選擇多路複用器識別爲有效的音頻編碼器。使用GraphEdit爲編碼器過濾器選擇不同的屬性也許是可能的,這可以讓事情更好地工作。

我對Monogram x264(視頻)和AAC(音頻)編碼器有一些好運。見http://blog.monogram.sk/janos/directshow-filters/

最後,嘗試GDCL MP4複用器的調試版本。

此外,您必須瞭解x264的MPEG-4 LA許可要求http://www.mpegla.com/main/programs/AVC/Pages/FAQ.aspx