How to Create Split Screen Videos using Node.js?

There are times when you may need to display two side-by-side shots on screen at once, also known as split screen video. In order to create the split screen effect using JavaScript, you will need a video editing API capable of encoding and decoding video. Here's how to do that using Node.js in just a few lines of code.

01Node.js code
const Creatomate = require('creatomate');
const client = new Creatomate.Client('Your API Key');

client.render({

  source: new Creatomate.Source({
    outputFormat: 'mp4',
    width: 1920,
    height: 1080,
    duration: 6,
    elements: [

      new Creatomate.Video({
        type: 'video',
        source: 'https://cdn.creatomate.com/demo/river.mp4',
        x: '25%',
        width: '50%',
      }),

      new Creatomate.Video({
        type: 'video',
        source: 'https://cdn.creatomate.com/demo/bridge.mp4',
        x: '75%',
        width: '50%',
      }),
    ],
  }),

}).then((renders) => {
  console.log(renders);
});
02Output video

How it works

How it works: First, begin by installing the Creatomate library from NPM. It is now possible to set up a split screen video scene simply by using JSON. Start by specifying the resolution of the final video. In this case, we'll create a split screen video with a 1080p landscape layout (1920 by 1080) using two input videos.

To display both videos side by side, we'll make use of the "x" and "width" properties. Keep in mind that these positions are relative to the center of each video element. So, we need to set the positions of the elements to "25%" and "75%" respectively, making them appear on the left and right sides. To ensure both elements take up half of the screen horizontally, we'll set the width to "50%".

It's important to note that we only modified the horizontal properties, "x" and "width," and left the vertical properties, "y" and "height," unchanged. By default, the "y" position and height of an element are set to "50%" and "100%" respectively, which means they occupy the entire vertical range. Thus, there's no need to modify those values.

If you'd like to experiment with different values, you can use a video editor that allows for easy dragging and dropping of videos into place. After you're done with the video template, the editor will automatically generate the necessary code for your Node.js application.

Template editor

Edit this code example in the video editor

Design your own video templates using the online editor, then export them as JSON and integrate into your Node.js application to create any kind of video, completely through code.

Start automating today

Start with a full-featured trial with 50 credits, no credit card required.

Get started for free