Batch export multiple projects automatically?

Is it possible to let Shotcut automatically batch export the timeline of multiple projects that have already been prepared in advance and to render them with the selected export options and have it give every output video the same name as the name of the project file?

Yes, it already does this if you manually open each project and choose Export File.

Oh are you saying I can put the .mlt project file itself into the playlist? And then Batch export all of them with global render settings?

That approach will not preserve the name of each project. What I am saying is that you do not need to wait for a job to finish before you open a different project and export it. If you need custom export settings, add an export preset, and add a step to click the preset after opening the next project.

In my case I want to try exporting say 5 projects. Is there a way to do that without going into each one manually in cases where they are say 50?

For instance I want to preload all of them without going into each one manually because that would take too long if they are 50+ and only begin rendering them after they’ve been loaded.

I hope I’m allowed to post this here. To be honest, the feature I’m looking for is basically this one in power director that you can see here https://youtu.be/6sw3zEc6doc?t=71
Basically you open a batch export window where you select as many project files as you want, choose an export destination and export settings for each project, then you just click start and it begins rendering every project in order and giving each video the same name as the project.

I’m asking if it’s possible to reproduce the same in Shotcut without going into each project manually while the previous is rendering, cause in my case there are times when I want to queue 30-50 small projects, so opening all of them would be tedious.

no

…
Well… You have to be familiar with the usage of the command line … there is possible to make it.

I don’t know the exact command line to use, but AFAIK there’s also a command line solution available (qmelt…???) to export MLT projects (without opening Shotcut UI) as if you’ve done it from Shotcut.
So, if you make a “playlist” to this command line batch, it could be the solution for Your needs.

Yes, melt and qmelt are basically the same. You can give it the XML project file name, but you need to specify all export parameters:
melt project1.mlt -consumer avformat:project1.mp4
with additional encoding options as name=value pairs to follow. More information on the MLT website. Use real_time=-4, for example, to turn on parallel processing. When you add a custom Export preset in Shotcut, then you will find the options that Shotcut creates when you choose an export and set options. A different approach is to create a Job, stop it, right-click to View XML and save it. This version of the project file contains an additional <consumer> XML element that contains the complete encoding parameters including the file name. Then, you only need to pass the xml file name to the melt command.

2 Likes

Oh so is there a way to convert my export settings to a melt command?

Hey, sorry for necroing this thread, but I only just now decided to give shotcut + melt another try after learning some more things about Linux in general and only now do I realize that I’ve missed some things from @shotcut 's previous comment in my hurry back when I wrote this thread.

I’m only writing this to ask for an example render command. I’ve already edited a test video with Shotcut and saved it to an .mlt and I got the consumer export parameters after viewing the job xml in shotcut. Now how can I pass the .mlt and export parameters to melt on a command line?

When I try to write

melt test.mlt -consumer bf="0" frame_rate_den="1000000" top_field_first="2" mlt_service="avformat" height="1080" vb="40M" width="1920" progressive="1" deinterlace_method="yadif" channels="2" ab="384k" g="149" frame_rate_num="60000000" threads="15" real_time="-4" f="mp4" ar="48000" target="/home/kiko/Desktop/test.mp4" acodec="aac" movflags="+faststart" rescale="bilinear" vpre="medium" vcodec="hevc_nvenc" aspect="1.77778"

it doesn’t actually render the file. I know I’m probably missing something obvious but I can’t figure out what it is. I’ve tried several variations of the above command, such as adding avformat:video.mp4 to the end of the line, or just passing the job xml directly like melt job-xml.txt but each time I do that it doesn’t actually render, but rather tries to start the video in another MLT window, where it probably expects me to edit it from the terminal, I’m not sure why or what is happening. Though there aren’t any problems with rendering it directly with Shotcut with those settings.
I’ve got the .mlt project that Shotcut saved and the -consumer parameters from Shotcut’s job xml, so why doesn’t the above command render the file?

Again sorry for bumping this.

This topic was automatically closed after 90 days. New replies are no longer allowed.