Strange inconsistency between shotcut preview and generated video

What is your operating system?
Ubuntu 18.04

What is your Shotcut version (see Help > About Shotcut)? Is it 32-bit?
20.01.30

Can you repeat the problem? If so, what are the steps?
(Please be specific and use the names as seen in Shotcut, preferably English. Include a screenshot or screen recording if you can. Also, you can attach logs from either View > Application Log or right-click a job and choose View Log.)

There is strange inconsistency between video preview from shotcut and final video exported from shotcut. I noticed this in more than one of my projects. In exported video sometimes there is one additional line somewhere at the top which is not visible on preview (preview scaling=noone so it’s not related with scaling). It’s always related with png visible which is scaled and cropped. It looks like this additional line is generated in shotcut somehow and not coming from image. In some of my projects it was white, in some it’s green (as it’s this example here but here this green color is probably related with color grading filter, if I didn’t have it, it was white then). It seems to have 1px size (or similar).

I can easily remove it from the final exported video by adding additional filter Crop: Source with Top 5 px.

However it’s not something I would expect. For me the preview and exported image should be the same.

It’s not the case of video player as I tried with few and all have this additional line visible. And of course I double checked the png file with high zoom. There is no any additional line on top. But it also appears for other png images as well.

The error is repeatable. So this line is always in the same place for the same video. And it doesn’t consist the whole video, just only few parts where png image is displayed with the same or similar filters.

As attachement two screenshoots. One with video preview (with high zoom)


, and second with video exported.

Is the line also visible on an exported frame?
If yes, that will make it a bit easier to find at what point it is introduced.

I suggest you start hiding tracks one by one above the NARCYZ-270 PNG clip. Each time you hide a track, export a frame and check if the line is still there. Then do the same with filters. Deactivate them one by one, including the ones that are applied to the tracks, and the ones applied to the output.

Sorry. The line is NOT visible on exported frame. Thus it makes the whole process to detect what is causing it more complicated. Probably export frame uses the same mechanism as shotcut preview.

What is the resolution of the PNG images, and what is the resolution of the timeline? There is a possibility that scaling the PNG image rounds to 1920x1079, leaving a transparent line that allows the color of the track below to bleed through. This might explain why the color of that 1px line keeps changing.

The resolution is 1579x1035 in this case. However I noticed this in my other projects thus it does not concern only this single image. My final video is 1920x1080. And scaling is far from being close to 100%. So it might be some other reason. I will do some experiences comparing my other similar videos in which there is no this effect and perhaps I will find in this way some “suspected filters”.

Ok. The plan was to disable filter by filter and to export it to short video using Source functionnality (limited to ex. 15 sec of video only). However I’m blocked here due to the following bug: When exporting from Source and not Timeline shotcut seems to ignore disabled filters (theoretically I could remove fully filters, but I don’t want to make too much mess in my project).

Small errata. Previously I wrote that adding Crop: Source filter helps. It helped for other image but not for this one. I also tried to modify Crop:Rectangle parameters (hoping it might be somehow related with the area which is cropped) but it didn’t help. Strange…

Use a range marker instead and export From marker

shotcut_61gEjYnrhE

The problem with no result in filter settings change seems to be somehow related with saving or not saving project before export (even if I’m not 100% sure) (but for this I opened another thread).

However returning to the bug reported within this thread. It seems that it’s somehow related with Size, Position & Rotate filter. When I removed this (successfully :stuck_out_tongue: ) this strange additional line disappeared. I have the following parameters for Size, Position$Rotate as in the screenshoot:

Despite I have black set as background color, it seems that in some cases this black is not fully fulfilled and additional line is created. Moreover when I analysed it with high zoom, it doesn’t seem to be just white constant line. It rather seems that the beginning of the image is somehow repeated twice.

Ok. I solved the problem in a bit untypical way. I compared what is the difference between two very similar images with almost the same filter (the same filters and very similar parameters). And basing on this I noticed that images with additional line have impair number of pixels as height while the ones without additional like have pair number of pixels. Sure I’m not 100% if it’s the criteria but I cropped the image to remove one line from it (new height=old heigh - 1 pixel). And that solved the problem after export. (In my case it was 1035 pixels of height and 1034 pixels after correction).

Sure it might be more complicated that for example not every impair number of lines is causing this but only some multiplications of some values.

I’m guessing it might be somehow related with the fact that preview in shotcut uses different algorithm for scaling then export (here I set Lanczos as interpolation algorithm).

I’m wondering if there is any possibility to solve this issue to avoid such suprises in future… :thinking:

If you prepare your image with an image editor to the same resolution to your video mode, do you get the same results? Meaning, instead of having Shotcut do all of the image processing, you perform this task yourself to ensure everything is correct.

Can you provide instructions that someone could follow to reach the same results you are experiencing?

1 Like

@Hudson555x

I would have to do more testing but not sure if I have enough time. I’ve already spent on this problem so much time. Additionally I’m doing zooming, so not sure how much initial resolution 1920x1080 has the importance here…

