我正在开发适用于所有平台(iPhone,Android和Windows)的应用程序。它涉及通过服务器在这些平台之间进行文件传输。我的疑问是应使用哪种格式处理图像,视频和音频,这在各个方面都比较好尺寸,性能。而且应该可以在所有3部手机上播放。有人可以提出建议吗?

最佳答案

对于音频或图像,有很多选项,但是对于视频,图片则模糊得多。对于视频,目前实际上只有两个主要竞争者:


VP8 from the WebM Project
H.264/MPEG-4


在您列出的所有移动平台(iOS,Android和Windows Phone 7)上都可以使用这两种方法的实现。根据您的应用程序的确切功能(流视频,实时视频会议等),每个应用程序都有优缺点。两者的性能通常足够接近,因此实现的质量和使用的设置比标准更为重要。在选择它们之间的一些注意事项的简要概述是:


VP8:这是一种开放的,免版税的格式,其参考实现是在BSD风格的许可下开源的。它可以作为第三方库在所有三个OS上构建并运行良好。每个操作系统上的本机支持各不相同。由于WebM是Google的创意,因此Android本身支持VP8。苹果尚未宣布计划在iOS中支持VP8,而微软则采取了中间立场。但是,将库包含在您分发的任何应用程序中都是容易且免费的。
H.264:这是HTML5标准中包含的行业标准,因此现代浏览器几乎都支持它。 (Goggle宣布他们将从Chrome中撤消对它的支持,但截至今年早些时候还没有发生。)H.264涵盖了许多专利,这些专利由MPEG LA出于许可目的而在池中持有。尽管有例外,包括最终用户免费的互联网视频,但H.264的商业用户仍需支付许可费。 Android,iOS和Windows Phone 7均原生支持H.264进行流视频播放。但是,至少在iOS上不支持实时视频会议。 H.264还有一个很好的H.264第三方实现(x264),可在所有平台上用于本机实现不足的情况。 x264是一个免费的开放源代码库,但已获得GNU GPL的许可,而GPL在商业开发或iOS部署方面都存在问题。您可能需要购买商业许可证才能在产品中使用它。


这是有关A / V格式兼容性的各种供应商页面:


iOS
Android
Windows Phone


我的建议是,如果要流式传输视频,请使用H.264,但如果要实时编码/解码视频,请使用VP8。苹果在使用H.264的FaceTime方面做得很好,但是这些接口不是公开的。

关于android - 哪种媒体格式更适合所有移动开发?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12103921/

10-12 04:36