2008-11-20 31 views
2

我期待在我的应用程序中添加对读写视频文件的支持。如果你不得不选择一种文件格式和编解码器组合来满足大多数用户的需求,你可以选择:如果您必须添加对一种视频文件格式和编解码器的支持,您会选择哪一种?

1)MPEG-4/H.264(.mp4) 2)AVI/DiVX(。 AVI) 3)的Ogg/Theora格式(.OGG) 4)Windows媒体视频(.wmv)

我倾向于MPEG-4/H.264因为它是在Linux,Mac OS X的支持, Flash播放器,iPods,Playstation 3,XBox360和即将在Microsoft Silverlight和Windows Media Player 12中支持。

我是否缺少任何东西?有什么更好的,我可以选择?

回答

3

这取决于你的应用程序在做什么。如果您想处理从视频采集卡录制的视频,则可能需要使用嵌入式mpeg2读取.mpg文件。大量视频使用.avi或.wmv容器。微软正在推动.wmv,但.avi在免费工具中有更好的支持。 Windows上没有很多工具支持.mp4容器(Mac可能不同)。 H.264,mpeg2和mpeg4是我最喜欢的编解码器。 H.264是优秀的质量/比特率,但是它使精确和快速的搜索变得更加困难,并且非常耗费CPU资源。就质量/比特率而言,mpeg4的性能几乎与h.264相当,但它的CPU密集程度要低得多。 mpeg2需要更多的位来实现相同的质量,但它几乎在任何地方都受到支持,并且在这些文件中进行解码和查找非常简单。

如果你不介意使用LGPL代码,我建议你看看ffmpeg的libavcodec和libavformat。它会让你在所有平台上做你提到的所有事情(虽然我不确定Oora & Theora--我没有用过它们)。

1

我认为你的第一个选择是我的选择。我认为大多数应用程序可以读取这种格式,并且它不太灵活。

如果我是正确的,AVI/DIVX文件实际上可以包含不同类型的媒体,wmv也是如此。这使得更难使用这些格式,因为您需要支持所有的编码。

0

首先,您的视频中是否还会有声音?如果是的话,我会用mp3。

现在,考虑视频编解码器和视频容器。我认为你不应该考虑方案3和4的各种原因。 Theora真的不受欢迎(我还没有碰到Theora视频),WMV是微软的技术,所以你的选择有限。

现在,关于前两个:我将在Avi容器中使用DivX(Mpeg4 part 2)视频。这是非常受欢迎的,因为大多数电脑和大量的DVD都可以播放这些视频。另外,还有一个伟大的开源DIVX编解码器XVID。最后,DIVX在编码和解码方面所需的资源比H.264要少得多。最后一个很重要,因为根据编码参数,甚至可能不支持实时H.264编码。

由于通过使用开源工具将代码转换为任何格式非常容易,因此在多个平台中缺少对AVI/DIVX的支持并不是问题。

相关问题