这个问题的答案永远不会在所有设备或所有视频中保持一致。
给定的视频文件是否会在给定的播放器中播放取决于三件事:
- 视频容器格式(文件类型)。
- 视频(和可能的音频)流编码的编解码器
- 您的播放器对容器格式和编解码器组合的支持
几乎可以肯定,编解码器和播放器/设备支持是您看到的结果不一致的原因。(如果您不知道,编解码器基本上是一个可重复的数学公式,它告诉您的系统如何将打包到文件中的位和字节转换为运动图片(就此而言,再返回))
漂浮在那里的视频文件中有各种各样的视频编解码器。由于视频分发的历史,对这些编解码器的支持非常不一致。许多设备不支持使用某些编解码器编码的流。造成这种情况的原因有很多,但最常见的是默默无闻或许可成本。
例如,直到几年前,几乎所有内容都被编码在一个带有 On2 VP6/VP7/VP8 编解码器的 .FLV 容器中。这在今天引起了人们的头疼,因为虽然 On2 拥有这些编解码器,但他们严格控制了许可证。在 .FLV 已经开始失去相关性之前,这种情况并没有放松,因此没有很多(合法的)软件可以处理 On2 编码的内容。
这一切意味着没有灵丹妙药。所有视频都不会在所有设备上运行,至少在没有安装和使用自己的编解码器解码流的视频播放器的帮助下是这样。
不用说,这不包括工厂安装的 Android 库提供给您和您的最终用户的库。
所以你会怎么做?好吧,除了制作带有自己的编解码器的视频播放器之外,您可以通过两步方法最有效地解决问题:
- 定位您希望应用程序在其上运行的特定设备
- 编码您的内容以使用适用于您要定位的所有设备的视频编解码器。如果您发现没有适用于您计划支持的所有设备的编解码器,您可能需要制作两个视频副本。
今天,最广泛的支持可用于 MP4 容器和使用 H.264 (AVC) 编解码器编码的视频流。正如我所说,没有灵丹妙药,而且 H.264 支持无论如何也不是普遍的,但是由于它在现代的流行和广泛的支持,这种格式将比你可以做出的任何其他单一选择更具有潜在用户的可玩性桌面和移动环境。
您可能会发现一些有用的工具:
祝你好运!