所以我有一个使用DirectShow录制视频的WIN32应用程序。现在我想将.AVI文件转换为.MP4。
我宁愿不在源代码中使用自定义过滤器,因为我不想注册过滤器(需要管理员)。我也不想使用独立的应用程序,因为它应该是自动化的。我只是想要一个具有良好文档API的库,因为我对此非常新。然后我可以在我的应用程序中使用它来转换.AVI文件。任何人都可以指出我的方向?或者对我的选择方法发表评论?
我会非常感谢任何帮助,并提前致谢!
答案 0 :(得分:3)
由于MPEG-4编解码器不是免版税的,因此找到合适的编码器可能并不像您想象的那么容易。 Microsoft不向Windows提供编码器,除了某些版本的Windows 7中的H.264(MPEG-4 Part 10)编码器,并且仅在Media Foundation内(而不是DirectShow)。如果您可以限制使用这些Windows 7版本,那么Media Foundation可能是一个不错的选择,MSDN提供了将文件转码为文件的示例,它非常简单且文档齐全。
有第三方解决方案,有一半制作库可以用于编码器,FFmpeg在LGPL下提供MPEG-4 Part 2视频编码器,在GPL下提供MPEG-4 Part 10到libx264。我的理解可能仍然需要向MPEG-LA支付版税。 FFmpeg可能仍然是将文件转换为文件的一个很好的选择,因为它的命令lnie接口有很好的文档(与libavformat / libavcodec API相反,相反没有很好地记录)。
另一种选择是使用Windows Media编解码器并压缩成ASF / WMV文件。
答案 1 :(得分:1)
Libavcodec和libffmpeg - 一切皆有的媒体转换器(包括库和命令行应用程序):http://ffmpeg.org/