我正在开发一个Android应用程序,该应用程序应该在Android设备上通过HTTP播放视频。在我们设置服务器来托管视频文件之前,只需要澄清一些事项:
根据开发人员文档,Android支持视频的.mp4和.3gp容器格式。如果我们使用H.263(视频) - 用于我们媒体文件的AAC LC(音频)音频 - 视频编解码器,我们是否可以通过将URL传递给MediaPlayer类来播放视频?
我做了一个小实验并将其中一个视频文件(.mp4)的网址传递给了MediaPlayer类,并收到以下错误:
命令PLAYER_INIT已完成 错误或信息 PVMFErrContentInvalidForProgressivePlayback
从文档中,我开始知道对于渐进式播放,视频的索引(例如moov atom)应该位于文件的开头。
问题:
1.我们如何使我们的视频Android准备好?
2.我们需要做出哪些不同的考虑?
请帮忙。
感谢。
答案 0 :(得分: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'的副作用是创建一个Web优化的电影文件,其标题为 BEFORE 数据。
您还可以在命令行中使用类似的功能:
java -cp jcodec-0.1.3-uberjar.jar org.jcodec.movtool.WebOptimize <movie>
可以从项目网站下载JCodec库。
答案 1 :(得分:0)
我在Android开发者谷歌小组上发布了这个问题。马克回答说。谢谢马克! See this thread