2011-11-06 130 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