1

我们一直在寻找可靠的视频后备解决方案。我们希望为将在移动设备上访问该应用程序的客户创建一个 HTML5 应用程序,但我们也知道我们的大量政府客户将使用较旧的桌面浏览器并且无法升级它们。

我一直在研究ModernizrVideo for Everyone解决方案,然后我遇到了 W3Schools 的建议,其中包含以下内容:

<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  <source src="movie.webm" type="video/webm">
    <object data="movie.mp4" width="320" height="240">
      <embed src="movie.swf" width="320" height="240">
    </object> 
  </video>

在视频回退方面,使用 Modernizr 或 Video for Everyone 比简单的 W3Schools 推荐有什么优势吗?

4

1 回答 1

1

我想你在这里找到了你的例子。

首先,我只想澄清一点:W3Schools 与 W3C 没有任何关系。此外,HTML5目前是候选推荐,预计不会在一段时间内成为W3C 推荐,因为预计不早于 2014 年 9 月 1 日过渡到拟议推荐。

据我所知,W3C 没有提供嵌入视频的推荐方式,因为编解码器选择是由浏览器做出的,规范往往不知道实现细节。此外,如果浏览器更新其编解码器支持,W3C 将不得不更改其规范,幸运的是这不会发生。

现在,为了回答您的问题,如果您查看Video for Everyone 提供的代码(这也是Modernizr 推荐的嵌入视频的方式),您将看到:

<video width="640" height="360" controls>
  <source src="__VIDEO__.MP4"  type="video/mp4" />
  <source src="__VIDEO__.OGV"  type="video/ogg" />
  <object width="640" height="360" type="application/x-shockwave-flash" data="__FLASH__.SWF">
    <param name="movie" value="__FLASH__.SWF" />
    <param name="flashvars" value="controlbar=over&amp;image=__POSTER__.JPG&amp;file=__VIDEO__.MP4" />
    <img src="__VIDEO__.JPG" width="640" height="360" alt="__TITLE__" title="No video playback capabilities, please download the video below" />
  </object>
</video>

如您所见,它与您提供的示例非常接近。我们可以注意到的最大区别是缺少 WebM,但是当您查看浏览器对视频格式的支持时,我认为这可以解释为:

  • 如果浏览器支持 WebM,它也支持 Theora(代码片段的 OGG 行)和/或 H.264
  • 在 WebM 之前支持 Theora/H.264,因此即使是旧版本的浏览器也会播放您的视频
  • 务实地说……它减少了一个需要维护的文件(即需要更少的磁盘存储空间,如果视频内容发生变化,则浪费的时间更少……)

另外,这源于前两个注意事项,如果您的浏览器不支持 Theora 或 H.264,并且您希望最大限度地提高兼容性,那么您最好依赖 Flash 支持而不是 WebM 支持(根据您安装的 Flash)。

您(或对该主题感兴趣的人)可能想要浏览的一些链接:

我希望这有帮助。


对于那些喜欢浪费时间和看科幻小说的人,你可能想通过 HTML5 规范来寻找一些复活节彩蛋...... :-)

于 2013-09-21T00:59:21.803 回答