M

9

Y

.

c

o

m

dark artifact art

One Hour Rendering Consultation

A one-hour session to dive into your options for rendering your Remotion compositions, through a lens of current rendering performance/price and the user journey through video creation. The goal is to land on the ideal solution as early as possible, avoiding common pitfalls and need for re-engineering. Following the consultation, a customised testing spreadsheet will be supplied to draw comparisons and arrive at the ideal rendering solution.

Rendering: User Experience

The primary consideration is not just cost and performance of the backend, but rather the ideal User Experience that your app is hoping to achieve.

  • Is it ok if the user has to wait a long period of time for a render to be finished, or does it need to feel instantaneous? How is the final video going to be utilised?
  • What are some things we can do within the app to provide feedback to a user to help them ‘feel’ that progress is fast? Can rendering begin while the user is completing other actions such as scheduling a post, or adding metadata for cataloguing their video?
  • The Remotion component can do a lot of heavy lifting (alongside thoughtful implementation of Remotion functions such as prefetching and preloading) to allow a user to view their video before it is rendered.
  • Other options include pricing tiers for different rendering speeds, or utilising cheaper rendering solutions for videos that are scheduled for a future post.

Rendering: Technical Implementation

For many video-centric apps, the cost and performance of rendering can make or break the business model. After understanding the flow of the app and the importance of rendering speed, the rendering options can be viewed through a lens of cost vs. performance. The fastest rendering solution (spoiler alert, without a GPU, it’s Lambda) is not the cheapest - but without data to draw comparisons, it is impossible to arrive at a well-informed decision. The two key values that allow rendering comparisons are;

  • Cost per minute rendered: What is the cost per minute of rendered output video.
  • Render Time Multiplier: As a multiple, how long does render take vs. the length of the rendered output.

The following points will be explored during the consultation;

  • Overview of the different cloud-based rendering options, and where they sit on a spectrum of cost/speed.
  • Does your team have the necessary expertise and time available to manage a customised rendering solution?
  • Is a standard Remotion Composition available to be used across all of the rendering tests? This may represent an expected inputProps payload, a worst-case scenario or a template that makes use of certain libraries such as Lottie or Rive - the important thing is that all rendering options are compared with the same input.
  • When the ideal rendering solution is discovered, the team can then use this to compare rendering of different CSS techniques and animation libraries as needed, to further optimise rendering performance.
  • Questions to inform the testing spreadsheet for different Virtual Machines on your cloud of choice (EC2 on AWS, VMs on Azure, Compute Engine on GCP) as well as drawing a comparison against Lambda. If it is expected to impact rendering performance, GPU options can also be included.
  • As early as possible, request access and/or quota for the required resources within the cloud environment.
  • Overview of different configuration options available when rendering - concurrency, enableMultiProcessOnLinux, H264 preset, Jpeg Quality etc.

Following the consultation, you will receive a spreadsheet for comparing various setups, recording different rendering times and arriving at a $/per-minute-rendered as well as rendering time X realtime.

I am available for assistance in performing the tests and completing the spreadsheet.

Based on the consultation outcomes, I am available for assistance in implementing an ECS solution to automate VM management.