3

我正在开发一个 Android 应用程序,它应该在 Android 设备上通过 HTTP 播放视频。在我们设置服务器来托管视频文件之前,我们需要澄清一些事情:

根据开发者文档,Android 支持视频的 .mp4 和 .3gp 容器格式。如果我们使用 H.263(视频)-用于媒体文件的 AAC LC(音频)音频-视频编解码器,我们是否能够通过将 URL 传递给 MediaPlayer 类来播放视频?

我做了一个小实验,并将其中一个视频文件(.mp4)的 URL 传递给 MediaPlayer 类,并得到以下错误:

命令 PLAYER_INIT 完成,但出现错误或信息 PVMFErrContentInvalidForProgressivePlayback

从文档中,我了解到对于渐进式播放,视频的索引(例如 moov atom)应该位于文件的开头。

问题:
1. 我们如何让我们的视频支持 Android?
2. 我们需要做哪些不同的考虑?

请帮忙。

谢谢。

4

2 回答 2

1

实际上,您可以使用 JCodec ( http://jcodec.org )的 ISO BMF (MP4) 容器的纯 Java 实现来实现这一点。为此,请使用以下代码:

MovieBox movie = MP4Util.createRefMovie(new File("bad.mp4"));

new Flattern().flattern(movie, new File("good.mp4"));

“Flattern”的副作用是创建一个网络优化的电影文件,在数据之前有它的标题。

您还可以从命令行使用类似的功能:

java -cp jcodec-0.1.3-uberjar.jar org.jcodec.movtool.WebOptimize <movie>

JCodec 库可以从项目网站下载。

于 2013-05-13T07:08:23.837 回答
0

我在 Android-developers google group 上交叉发布了这个问题。马克在那里回答。谢谢马克! 看到这个线程

于 2010-07-10T05:25:54.407 回答