我们目前有一个基于网络的编辑器,允许用户构建动画网络应用程序。这些应用程序由形状,文本,图像和视频组成。除视频外,所有其他元素也可以在屏幕上显示动画。构建动画应用程序的结果基本上是JSON的一大块。
网络应用的播放代码也是基于网络的。它采用JSON blob并构造HTML,最终在某种浏览器环境中播放。问题是大多数时候这种播放发生在电视和机顶盒等低端硬件上。
如果有某种方法可以将数字标志转换为视频,这些性能问题就会消失。然后STB /智能电视只播放视频,这比在网络视图中播放动画要高得多。
鉴于描述每一层的JSON blob以及如何绘制每种类型的对象,它的动画点等,我怎么能以某种方式将其转换为服务器上的视频呢?
我的第一次尝试是使用PhantomJS在无头浏览器中加载播放页面,拍摄一系列屏幕截图,然后使用ffmpeg将这些屏幕截图合并到一个视频中。只要没有视频,那就很有效。但它不适用于视频,因为PhantomJS中没有HTML5视频标签支持,即使有,我也会失去任何音频。
我想做的另一种方式是再次加载PhantomJS中的播放页面,但关闭视频图层并保持透明,然后将屏幕截图作为一系列具有透明度的PNG。然后我会将它们与视频图层结合起来。
但这些都不是很优雅。我知道有基于网络的视频编辑器基本上可以完成我想要完成的任务,那么他们是如何做到的?