2

我用一块产生 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 电影在 figure 子文件夹中创建得很好,但是当我使用 Chrome、Firefox 或 Explorer 使用 Windows XP 机器打开它时,它没有出现在 html 输出中。

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

解释是什么?操作系统或浏览器版本真的有问题吗?

4

1 回答 1

2

tl;dr浏览器确实使用操作系统来执行一些媒体解码任务。通过a)提供替代媒体流b)为您的观众使用最兼容的媒体格式c)使用插件(即 Flash)或d)建议安装 MP4 插件来解决此问题。

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

您的编解码器(h.264 又名“MP4”)恰好是一个特别激烈的 IP 争夺。因此,浏览器不会竭尽全力对手头的 IP 进行许可,而是使用主机系统的许可编解码器。

在您的情况下,Windows XP 恰好无法解码您的视频的媒体格式,而浏览器本身似乎也无法做到这一点。

你现在的选择:

  • video使用您的标签提供其他媒体流(参见Wikipedia示例)
  • 尝试找出大多数用户在 XP 上使用的浏览器webm,然后选择本机支持的格式( Chrome 或oggFirefox)
  • 只需使用 Flash 播放 MP4(如 HTML5 之前的日子)
  • 告诉用户安装操作系统级插件来播放 h.264;你甚至可以在后备文本中做到这一点。我不会推荐特定的产品,但有很多。
于 2013-05-11T21:48:52.137 回答