knitr mp4电影嵌入在Windows XP上不起作用

时间:2013-05-10 17:28:14

标签: html windows html5-video mp4 knitr

我用一个产生mp4电影的块编织一个Rmd文件(到html):

```{r clock, fig.width=7, fig.height=6, fig.show='animate'}
par(mar = rep(3, 4))
for (i in seq(pi/2, -4/3 * pi, length = 12)) {
    plot(0, 0, pch = 20, ann = FALSE, axes = FALSE)
    arrows(0, 0, cos(i), sin(i))
    axis(1, 0, "VI"); axis(2, 0, "IX")
    axis(3, 0, "XII"); axis(4, 0, "III"); box()
}
```

knitr生成以下用于嵌入mp4电影的html代码:

<p><video   controls="controls" loop="loop"><source src="figure/clock.mp4" type="video/mp4" />video of chunk clock</video></p>

mp4电影在图形子文件夹中很好地创建,但是当我使用Chrome,Firefox或资源管理器的Windows XP计算机打开它时,它不会出现在html输出中。

这是一个(临时)示例:http://stla.overblog.com/ellipse-chart-test - 这不是“时钟”示例,但这是完全相同的渲染问题。我在Windows Vista计算机上看到Chrome的电影,但在Windows XP计算机上看不到。

解释是什么?操作系统或浏览器版本确实存在问题吗?

1 个答案:

答案 0 :(得分:2)

tl; dr 浏览器真的使用操作系统执行某些媒体解码任务。通过 a)为您的受众群体提供备用媒体流 b)使用最兼容的媒体格式 c)使用插件(即Flash) )或 d)建议安装MP4插件。

这实际上是操作系统的“问题”。许多浏览器,就像特定平台上的某些其他程序一样,使用操作系统资源来完成给定任务。在受知识产权保护的程序方面尤其如此。

您的编解码器(h.264又称“MP4”)恰好是对IP片段的激烈争夺。因此,浏览器不会花费很长时间来授权手头的IP,而是使用主机系统的许可编解码器。

在您的情况下,Windows XP无法解码视频的媒体格式,浏览器似乎无法单独执行此操作。

现在你的替代品:

  • 使用video标记提供其他媒体流(有关示例,请参阅Wikipedia
  • 尝试找出大多数用户在XP上使用的浏览器,然后选择原生支持的格式(Chrome为webm或Firefox为ogg < / LI>
  • 只需使用Flash播放MP4(与HTML5之前的日期一样)
  • 告诉用户安装操作系统级别的插件来播放h.264;你甚至可以在后备文本中做到这一点。我不会推荐特定的产品,但有很多。