Cloud video rendering and personalization
Two and a half years as team lead and main developer of a product that rendered customized video templates in the cloud.
Popcorn.jsReactNext.jsAngularNode.jsRabbitMQ## tl;dr
VideoRemix customers turned video templates into their own videos, so the product needed a browser editor and a way to render video in the cloud. As team lead and main developer, I researched the rendering approach and designed and built both sides: a keyframe timeline editor and a Docker Swarm rendering cluster with a dispatcher feeding workers. Customers could customize a template, preview it and render the final video in the cloud.
## context
VideoRemix let customers make their own videos from templates. That needed two things: an editor in the browser where a customer changes any element of a template over time, and a service that renders previews and finished videos in the cloud. The rendering approach also had to stay within the licences of the software it relied on.
## my-role
- Led the product as team lead and main developer, with developers I brought onto the team.
- Researched how to render templated video in the cloud and chose an approach that stayed within the licences of the tools involved.
- Designed the whole solution, front end and back end.
- Built the editor: customers pick a template, customize its elements on a keyframe timeline, and run a preview or a full render.
- Built the core backend for authentication, payments and project management.
- Built the rendering backend: a Docker Swarm cluster where a dispatcher worker hands render jobs to intermediate workers.
## outcome
- Customers customized a template on a keyframe timeline in the browser, checked it with a preview render and got the finished video from a full render in the cloud.
- Rendering ran across a Docker Swarm cluster, with a dispatcher spreading jobs over worker machines, which kept rendering fast.