[WebVfx] ChromeVFX Prototype

Here’s my attempt to render WebVfx using a running Chrome.

Demo: https://youtu.be/AyEI0lOiaQs
Explanation: http://coolwanglu.blogspot.com/2019/10/chromevfx-prototype.html

The prototype connects MLT/Shotcut with a running Chrome. You can inspect or edit the page in real time.

This could be a feasible direction to upgrade from QtWebKit. It’s much easier to implement comparing with QtWebEngine or CEF.



Brilliant work!:heart_eyes:

MLT’s reliance on QtWebkit is, I believe, now its main weakness, since this is no longer supported. I use node.js and hence Chromium, for other projects and find it amazing that I can use the most recent web technologies (e.g. 3-D animations) and Javascript features almost as soon as they are defined, since they are implemented so quickly in Chromium. It would be great if MLT could ditch QtWebkit for something like this, but it would have to support all the WebVfx features (e.g. frame to canvas etc) and be highly performant too and I realise that Dan is already putting an awful lot of work into Shotcut.

MLT and Shotcut does not depend on WebVfx, and most of what is available in Shotcut through WebVfx is unimportant.

See related https://github.com/mltframework/mlt/issues/491

IMO the biggest benefit WebVfx provides is a way to include animations. The JavaScript processing of video is not that important even though it does lower the bar a little for contribution. It is possible to add support for custom GL shaders outside WebGL. Being able to have rich text with a WYSIWYG editor is a nice benefit, but the editor available through WebKit contenteditable is weak and quirky. As for animation support, it is still difficult to integrate projects created in a web-based animation tool into Shotcut let alone trying to build a web-based animation tool into Shotcut. Qt Design Studio demonstrates that perhaps QML is a better direction. Most of the code for that tool comes from the open source Qt Creator. WebVfx already supports QML. So, I am considering forking WebVfx into a QML-only MLT plugin. OTOH, maybe animation is simply best left to other tools and simply focus on improving integrations and native file support in some cases.