DEV Community

Cover image for Introducing Shotstack, the Cloud Video Editing API
Jeff Shillitto for Shotstack

Posted on • Edited on

Introducing Shotstack, the Cloud Video Editing API

Shotstack is a cloud-based API for creating and editing videos using a simple JSON format and a rendering engine that can render 1000's of videos concurrently.

The go to technology for server based programmatic video editing has traditionally been the open source utility FFmpeg. FFmpeg is a command line utility that performs video manipulation tasks such as transcoding, resizing, trimming and stitching clips together and applying a range of filters and effects. You might use it in your application by either executing it directly or via a wrapper library like PHP-FFmpeg or fluent-ffmpeg for NodeJS.

This is a great approach for simple, individual videos, but the commands can get complicated and features limited when you want to do more sophisticated editing.

There are also important considerations to think about when you start editing videos at any kind of scale; even a simple edit can consume 100% CPU for several seconds or even minutes depending on length and resolution of the input and output files.

Typically, you would solve this with a combination of queues, load balancers, multiple servers, instances or containers and auto scaling. All of this takes expertise, effort and time to setup and maintain.

I created the Shotstack platform to take away all this complexity and let you just focus on creating videos. The API lets you specify how your video edit is to be arranged using a simple to understand JSON format.

I have tried to reproduce a format similar to a non linear video editor like iMovie or Adobe Premiere with a timeline, tracks/layers, clips that work with images, titles and videos and a number of built in effects, transitions and filters that can be added with one line of code.

The other component of the platform is the server side rendering engine - just POST your edit to the render endpoint and it will take care of queuing your render job and scaling up a new instance to take care of the processing and rendering. Your image and video assets just need to be stored on an accessible URL and they will be downloaded into the edit. After a short period of time it'll spit out a final rendered mp4 video or a gif ready to download.

Why did I build this, you might be asking?

Shotstack started as a side project many years ago with the goal of using machine learning and visual recognition to automatically edit GoPro videos. The A.I. side of things proved more complicated than I anticipated but I had developed the back-end API and rendering engine and thought developers could use it to create their own automated, personalised, large scale video applications.

I've been speaking to a growing number of online video services, some creating millions of videos per month, that are building their own platforms. They are all building something similar, in isolation, spending months re-inventing the wheel and I believe this should be simpler - developers should be able to get setup and create their first video in minutes rather than months, freeing them up to focus on their application rather than infrastructure and maintenance.

I want to share the API with you to see what you might create. My goal is to create a WordPress like ecosystem of applications, modules and video templates that developers can plug together to create new kinds of video-based projects, applications and services.

I'm currently offering free access to the developer community to try out and experiment with the API and there is a GitHub account with some SDK’s, example code and demo projects. Register for keys here: https://dashboard.shotstack.io/registeror visit https://shotstack.io/ for more details.

I hope you will join me on this journey building a new way of creating video online.

Top comments (4)

Collapse
 
jamesmorr profile image
Jamesmorr • Edited

Concurrency is a huge plus. But how long would it takes to edit ten 4k videos? The size is huge! I was reading Movavi blog movavi.io/ and they say that it could takes forever. I'm not sure about it.

Collapse
 
sunnylight777 profile image
SunnyLight777

Thank you very much for making such a great video editor! I'm often using it. But the only problem that in your tool, I cannot convert the processed video to another format.

Collapse
 
pingnagan profile image
pingnagan

Very interesting, I wish to continue the discussion . Please feel free to drop me an email to pingnagan@gumchak.com. We are working on something very interesting & might need your stuff out there.

Collapse
 
oskarahl profile image
Oskar Ahlroth • Edited

Very interesting @jeffshilllitto , good luck! Will try it out a bit for Glitterly