As it comes to html animation to video conversion, there are plenty of diverse solutions to pick from. Here we try to summarize and categorize the most popular available software and services highlighting both the positive and the negative aspects of each.
1. Html2.Videos SaaS Solution: This complex solution has ten years of operational background with convincing references. The offer focuses on API control in an SaaS business construction, scaling included. The published
timing JS API provides precise timing of the animation,
and the controlled environment has GPU support and sound. Soundtrack and video is recorded in a single shot, so timing and frame-skipping is minimalized. The animation is rendered in a full-stack real browser. The html2.video services offer an on-demand solution API where animations can be directly
generated and accessed on-the-fly demonstrated here. Queue and access is balanced: there is minimal queue time lost. They offer business solutions on reasonable prices to integrate with custom services.
2. Manual Screen Capture:
Ffmpeg, Snipping Tool, or a Chrome Extension
are all able to capture the desktop of the user, and there are probably dozens more. There are many other software (e.g. screencasting and broadcasting) which support just that.
These tools are a good choice for a single-shot job, and using them results in awesome explanation and videos. However none of these are automated, or remotely accessible vi an API. Start-stop and quality / compression settings are also limiting factors: they vary individually.
These are generic tools for capturing your screen, not just your browser or a html based animation.
3. Html File Conversion by Desktop Software: There are specific desktop (Windows) software available to convert html sites to video, e.g.
this one. They excel mostly on single, simple html documents,
they might even support GPU acceleration and batch processing. Software is localized, and do not offer any API or similar functionality to process videos on demand, neither can they include dynamic remote content in the process. Start-stop detection is missing.
4. Online HTML File to Video Converters: The online available versions of the above software (e.g. this tool in online-convert.com or this one on aconvert.com )
have the ability to convert animations from single files sent them. No GPU support or start-stop-detection and dynamic content is a missing point.
5. Puppeteer based solutions: The principle here is that Puppeteer can run a headless browser and capture its graphical output as single frames, then assemble the frames into a continuous video. Since Puppeteer is for testing various Front-End components this feature seems to be steadily supported.
There is an Open Source code example to do just this on Github called videoshow with an explanatory video on YouTube showing how to use the code. This solution requires some technical skills to implement,
and then simple animations can be rendered accordingly. This method produces lots of artifacts (jumps, inproper timing of frames), since the JS implementation in Puppeteers headless browser is not full, lacks GPU support, and is really slow: collecting screenshots and assembling them costs time. API is not included,
but this code example can be implemented as any internal solution later.
6. NodeJS, Chromedriver and Chrome: Almost the best solution so far, there is a YouTube video from the channel LearnWebCode, where it is demonstrated working. Using this to control the browser, and recording audio and video on playback is what
we used on the predecessor of Html2Video to generate tens of thousands of videos. The browser - in the proper environment - supports GPU acceleration; with the added JS control elements the NodeJS code can directly access the variables and functions in the animation, and provides smooth timing and playback control.
Sound is supported, speed and efficiency is given since browsers come optimized. However this costs on CPU and control effectiveness: Chromedriver eats a lot of CPU, and the browsers thread management is confined. The result is resource depriving, complex videos are somewhat hard to render quickly.
7. On-line implementation of stepper + sound: We are not entirely sure how html5animationtogif.com works, but it shows the capacity of recording the animation with sound plus API. The process is definetively queued, there seems to be lacking
GPU support, and there is no option for timing control except manual. On-line demo with watermarked results is available.
8. WebRTC Internal Recording: The browser - and its universal JS machine can be exploited to capture the generated image and sound - resulting a video. This Library on Github does just that, it comes with a Live Demo.
This is also a localized solution and not an SaaS, controls are limited to the very tab where it is running, sensitive to a lot disturbances and artifacts, and the functions are somewhat limited. Timing and sizing of the recorded window is manual.