Faulty export results using melt in terminal compared to shotcut GUI

Hey there.

I edited a project on my desktop PC and started exporting a short 20 sec clip. The filters I used are pretty basic (fade in/out of video and audio, rotation/zoom).

(For better understanding: I deleted everything from my timeline except a short 20sec video part with the filter for easier testing and debugging while using the standard export functionality)

If I export this through shotcut the result looks fine (tested on Windows and Linux).
But if I copy the job-XML and source files to my home server to render it there, the screen section mismatches the preview and exported video that shotcut generates.
On my homeserver I am using the melt version of the latest portable shotcut version to export.

This is my filter config for the 20 sec test file:
<filter id="filter4" in="00:02:48.917" out="00:03:08.900">
<property name="background">color:#00000000</property>
<property name="mlt_service">affine</property>
<property name="shotcut:filter">affineSizePosition</property>
<property name="transition.fix_rotate_x">1.9</property>
<property name="transition.fill">1</property>
<property name="transition.distort">0</property>
<property name="transition.rect">-171.804 -64.5 4070.4 2290 1</property>
<property name="transition.valign">middle</property>
<property name="transition.halign">center</property>
<property name="shotcut:animIn">00:00:00.000</property>
<property name="shotcut:animOut">00:00:00.000</property>
<property name="transition.threads">0</property>
</filter>

I discovered similar issues with the crop filter but there it can be fixed by removing the line

<use_profile>1</use_profile>

from within the tag within the job-XML. While I am mostly cropping my videos the workaround is successful enough but now that I need rotation the workaround is not applicable because “use_profile” is not a property for the rotation filter but only for crop.

Any ideas or suggestions?

Try running melt with LC_ALL=C

Unfortunately that doesn’t help.
The target machine has a GPU, but no display and only relies on Terminal/SSH.
Is not having a real display server a hindrance? Do I need special config for that to work?

Are you properly running the melt wrapper script rather than bin/melt directly?

I had to confirm because I wasn’t completely sure but yes I am using the melt wrapper script from the base directory of Shotcut which uses a lot of export lines to configure the desired environment.
So that does not seem to be the problem.

If your XML is using any Qt-based services such as text, audio-visualization, or Crop: Rectangle (not Crop: Source) filters then melt usually needs to run with /usr/bin/xvfb-run -a.

You wrote “the screen section,” but I am not sure what that means except that perhaps it is a screen recording. The fact that you need to remove use_profile is weird.

Otherwise, I am out of ideas.

I rotate and zoom in on my video so I don’t have any gaps at the edge of the video frame with the filter.
What happens after export is that the exported video seems to be rotated fine but the view is not centered but oriented from the top left of the original video and missing a lot of the lower and right part of the original video. The zoom itself does not seems to be applied either.

I’ll post my complete job xml, maybe someone on a terminal based machine can test and verify.
I tried using it with /usr/bin/xvfb-run -a to no avail.

The job xml (replace the test file with any 4k60fps footage for similar results).
short.mlt (9.7 KB)