我希望在我的应用程序中添加对读取和写入视频文件的支持。如果您必须选择一种能够满足大多数用户需求的文件格式和编解码器组合,您会选择哪一种:
1) MPEG-4/H.264 (.mp4) 2) AVI/DiVX (.avi) 3) 奥格/西奥拉 (.ogg) 4) Windows Media 视频 (.wmv)
我倾向于 MPEG-4/H.264,因为 Linux、Mac OS X、Flash 播放器、iPod、Playstation 3、XBox360 均支持 MPEG-4/H.264,并且 Microsoft Silverlight 和 Windows Media Player 即将提供支持12.
我错过了什么吗?我可以选择更好的东西吗?
最佳答案
这取决于您的应用程序正在做什么。如果您想要处理从视频捕获卡录制的视频,您可能需要能够读取嵌入了 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。它可以让你在所有平台上执行你提到的所有操作(尽管我不确定 Ogg 和 Theora——我没有使用过它们)。
关于video - 如果您必须添加对一种视频文件格式和编解码器的支持,您会选择哪一种?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/305773/