在后端录制HTML5 WebGL的video

对于不支持HTML5 WebGL的浏览器,是否可以录制HTML5 WebGLvideo播放的video(包括声音)? 例如,是否有可能在后台录制SeriouslyJS(http://seriouslyjs.org/)的内容,这种格式将被大多数浏览器/设备所接受?

我已经做了很多后端的东西,但从来没有任何涉及后端GUI的东西…我感谢任何人都可以给我的帮助。

您可以使用屏幕捕获软件(如ScreenFlow )录制一个或多个静态video,然后将其作为video呈现给未启用的浏览器。 在JavaScript方面,你需要“回退”到video。 伪码发生:

var canvas = document.getElementByID('webgl-canvas'); var webgl = canvas.getContext("experimental-webgl"); if (!webgl) { /* create a <video> element and replace the <canvas> tag with it. Or, have the <video> tag already created and hidden with CSS, and display it at this time. */ } else { /* Proceed with the interactive, WebGL-enabled version. */ } 

然而,video显然会受到技术的限制:这是一个预先录制的非交互式video。 为了实现一个伪交互式的风格(只要按下button,就可以通过链接),您可以使用HTML5媒体API在多个预先录制的video之间进行dynamic切换,但是我不知道这样做会有多好由于带宽和同步问题而在实践中工作。 在开始序列之前,您可能需要validation每个video上是否有可接受的缓冲量。

注意:上面的提议假定至less支持HTML5,即使代替WebGL。 如果您的目标浏览器不支持HTML5,我认为您可能会遇到像YouTubevideo一样简单的问题。

这个问题的答案可能在这个博客文章中 。 作者使用canvas.toDataURL()方法将每个帧发送到他创build的一个简单的node.js实例。 node.js实例将每个帧保存为一个PNG文件。 在所有帧被保存之后,作者似乎使用像ffmpeg这样的方式从图像中生成video。 然后,您可以将此video作为实际animation的替代品。 这是一个相当的解决方法,但似乎对作者来说很好。