Android:mp4文件在下载时播放但在选择“视频”时播放器获取“无法播放视频”

时间:2012-10-31 01:32:47

标签: android ffmpeg h.264 mp4

我使用h264编解码器和AAC将视频转换为带有ffmpeg的mp4,并使用了基线配置文件。

视频为540x360x250kbps

然后我在文件上运行qt-faststart,将原子移动到正确的顺序。

我已将文件粘贴在我们使用的wiki上并创建了一个链接。

我的测试手机是三星Galaxy S3。

当我浏览到其上有mp4链接的页面时,我点击它们,我会看到一个弹出窗口,其中包含2个选项:Internet和Video。

如果我使用“互联网”选项下载视频,我可以毫无问题地在手机上播放这些视频。

我也对主要配置文件进行了其他编码,这些也很好。我认为像s3这样功能强大的手机能够处理h264中更高级的压缩方案,但是我也浏览了支持视频格式的Android文档,而且它似乎只说“基线”支持压缩配置文件。

无论如何,什么是行不通的是尝试使用“视频”选项,我假设尝试流视频。

对于相关维基,点击该链接会显示正在设置内容类型和内容长度标题:

Content-Length  6175996
Content-Type    video/mp4;charset=UTF-8

点击浏览器链接可以调用可以播放mp4的播放器(大多数情况下为Quicktime)。

除了链接到文件之外,还有更多文件可以使用HTTP流传输吗?为什么我的Android 4不会播放这些文件?

更新 我决定使用视频标签制作一个快速的HTML5页面,这些视频确实在我的Galaxy S3和最新的IOS上播放。

3 个答案:

答案 0 :(得分:0)

我怀疑你指的是Apple的HTTP Live Streaming(HLS),自Honeycomb以来在Android中受支持。 (正如您所怀疑的)比在HTTP服务器上粘贴mp4文件更复杂。您可以在Apple's developer resources上阅读更多内容。

答案 1 :(得分:0)

mp4不是流媒体格式。除非你有一个可以处理伪流媒体或pdstream流的播放器,否则链接只会导致下载。要在不下载的情况下播放mp4文件,您需要获得播放器支持。默认播放器用于播放本地文件。要以伪流形式从网上播放文件,您需要使用适当的播放器至少使用一个webapp [比如说jwplayer]

答案 2 :(得分:0)

如果你想制作一个mp4可流式传输(这样它可以在下载完成之前开始播放)你需要运行qt-faststart来将moov原子放在正确的位置。

有关详细信息和大量参考资料,请参阅http://forums.creativecow.net/thread/291/486#610

相关问题