Page MenuHome

Large images gets cropped when downscaled in VSE
Confirmed, NormalPublicBUG

Description

System Information
Linux. Nvidia GForce GTX580

Blender Version
Broken: 2.79.
Worked: (optional)

Short description of error
Large images added in VSE gets scaled to render size.
If we want to keep aspect ratio we need to tick Image Offset. The image is now displayed at its original aspect and size.
We want to downscale this to reasonably fit the window so we add a Transform Effect strip.
Downscaling the image now gets cropped to the area that is inside the render area.
Effectively we can't use large images, say a logo or an image we want to do a Ken Burns effect on, in the VSE.
See attacked .blend

Exact steps for others to reproduce the error
Set VSE render to 1920x1080
Import large image (like 2500x2500px).
Image gets squashed to render dimensions
Tick Image Offset in Strip Input. Image scales to original size and aspect ration.
Add Transform strip.
Scale to 0.5
See image cropped when downscaled.

Event Timeline

Behavior described by David Rylander has been present for a long time, and I don’t think that it is an error. Here’s a way that I recently found to handle:

  1. Do not tick the Offset-Image button in the Image-Strip properties.
  2. Add the Transform strip for the Image Strip.
  3. In the Transform-Strip properties, create a Driver for X-scale, to be driven by the Y-scale value, and
  4. Adjust its Scripted-Expression of this X-scale driver to be the original ratio of the original image. (note: find original dimensions of image in the Image-Strip properties).

in David Rylander's example, the 2500X2500 image has a 1:1 ratio, so the driver expression 'var *(2500/2500)' will always keep the X-Scale at 1:1 with the driver Y-Scale value ('var'). Any change in the Y-scale value will update the X-scale value, so animating changes in the Y-scale value will animate properly proportioned zooming in and out of the image.

Just happened to be working on possibly making a tutorial for this - but didn’t know if anyone else thought of this.

Looking back over my notes, I can see that number 4 is probably not quite right. different video formats can use different aspect ratios for their final display. So, someone with a better handle on the math can correct me on the proper ratio(s).

Still, using a driver is a nice way to keep both X and Y scaling 'in step' when you want to zoom in and out on an image. I don't know how this 'trick' affects the render time, though.

I agree that it is not a bug.

However handling the scale in this way only creates an image that "fits" the cropped image when zoomed to 1:1 pixel size. Most people want to scale an image to taste (keeping correct aspect, you cannot do this in the VSE as it normalizes all inputs to project dimensions, loosing resolution. You would correct aspect when small and zoom in resulting in a blurry image. Alternative is to use Movie clip and stabilize function or the compositor in another scene or a 3D view from another scene.

david mcsween is correct. In my tests with Blender 2.79, a large images' resolution is diminished when they are reduced to fit into a project's available 'buffer space' (my terminology). So, the next best thing that I can think of is to increase the project's buffer space (temporarily?). David Rylander's original example was an image that 2500x2500px, clearly larger than the 1920x1080 screen. Maybe he can try this:

  1. Go to the Properties Editor Window, Render tab, and find the Dimensions sub-section to see the project's screen dimensions.
  2. If the final shot requires a zoom-in to close-up view of the original image, try to increase the Resolution percentage as much as possible (I was able to get my Mac version of Blender to go up to at least 1000%). Anything greater than the dimensions of the over-sized image is a good place to start.
  3. Render the image-zooming strip sequence at the highest resolution that you dare.
  4. When you re-import the high-definition version of the animated zoom sequence back into your project (set to normal resolution of 100%), the project will be reduced down, to fit into the regular dimension size (without 'Offset image' radio button active). Aspect ratio has not been altered between the high and regular resolution versions of the project. Any resolution loss, at this point, will not be due 'throwing away' pixel information that was in the original, oversized, image.

Yes, as david mcsween points out, this is like re-processing the video (or image) in another scene. Maybe all strips requiring this treatment can be lined up, end to end, and be converted in one big, painfully long, rendering session.

Hi folks, you might find this interesting. It's from a while ago so probably doesn't compile with current blender source...

https://developer.blender.org/D2506

Just wanted to add to this since I was just recently trying out VSE to do some simple video editing & video transform effects.

Also found out this limitation, which also applies to videos. So my hope was pulling in a over sized video so that I can zoom to focus on an area of the video and have it remain crisp. But any strip added to the editor gets cropped or scaled to fit before it reaches a transform effect strip. It'd definitely be nice if it could preserve the source's original dimensions and let the transform do it's work on that.

I would remove scaling and color grading from sequencer panel on strips and get rid of preprocessing stage. Also it seemed to me, that this stage has it's own cache - useless and waste of resources.
Use effects!

Just a side note: I tried to bypass preprocessing, but multithreaded effects seems to rely on preprocess cache...

Richard Antalik (ISS) lowered the priority of this task from 90 to 50.
Richard Antalik (ISS) changed the subtype of this task from "Report" to "Bug".

Just to note this is still on 2.82 and not yet "fixed". When importing a large image (larger than output resolution), ticking "Offset" in transform (since is the only way to regain original aspect ratio), and then trying to scale, the rest of the image is lost.

This problem persist on 2.9, the image doesn't need to be larger than the output size, this bug/issue happens with every image having different aspect ratio than output size.

Again, this is not a bug. The VSE was designed to display media that "conforms" to the project dimensions, this is supposed to make it play back faster. I guess if you want some media to resize in the project dimensions then use a different part of blender to achieve that. You can use the compositor or 3D view or Movie Clip editor and stabilise function.

This add-on by bikebot may be a temp fix for users in this situation(I only updated it to 2.8+): https://github.com/tin2tin/blender-reset-aspect-ratio It'll show up in the Transform strip properties in the sidebar.

Then it should be changed to "feature request", but working with images on video editing is a common requirement and the current approach makes it hard and counterintuitive.

@Peter Fog (tintwotin) thanks for your add-on, I'll be taking a look at it.

Then it should be changed to "feature request", but working with images on video editing is a common requirement and the current approach makes it hard and counterintuitive.

Yes, it should be possible to do so straightforwardly like in any other tool.