Skip to content

RESOURCES / BLOG

How to Transform Live Stream Recordings Into Polished VODs Using Cloudinary

In a previous post, we covered how we can record and upload live streams to our Cloudinary Media Library. Once your recordings are in the library, Cloudinary provides powerful tools that make organizing, editing, and distributing your content much easier. What steps can we take if we want to optimize our recorded stream videos for playback and delivery to our audience? With Cloudinary, we can apply transformations to enhance recordings for playback without needing video editing software or creating them in different formats. In this post, we’ll focus on some common transformations and optimizations for getting a raw stream recording ready to be delivered in a video-on-demand format.

To get started, we’ll select a video in our Cloudinary Media Library to work with. The transformations we make to this video will serve as a template for our other media files and recordings, which we wish to optimize similarly. We will begin by applying targeted transformations to our video and then deliver it to our audience in an optimized format. We can use dynamic URL transformations to make changes for delivery without actually needing to edit the raw video stored in our media library. Before we start adding transformations, we need to get the URL to the video we want to work with. There’s a button to copy the URL of the video item in your media library.

Video asset selected in the Media Library

Here’s the URL structure for video transformations:

[https://res.cloudinary.com/](https://res.cloudinary.com/)<cloud_name>/<asset_type>/<delivery_type>/<transformations>/<version>/<public_id>.<extension>

After copying our video URL, we have the base; now we will work on building additional parameters for the final version of our video.

The first thing we want to do to prepare our recording for video on demand is trim out any dead air or extra padding at the beginning and end of the video. Scan through your recording in your media library and take note of the times that you would like to start and end the video. There are a few ways to define the trim values for your video. Check out the documentation on trimming videos for all the details. For this example, I’m cutting off some time from the beginning and end of the video. I’ll be using the start_offset and end_offset parameters. I’m going to start at :10 and end at 1:20. For the transformation parameters, this translates to so_10,eo_70. The start offset is 10 seconds, and the end offset is 70, which leaves us with one minute of video. This is our result:

https://res.cloudinary.com/doo88x3qd/video/upload/so_10,eo_70/v1747417890/2025-05-16_13-45-33_uxxiwe.mp4

The updated URL now serves a trimmed version of our video file.

Quirky placeholder images for videos are all the rage these days. Perhaps you prefer something a little bit more understated, but either way, it’s never a bad idea to have an intro image for your videos. We can use the concatenating media feature to add an image to the beginning of our video recording for a specified duration. All we need to do is upload the image that we intend to use to our media library and copy the image name. Here’s the new URL where we’ve prepended a three-second splash screen to the beginning of our stream video:

https://res.cloudinary.com/doo88x3qd/video/upload/c_pad,w_1280,h_720/l_stream-placeholder_ynxlua.png,fl_splice,du_3,w_1280,h_720/so_0,fl_layer_apply/so_10,eo_70,w_1280,h_720/v1747417890/2025-05-16_13-45-33_uxxiwe.mp4

Thumbnail of the streamer’s profile picture and title: My Awesome Stream #1

There are a lot of new parameters, so let’s break them down from left to right:

  • Canvas Padding (c_pad…). Prepares a 1280×720 canvas so both image and video segments line up perfectly.
  • Image Layer (l_…, fl_splice, du_3, w_1280,h_720). Splices in the placeholder image as a 3s video clip, scaled to fill the canvas.
  • Layer-Only Flags (so_0,fl_layer_apply). Ensure the 0s start offset and 3s duration apply only to the image segment, not to the base video.
  • Main Video Trim and Resize (so_10,eo_70,w_1280,h_720). Immediately after the three-second image, plays the original video trimmed from 10 s → 70 s, resized to 1280×720.

The good part is that once you have this setup, it’s easy to swap in different images and make adjustments to the duration.

There may be some other edits or transformations that you would like to make to your video before delivering it to your users. The Cloudinary Transformations API is extremely powerful and flexible. Check out the Video Transformations documentation for inspiration.

Once all of our transformations are dialed in, we want to make sure that we deliver our video-on-demand streams to our audience in an optimized format. I recommend using the Video best practices guide to help steer you in the right direction. Most likely, adding /f_auto/q_auto for auto format and quality is the right choice. If you want to make more fine-grained optimizations, check out the How to optimize video quality page. We can add these parameters before our transformations:

https://res.cloudinary.com/doo88x3qd/video/upload/f_auto/q_auto/c_pad,w_1280,h_720/l_stream-placeholder_ynxlua.png,fl_splice,du_3,w_1280,h_720/so_0,fl_layer_apply/so_10,eo_70,w_1280,h_720/v1747417890/2025-05-16_13-45-33_uxxiwe.mp4

There’s also some fine-tuning that can be done using the Cloudinary Video Player. You can open the Video Player Studio from your recording in your Media Library:

Video PLayer Studio is second option in the menu Video Player Studio allows you to customize the video player experience and provides the embed code for you to add it directly to your website.

Video Player Profile with Javascript code Check out this previous post to learn more about all the customizations that can be made to the video player.

In this post, we transformed a raw stream recording into a polished video-on-demand experience using Cloudinary’s powerful transformation tools. From trimming out dead air to adding splash screens, resizing, and optimizing for quality and delivery, we demonstrated how you can make professional-grade edits without ever leaving your media library. By leveraging dynamic URLs, using best practices for video optimization, and the Cloudinary Video Player, you can streamline your post-production workflow and deliver high-quality content to your audience faster and more efficiently.

Contact us today to learn more about how Cloudinary can help simplify your content development workflows.

Start Using Cloudinary

Sign up for our free plan and start creating stunning visual experiences in minutes.

Sign Up for Free