【发布时间】:2013-05-05 11:07:00
【问题描述】:
我用一个生成 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 或资源管理器在 Windows XP 机器上打开它时,它没有出现在 html 输出中。
这是一个(临时)示例:http://stla.overblog.com/ellipse-chart-test - 这不是“时钟”示例,但这是完全相同的渲染问题。我在 Windows Vista 机器上使用 Chrome 观看电影,但在我的 Windows XP 机器上看不到。
解释是什么?真的是操作系统问题还是浏览器版本问题?
【问题讨论】:
-
对于 Windows XP,我不能完全肯定地说,但我知道对于 Mac OS,浏览器使用操作系统功能来播放(某些)视频格式。这是一个许可问题:MP4(或更准确地说是 h.264)是一种受专利保护的格式。操作系统供应商通常许可这些编解码器,因此在其上运行的应用程序不必这样做。当 Windows XP 发布时,h.264 并不存在。去想...如果这回答了你的问题,我很乐意写一个更完整的答案。
-
@likeitlikeit 这意味着对于 XP 用户,即使使用另一个 html 代码也无法将此文件嵌入 html 中? (假设我们不修改文件)
-
根据您的描述以及我对在不同操作系统上播放网络媒体的了解,情况可能就是这样。
-
@likeitlikeit 好的。我请朋友们尝试,确实它对 XP 用户不起作用。如果你能写一个答案很好。
-
@StéphaneLaurent 仅供参考 -- 在 knitr 的下一个版本中,我将使用 OGG 而不是 MP4。
标签: html windows html5-video mp4 knitr