2012-10-31 217 views
0

我已经使用h264编解码器和AAC将视频转换为mp4,并使用基线配置文件。Android:下载mp4文件时播放,但当选择“视频”播放器时获取“无法播放视频”

影片在540x360x250kbps

我然后跑QT-的fastStart上的文件的原子移动到正确的顺序。

我把这个文件粘在我们使用的wiki上,并创建了一个链接。

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

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

如果我使用“Internet”选项下载视频,我可以在手机上播放它们而没有问题。

我已经完成了主配置文件的其他编码,而且这些编码也很好。我认为像s3这样强大的手机将能够处理h264中的更高级的压缩方案,但是我也浏览了关于支持的视频格式的Android文档,并且似乎声明只有“基线”压缩配置文件受支持。

无论如何,什么不起作用是试图使用“视频”选项,我假设试图流式传输视频。

有问题的维基,点击链接发现,内容类型和内容长度的头被设置:

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

点击了浏览器的链接在大多数调用播放器(QuickTime的案件),可以播放mp4的。

有没有更多的文件HTTP流传超越做一个链接呢?为什么我的Android 4不能播放这些文件?

UPDATE: 我决定使用视频标签来进行快速的HTML5页面,并且影片不会在我的Galaxy S3和最新的IOS都发挥。

+1

不明白你的意思是“视频”链接 – av501

+0

@ av501,我的意思是上面的“菜单选择”。当我访问有视频链接的网页时,菜单弹出框中有2个选项。 “视频”就是我正在谈论的那个。我澄清了原始信息。 – gview

+0

@gview我试着从API演示示例代码。并使用此链接[视频链接](http://www.ooklnet.com/files/381/381489/video.mp4)它在真正的devices.But工作。但当我检查与其他链接它不会 – edwin

回答

0

我怀疑你是指苹果公司的HTTP Live Streaming(HLS),这是自Honeycomb以来在Android中支持的。有(如你所怀疑的)比在HTTP服务器上粘贴mp4文件更多的参与。你可以阅读更多关于Apple's developer resources

+0

我认为视频播放器将支持某种类型的HTTP流。我试图理解为什么播放器会返回一个错误,说明它无法播放视频,但如果视频已下载,则显然可以。可能我们要做的是实现HTTP Pseudostreaming,但我的期望是视频播放器可以工作,即使是通过HTTP提供的普通mp4文件。 – gview

0

mp4不是流式格式。除非你有一个可以处理伪流或pd流的播放器,否则链接只会导致下载。要无需下载即可播放mp4文件,您需要支持播放器。默认播放器用于播放本地文件。要以伪流形式播放网络文件,您需要至少有一个适当的播放器的web应用程序[说jwplayer]

+0

我已经使用视频选项直接从其他网站播放mp4。我想我必须对这些网站正在做的事情进行一些调查。我想我很惊讶,它不能用作使用HTTP的渐进式下载。 – gview

+1

检查服务器为mp4文件返回的MIME类型。也许只有这个? – av501

0

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

请参阅http://forums.creativecow.net/thread/291/486#610了解更多信息和大量参考文献。

+2

显然,您没有仔细阅读我的问题,因为我在第3行明确指出:“然后我在文件上运行qt-faststart以将原子移动到正确的顺序。” – gview