我正在开发基于directshow的应用程序,该应用程序必须将AVI源文件转换为可以使用Quicktime播放的mp4文件。
根据我的网络研究,根据我的网站研究,最流行的方式来完成这项任务已经变得商业化(我的预算非常有限),我决定使用基于ffdshow的解决方案。
我在graphedit中创建了一个简单的图形,使用LAME进行音频编码,使用GDCL MPEG 4 Multiplexor进行多路复用,但每当我尝试使用Quicktime播放电影时,我都会收到错误,指出错误的“样本描述”。 使用Windows Media Player进行播放正常,但没有声音。
我的猜测是多路复用器有问题,因为每次我尝试添加音频编码时,graphedit会在编码单元后自动添加解码器(参见图片链接)。
http://imageshack.us/photo/my-images/39/graphjrgr.png/
有关如何以更好的方式集成ffdshow的任何想法,替代mp4复用器的提示或完全不同的方法,我们表示赞赏!
答案 0 :(得分:0)
GDCL复用器支持的音频格式数量有限,您可能需要检查复用器的源代码,看看您使用的格式是否支持。基本上,您需要选择多路复用器识别为有效的音频编码器。可以使用GraphEdit为编码器过滤器选择不同的属性,以使事情更好地工作。
我对Monogram x264(视频)和AAC(音频)编码器运气不错。见http://blog.monogram.sk/janos/directshow-filters/
最后,尝试使用GDCL mp4 muxer的调试版本。
此外,您必须了解x264 http://www.mpegla.com/main/programs/AVC/Pages/FAQ.aspx
的MPEG-4 LA许可要求