我有两个不同的视频,(据我所知)通常都是以相同的方式拍摄的,我正试图在Chrome中使用HTML5视频标签播放。这两个视频都在VLC中打开并完美播放,所以我不认为损坏的文件有任何问题,而且都是使用YUV颜色空间的H.264格式的mp4。然而,当我尝试在Chrome(Version 21.0.1180.89
)中播放一个时,它会给我一个灰色的播放按钮,而另一个则可以完美地工作。作为参考,我的操作系统是Ubuntu 10.10,尽管我在新版本的操作系统中看到了同样的问题。这就是我是将视频加载到HTML5标签中,还是直接导航到存储视频的URL。我有点不知所措,有人知道我应该朝哪个方向去寻找这两个视频之间的显著差异吗?
编辑:
这个有效:https://dl.dropbox.com/u/100841270/1_G101_20120914_0139PM_Course_101.mp4
这个没有:https://dl.dropbox.com/u/100841270/1_G101_20120914_1156AM_Course_101.mp4
更新:
这似乎与操作系统无关,因为我在Windows和Linux中都看到过同样的问题。Ubuntu中的Chrome 22测试版似乎也不起作用。
我们遇到了这个问题,发现根据iPhone的webview标准对文件进行编码可以创建在Chrome中运行良好的文件。Chrome和iPhone网络视图共享相同的渲染引擎,而且它们似乎有类似的HTML5视频要求。
并非所有H.264编码的Mp4文件都支持Chrome,编码过程中的细微差异可能会产生不起作用的视频。即使使用了完全相同的编码设置,H.264也是一种可变比特率编码器,因此不同的视频可能会超过比特率限制。
对我们来说成功的编码设置是:
- 仅使用H.264 Baseline Profile Level 3.0
- 分辨率低于640 x 480,帧速率高达每秒30帧
- 基线配置文件中不支持B帧
- 比特率限制为900kb
以下是我们用来确定这些设置的参考资料。Chrome可能不需要所有这些,但我们坚持这些规则,发现所有视频都适用于这两个平台。进一步的研究可能会确定导致Chrome无法播放视频的确切设置。
我运行的是Windows XP,chrome也不喜欢第二个。
我对原因的最佳猜测是,工作的一个只有6.4MB,但另一个大约是21.7MB。Chrome可能只是拒绝直接播放这么大的视频。你有没有试过让YouTube托管它,并将他们的播放器嵌入你的网站?这可能会解决问题。
当我尝试使用Windows的内置播放器时,两个视频都存在不同的问题,这可能会加剧这种情况。当我使用电脑的视频播放器时,两个视频都会失真,水平拉伸了300%。
你有没有其他视频以完全相同的方式失败?由于这些只是真实事物的测试视频,如果这是唯一一个有问题的视频,我不会说它真的是一个问题,除非它再次出现。这段功能失调的视频可能只有一百万分之一的机会,因为它有合适的内容让它不起作用。