Multi-format editing

J’aurais besoin d’aide pour trouver une solution au problème suivant.
Je suis en train de réaliser un film souvenir d’un week-end moto d’une trentaine de minutes. Je dispose des fichiers originaux filmés par les différents participants. Bien évidemment tout le monde n’a pas utilisé le même format. J’ai en majorité
Des vidéos GOPRO en 1920x1080 60ips
Des vidéos téléphones en 1920x1080 30ips
Des vidéos caméra en 1280x720 30ips

J’ai défini le format d’export final à 960x540 30ips 3,5Mb/s, c’est le format que j’utilise pour ce genre de film souvenir, il n’est pas trop lourd pour une qualité que je juge suffisante même sur un écran TV de 50’’

Mon ordinateur n’étant plus tout jeune, j’utilise la technique du proxy car SC a du mal à traiter de manière fluide les vidéos GOPRO. J’ai donc mis tous les fichiers originaux dans un dossier nommé “Originaux” et fait une copie convertie de chaque fichier original dans un dossier nommé “Proxy”. Toutes les copies sont au format 960x540 30ips 1Mb/s.
J’ai donc créé un projet SC en 960x540 30ips et réalisé mon montage avec les vidéos « proxy »
J’ai beaucoup utilisé le filtre « Rotation et échelle » avec de très nombreuses images clés pour conserver le sujet centré sur l’écran (beaucoup de clips ont été filmés par des GOPRO embarquées sur les motos).
Une fois satisfait de mon montage, il suffit de remplacer le nom du dossier « Proxy » par « originaux » et de dire à SC de chercher dans ce dossier pour exporter la version finale.

Et c’est là qu’intervient le problème auquel je n’avais pas pensé. Quand je fixe un décalage de 10 pixels sur une vidéo de 960x540, SC conserve cette valeur de 10 pixels qu’il applique sur l’original en 1920x1080. Le résultat n’est donc plus le même.
Pourquoi SC n’applique t’il pas les valeurs correspondant à la résolution définie dans le projet ?

Je dois donc tout recommencer, à moins que quelqu’un ici ait une bonne idée.

Merci d’avance.

Google translate

I would need help finding a solution to the following problem.
I’m making a souvenir film of a 30-minute motorcycle weekend. I have the original files filmed by the different participants. Obviously not everyone used the same format. I have a majority
GOPRO videos in 1920x1080 60ips
Videos phones in 1920x1080 30ips
1280x720 30ips camera videos

I defined the final export format at 960x540 30ips 3.5Mb / s, it is the format I use for this kind of souvenir film, it is not too heavy for a quality that I consider sufficient even on a 50 ‘’ TV screen

My computer is no longer young, I use the proxy technique because SC has trouble processing GOPRO videos smoothly. So I put all the original files in a folder named “Originals” and made a converted copy of each original file in a folder named “Proxy”. All copies are in 960x540 30ips 1Mb / s format.
So I created a SC project in 960x540 30fps and made my montage with the “proxy” videos
I used the “Rotation and scale” filter a lot with many keyframes to keep the subject centered on the screen (many clips were filmed by GOPROs on board motorcycles).
Once satisfied with my installation, simply replace the name of the “Proxy” folder with “originals” and tell SC to search this folder to export the final version.

And therein lies the problem I hadn’t thought of. When I set an offset of 10 pixels on a 960x540 video, SC keeps this value of 10 pixels which it applies to the original in 1920x1080. The result is no longer the same.
Why does SC not apply the values ​​corresponding to the resolution defined in the project?

So I have to start all over again, unless someone here has a good idea.

Thank you in advance.

Filter coordinates are generally relative to the timeline (project) resolution. If the timeline is 960x540 even in proxy mode, then filters will have coordinates based on 960x540 and stuff should “just work” even when swapping the media.

The main exception would be the “Crop: Source” filter because those coordinates are relative to the media clip, not the timeline. So unfortunately, after swapping the Originals back into place, those coordinates would have to be redone. The other filters should be okay.

If the timeline was not set to 960x540, then… yeah, long day ahead.

Perhaps a better-working alternative would be to use the original videos all the time, but use the Preview Scaling feature at 360p or 540p to gain performance rather than proxies. Turn off Preview Scaling to set the “Crop: Source” filter coordinates precisely, then turn Preview Scaling back on for everything else.

My project is well defined in 960x540 so I guess the timeline too.
Here are the screenshots of the same image after exporting the 2 versions.
Version proxy

