How does shotcut treats .mlt dropped on a timeline?

I cut my scenes in separate .mlts. Then I make them pretty, etc and bring them into a new project to color grade, etc. I.e. in my post production .mlt I have mostly .mlt for scenes on a timeline.

When I render post production .mlt (i.e. with mostly .mlts on a timeline) Shotcut is noticeably slower than when I render individual .mlts.

I understand that say doing color grade should slow things down a bit, so I did a test render - I just brought in an .mlt into and empty timeline and rendered it without adding anything. Shotcut is slower than rendering original .mlt straight up.


How does Shotcut treats .mlt dropped on a timeline?

Such a way of working is absolutely unusual for me and makes no sense at all!

Besides, it is double-faced:
The rendering takes so long because the .mlt fragments containing the movie clips have to be read twice in your post-processing :wink:

I agree, this may not be an optimal way to color grade. I would recommend grading directly on the segment MLT files.

MLT-in-MLT is slower to render because a frame goes through two separate compositing pipelines instead of just one. If it didn’t go through the second compositor, there wouldn’t be the option to color grade the MLT clip or to overlay text above it in a separate track.

This is how it is done in the industry :wink:(plus/minus intermediate renders). Often than not it is different people who cut a scenes and who do post production of a whole movie. They share timelines (or intermediate renders).

That’s what I suspected.

It would be nice to be able to bring in a timeline (MLT) into another timeline without multiple compositors. Say in Adobe one could drop a timeline into timeline into timeline… etc and it doesn’t matter - Adobe would go down to the source material building effect stack prior to rendering… Hey one could even direct-link into different application…

I think the easiest way to implement this in Shotcut is thru “special drag and drop” of MLT into a separate track that would “expand an MLT” into source producers… but then an MLT could have multiple tracks too and video project would become a bloody mess vs. say Premiere or FCP… so it is just a hack and better idea is needed.

I guess I could write a script to “normalize” my post production MLT by “expanding” scenes MLTs into tractor prior to rendering… Hmm, this is how this problem of multiple compositors could be solved! by normalizing MLTs in MLT just before kicking out melt with export MLT.

Let me ask this - is it a tractor (in MLT) that starts a compositing pipeline?

It’s easier to share original timelines or intermediate renders. Sharing timeline-in-a-timeline can be a disaster waiting to happen. If the editor needs to make a change to an underlying timeline because Legal dropped a last-minute bombshell, then the colorist’s grades can get shifted or lost since they weren’t tied to the actual source clips. Some tools have a way around this. Shotcut does not.

“The industry” is not the best way to approach Shotcut because it isn’t made the same way as those tools. New tool means new process. With Shotcut, tying grades to the source clips gives the greatest flexibility for future emergency edits.

Also in Shotcut, if a change is made to an underlying MLT that affects its duration, that change will not ripple up to the aggregating MLT. This means the higher-level MLT requires constant manual attention to make sure it is up to date with all the lower levels.

Yes. However, I’m not sure I see the advantage of this method. If the MLT segments are finalized and rendered independently, why not stitch the rendered segments together into the final movie? It is lossless to do so with ffmpeg command line, since script is involved either way.

1 Like

As long as the video modes match between the outer and inner projects, the difference in time should be small. If the video modes do not match, then the inner project is interpreted at its resolution and aspect ratio and then scaled & padded to the outer project.

Technically, it is not about compositing but some processing we call normalization. Of course, if you do things that involved additional compositing in the outer project then you are adding additional layers and more compositing. Otherwise, as long as the video modes match, the processing is just some additional plumbing.

I made a couple of tests with same video modes. Here is one that shows a minor difference. This project is only 6 minutes but has a fair amount of bicubic rotation and color grading. The first export was from the project and the second after placing the project on the timeline as a clip:


So does a tractor inside a tractor (or MLT inside an MLT) kicks out separate composition pipeline or not?

In my experience it does.

My post production MLT has additional filters on MLTs that have filters too. So I am experiencing about 2x slow-down. Matches up with that a tractor on post-MLT is getting a frame from a tractor from original MLT.

I could double the speed by “normalizing” post-MLT before encoding as I explained above… I didn’t write a script yet, but I did some manual tests and with MLT normalization I could double the speed or get back to normal from 2x slowdown to be exact.

In the “last minute bombshell from Legal :laughing:” scenario, or when underlying timeline changes, Adobe invalidates timeline dropped on a timeline. Just as an example of how to handle this.

Yeah, changes to original timeline could be a pain but it is nothing that cannot be dealt with - just invalidate a timeline like Adobe does and let humans deal with it.

melt could handle timeline on a timeline by “normalizing” MLT before generating encode MLT. Shotcut as a GUI could handle that too (by adding “expanding” of MLT in playlist). Implementing timeline in a timeline is not that impossible.

Just some ideas. :wink:

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