Concerning instructions, do you mean instructions how to avoid the problem or how to repeat the problem (for testing purposes)?

Instructions for anyone to repeat the same process. Least amount of steps necessary. Even your exact source image that you are working with. Without instructions on how to duplicate the issue, there is essentially no easy fix. There are many people who would also recreate a bug, but nobody is going to guess what you have done.

These are some of the items needed for a bug report:

  • Video Mode
  • Image/Video resolution/fps (can be seen in the properties window)
  • Filters used with settings listed
  • Export settings: Presets. If you changed something in Advanced, list what you changed.
  • Source images/video or at least links to find originals.
  • Best to start from a new project. Save the MLT & upload it here.

None of us would know either since we have no specifications to work with. Assuming your Video Mode is 1920x1080, it may make a huge difference. You mention a size such as 1579x1035. Is this your source image resolution?

Looking at the images in your first post, it’s possible you’re not capturing the correct frames for comparison.
firefox_2022-02-14_07-56-30 In the viewer… does show which frame you are stopped on. What zoom level are you viewing this at?
Appears to have some fade in the next few frames:
What zoom level are you viewing with Shotcut?


Also unclear what other tracks you have.
firefox_2022-02-14_07-57-21

Could this be the source image?

@Hudson555x

Video mode: HD 1080p 30fps

Export Parameters:
1920x1080 16:9 29.970030 Progressive YADIF-temporal+spatial Lanczos Preview scaling is off Parallel processing is on
Codec: libvpx-vp9 Qualitybased VBR 56% 15 frames B frames 2 Codec threads 0
Audio: 2 stereo 44100 aac Average Bitrate 512

I extracted small part of the project “making problems” (one example) and I’ve put it here: tmp_additional_line.zip - Google Drive

I also added output mp4 video file just in case it was generated in other way on your side.

This additional line is visible only at the beginning of zooming.

Please let me know when you download the file.

Thanks for help. :slight_smile:

I took your image and modified it in Gimp to make a 3840x2160 image of your original.

Using my workflow, I can not reproduce the issue.

  1. Video Mode: 1920x1080 30fps
  2. Opened source of 3840x2160 image
  3. Source image to timeline on V1
  4. Filter: Size, Position & Rotate
  5. Default export settings. Nothing changed in advanced.

Note: I did add another video track above V1 for two Text:Simple filters to show frames & time.

Here is the sample video I made.

Direct video link.

Hi,

Why do you upscale it in GIMP to 3840x2160? The original image is only 1579x1035 pixels. And taking this image to project and using Scale, Position & Rotate causes this additional line to appear? If I modified its size in GIMP, this additional line also disappeared. However most of users don’t upscale or change the size of images before using it in shotcut. They just take original image they have and then they might be surprised as… me.

Have you watched this mp4 file in zip file? It was generated exactly from the project I gave the link to.

Regards

To avoid interpolation issues with Shotcut, or with any video editor. This way you’re only zooming to that source resolution if you click on Size Mode: Fit.

Not sure how you got that data. I would think it would vary per user in what their workflow requires.

Yes I watched your video in the file, it has that extra line.
I also looked at the MLT file you encloses.

You are using a whole list of filters, which you didn’t disclose at the start of the bug report.

Filter list:

  • Invert Colors
  • Size, Position & Rotate
  • Crop: Rectangle
  • Color Grading
  • Saturation
  • Glow
  • Contrast
  • Sharpen
  • Fade In

From your MLT, this is the player zoom at 100%

From VLC of your video at 100%
vlc_2022-02-14_12-17-40

Preview is not off.
Not a bug.

Well, why user should use two different tools for zooming, if one can do everything…? For me the idea of suggesting of using additionaly GIMP is very suprising.

I did. It’s visible in the screenshoot just in the first post.

And here there is ONE BIG DIFFERENCE! For unknown reasons you can see this additional line in shotcut preview while me no (which is also visible (or rather not visible :P) in the screenshoot I attached in this thread. What display method do you use in shotcut? I have OpenGL.

I would say it’s a bug or even two.

One is because at least on some configurations there is difference between preview and final video (it’s not your case but it’s mine). Not sure if it’s related with shotcut itself or any libraries…

And second is because this additional line appears while in the original png file it doesn’t exist. If ex. I use GIMP for upscaling, this additional line is not added. So somehow GIMP upscaling algorithms are better here.

You should never zoom a picture above it’s resolution, it is the right approch to rescale it in a picture editor like Gimp or Photoshop, they have better (and much slower) ways to rescale.
I is easy to zoom down because you are just trowing away pixel, if you are zooming to a higher resolution, shotcut has interpolate to add new pixel and it uses fast algorithms, because it i meant to be used with video and can’t use 10s to scale a single frame, but a photo editor, have no problems using the time it takes, because it has only one picture (frame) to work with.
It is easier to zoom video, because you don’t see all the issues because the frames are changing all the time and your eyes will compensate.

1 Like

You are correct. Sorry, I had failed to see those filters.

Open GL was my original screenshots.
Here are the other two.