Version originals

As you can see, the X offset is not the same.

Ooooh, was that set up with the Rotate and Scale X/Y offset sliders? I believe those would be based on the media rather than the timeline as well because they are pixel values, not “timeline grid” values. So those would have to be redone as well.

In the future, there are two alternatives. Using the Size and Position filter rather than Rotate and Scale will cause coordinates to be relative to the timeline rather than the media. S&P will survive swaps between originals and proxies provided the same timeline resolution is used for both. Assuming you don’t need rotation, this is the workaround to scaling when using proxies.

The other alternative is to use Preview Scaling over the original media files, and then use whatever filters you want. It’s a very cool feature that gets around the very problem you’ve discovered.

EDIT: Preview Scaling works great over proxy files too for extra performance, but sometimes Preview Scaling improves performance so much on its own that proxies are no longer necessary.

Yes I used the rotation and scale filter. I need to straighten the image when the motorcycle with the camera leans too much.
For the original multimedia files, my old Mac is not fast enough to read them.

I think the simplest final solution will be to create new originals in 960x540.
My Mac will take 2 days to create them, but it is he who will work and not me, and it is a pity, it will make an additional conversion, therefore a drop in quality. But since this is not the main criterion …

In that case, S&P can apply any zooming and shifting, then Rotate and Scale can still be used but only for rotation. Rotation alone would survive a proxy swap.

I edited my response above to include that proxy workflow works great with Preview Scaling too.

I will do this for future projects, for now I have to find a solution to save my work done over several days.

I did some tests this morning.
I encoded an original clip 1920x1080 60 fps in 960x540 30ips 20Mbit / s.
The project is still carried out with the “Rotate ans scale” filter and the proxy in 960x540 1Mbit / s. The export with the new converted original.
Here is the result

To compare with the same export but with the true original in 1920x1080.

We clearly notice the decrease in quality linked to the 2 successive encodings. However, the framing of key images is respected in relation to the project.

The third test is carried out with the “Size and position” filter. The export is done by replacing the proxy with the real original. The framing and quality are respected.
I think I’ll have to start all over.

I take this message to ask @Shotcut if it was possible to modify the French translation of the labels of this filter which are too long and which do not allow reaching the buttons on the right. The horizontal scroll bar is missing.

I have personally changed the labels in SizePositionUI.qml to keep everything in order.

In an effort to save your original project and work hours, what if you opened the MLT file in a text editor, did a “Find” for “transition.ox” and “transition.oy”, and multiplied every value by 2 for the 1920x1080 sources? That’s the scale factor from 960x540 to 1920x1080, and the source filename would be a few lines higher in the file for reference. Playback would look wrong during proxy preview, but would render correctly when switched back to the originals.

1 Like

You mean I’m looking for all the lines that start with property name=“transition.ox” et property name=“transition.oy” and I replace in each line the number located between the sign “=” and the “;” by his double?
Which would give in this example “00:00:00.000=-10;00:00:01.001=-12;00:00:01.668=-24;” etc

\<property name="transition.ox"\>00:00:00.000=-5;00:00:01.001=-6;00:00:01.668=-12;00:00:02.002=-11;00:00:02.669=-15;00:00:03.003=-19;00:00:03.670=-20;00:00:04.004=-22;00:00:04.671=-28;00:00:05.005=-25;00:00:05.339=-18;00:00:06.006=-32;00:00:06.340=-37;00:00:06.673=-35;00:00:07.007=-32;00:00:07.341=-31;00:00:08.008=-35;00:00:08.508=-43\</property>

It is doable, and it will likely take less time.
Is there anything else to modify in the file?

Yes, that is it. Might want to spot-check a render of the first minute to verify it’s working as expected. If there is any usage of the “Crop: Source” filter, those would need to be doubled also.

I do not make or modify translations. We use for others to collaborate on that. Do you want to join and make the change? If not, I can post a message there, and maybe someone will do something.

OK, I’ll give it a try, thanks for your help.
I did not use “Crop: Source”

I was on this link and proposed the modification, but I did not find how to attach the screenshot to the comment.

Do you think one day be able to add to the list of improvements to make the passage of coordinates in relative on the filter “Rotation and scale” as mentioned by @Austin ?

Its big advantage compared to “Size and position” is that it has the rotation parameter.

Test performed, result OK, thanks @Austin

Glad to hear it! Thanks for the update.

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