Motion tracking - poor system performance when selecting keyframe matching on large video #51850

Closed
opened 2017-06-20 08:37:34 +02:00 by Evert Vorster · 24 comments

System Information
Intel i7 with 35Gb of RAM.
Windows 7 Professional.
Also:
Arch linux in a virtual box and on bare metal on the same machine, but booted off a USB disk

Graphics : nVidia Quadro K3100M

Blender Version
Broken: 2.78c

Short description of error
Doing motion tracking in equirectangular 4K video, thousands of frames.
When selecting keyframe as reference, a couple of frames are done quick, and then Blender slows down to a crawl, with maybe doing one frame every few seconds.
When selecting previous frame as reference the performance issue disappears.

It's almost like the reference picture is read from the frame where it was specified every single time a comparison is made, causing Blender to seek back and forth through the video. With large seeking times in the video the whole performance suffers.

Exact steps for others to reproduce the error
Load large video
Select motion tracking workspace
Add motion tracking point, using default settings
Track forward (it works fine for a couple of frames, and then slows down dramatically)

The workaround I found was to select fast motion preset for the tracking parameters, and then there is no slowdown.
Based on a (as simple as possible) attached .blend file with minimum amount of steps

**System Information** Intel i7 with 35Gb of RAM. Windows 7 Professional. Also: Arch linux in a virtual box and on bare metal on the same machine, but booted off a USB disk Graphics : nVidia Quadro K3100M **Blender Version** Broken: 2.78c **Short description of error** Doing motion tracking in equirectangular 4K video, thousands of frames. When selecting keyframe as reference, a couple of frames are done quick, and then Blender slows down to a crawl, with maybe doing one frame every few seconds. When selecting previous frame as reference the performance issue disappears. It's almost like the reference picture is read from the frame where it was specified every single time a comparison is made, causing Blender to seek back and forth through the video. With large seeking times in the video the whole performance suffers. **Exact steps for others to reproduce the error** Load large video Select motion tracking workspace Add motion tracking point, using default settings Track forward (it works fine for a couple of frames, and then slows down dramatically) The workaround I found was to select fast motion preset for the tracking parameters, and then there is no slowdown. Based on a (as simple as possible) attached .blend file with minimum amount of steps
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @evorster

Added subscriber: @evorster

#53344 was marked as duplicate of this issue

#53344 was marked as duplicate of this issue

Added subscribers: @Sergey, @mont29

Added subscribers: @Sergey, @mont29
Sergey Sharybin was assigned by Bastien Montagne 2017-06-21 12:21:09 +02:00

Not sure we can do much here, @Sergey would know.

Also, did you try to change your Memory Cache Limit setting in System tab of UserPreferences?

Not sure we can do much here, @Sergey would know. Also, did you try to change your Memory Cache Limit setting in System tab of UserPreferences?

What is the type of medium you use (video, image sequence)? Does it happen with latest build from builder.blender.org? Try monitoring blender's memory consumption, see if it stays at some constant value after few frames reached or keeps raising up?

@mont29, there shouldn't be measurable difference between 'previous frame's and 'previous keyframe' reference option.

What is the type of medium you use (video, image sequence)? Does it happen with latest build from builder.blender.org? Try monitoring blender's memory consumption, see if it stays at some constant value after few frames reached or keeps raising up? @mont29, there shouldn't be measurable difference between 'previous frame's and 'previous keyframe' reference option.
Author

The medium type is x265 compressed video clip. It has exceedingly bad non-linear seeking performance.

Memory usage is a constant 1Gb, no creep. The system itself has about 35GB available.

I will try to set a higher memory limit and try again, but just adding more memory for the problem "feels" wrong, as there is no slowdown with using previous frame as a reference instead of keyframe. I can also provide a screen capture of the problem in action, if you want.

The medium type is x265 compressed video clip. It has exceedingly bad non-linear seeking performance. Memory usage is a constant 1Gb, no creep. The system itself has about 35GB available. I will try to set a higher memory limit and try again, but just adding more memory for the problem "feels" wrong, as there is no slowdown with using previous frame as a reference instead of keyframe. I can also provide a screen capture of the problem in action, if you want.
Author

Just tried again with the same version of blender, on Windows 7.

I upped the memory limit to 10Gb, and when using keyframe for reference it eats my memory pretty quickly, ie: it uses more and more memory until all the 10Gb is used up, and then it slows down again.

Just tried again with the same version of blender, on Windows 7. I upped the memory limit to 10Gb, and when using keyframe for reference it eats my memory pretty quickly, ie: it uses more and more memory until all the 10Gb is used up, and then it slows down again.

I can not reproduce the issue with my video files on my workstation.

Please share some of the videos which shows the error, together with .blend file with the motion tracking prepared for the error to happen (so it's enough to press Ctrl-T to start tracking).

I can not reproduce the issue with my video files on my workstation. Please share some of the videos which shows the error, together with .blend file with the motion tracking prepared for the error to happen (so it's enough to press Ctrl-T to start tracking).
Author

Hi there, Sergey.
Providing you with a video might be difficult. They are all over 1Gb of HEVC compressed 4k equirectangular video.
Even if I had the bandwidth to upload such a video, would this website accept it?

As a bit of side information I have the panoramatools plugin installed. Not sure if it matters much.

Kind regards,
Evert Vorster

Hi there, Sergey. Providing you with a video might be difficult. They are all over 1Gb of HEVC compressed 4k equirectangular video. Even if I had the bandwidth to upload such a video, would this website accept it? As a bit of side information I have the panoramatools plugin installed. Not sure if it matters much. Kind regards, Evert Vorster

It might matter. So test whether using factory startup blender affects the issue.

It might matter. So test whether using factory startup blender affects the issue.

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'

More than a week without reply. Due to the policy of the tracker archiving for until required info/data are provided.

More than a week without reply. Due to the policy of the tracker archiving for until required info/data are provided.

Added subscriber: @soderlind

Added subscriber: @soderlind

I'm seeing the same thing also on Windows 7 and Linux Mint on another computer. Blender 2.79 RC1 and earlier.

It only happens when the clip doesn't fit the memory cache.

As soon as the memory cache is filled up while tracking with keyframe as reference, it slows down dramatically. Using previous frame as reference instead makes it go through the whole video with no slowdown.

It seems to be worse on higher resolution videos, or maybe videos with slower seek. I'm not sure.

Image-sequences show almost no slowdown, but if you pay attention it looks like it might behave the same, just too little to notice really.

I made a blend file with a random video that has this slowdown. I downloaded the video from: https://pixabay.com/en/videos/ski-winter-snow-mountains-8558/

Just open blend and press Ctrl-T.

Make sure Memory Cache Limit is low enough in the settings. (At 1024 MB the slowdown happens at around frame 130 for this video.)bugtest.blend

Ski - 8558.mp4

I'm seeing the same thing also on Windows 7 and Linux Mint on another computer. Blender 2.79 RC1 and earlier. It only happens when the clip doesn't fit the memory cache. As soon as the memory cache is filled up while tracking with keyframe as reference, it slows down dramatically. Using previous frame as reference instead makes it go through the whole video with no slowdown. It seems to be worse on higher resolution videos, or maybe videos with slower seek. I'm not sure. Image-sequences show almost no slowdown, but if you pay attention it looks like it might behave the same, just too little to notice really. I made a blend file with a random video that has this slowdown. I downloaded the video from: https://pixabay.com/en/videos/ski-winter-snow-mountains-8558/ Just open blend and press Ctrl-T. Make sure Memory Cache Limit is low enough in the settings. (At 1024 MB the slowdown happens at around frame 130 for this video.)[bugtest.blend](https://archive.blender.org/developer/F708584/bugtest.blend) [Ski - 8558.mp4](https://archive.blender.org/developer/F708585/Ski_-_8558.mp4)

Looks like the video filename changed when it got uploaded. (To underscores instead of space.)
If you use my blend file you probably need to rename the video to this: Ski - 8558.mp4

Looks like the video filename changed when it got uploaded. (To underscores instead of space.) If you use my blend file you probably need to rename the video to this: Ski - 8558.mp4

Changed status from 'Archived' to: 'Open'

Changed status from 'Archived' to: 'Open'

Yeah… as if it has to reload the keyframe every time…

Yeah… as if it has to reload the keyframe every time…

The pattern area we're comparing against (the one which is denoted by keyframe match) is supposed to be cached inside of the tracking context which is not covered by memocy cache limit at all.

Will do some troubleshooting on Monday.

One thing you might want to try at the meantime (and this is actually something recommended when tracking video files): try generating timecode (Built Proxy/Timecode in the Proxy panel) and set tmecode to something like Record Run. See if that has any affect on performance.

The pattern area we're comparing against (the one which is denoted by keyframe match) is supposed to be cached inside of the tracking context which is not covered by memocy cache limit at all. Will do some troubleshooting on Monday. One thing you might want to try at the meantime (and this is actually something recommended when tracking video files): try generating timecode (Built Proxy/Timecode in the Proxy panel) and set tmecode to something like Record Run. See if that has any affect on performance.

@Sergey I just tried generating TC on his file, and saw no difference at all here…

@Sergey I just tried generating TC on his file, and saw no difference at all here…

This issue was referenced by a850235a44

This issue was referenced by a850235a44207d856644cab38a1155a85d90337a

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'

Tried latest buildbot build 66c1b23 and tracking is not working at all anymore. It gets stuck at 0% and if I try to quit blender it will stop responding.

Tried latest buildbot build 66c1b23 and tracking is not working at all anymore. It gets stuck at 0% and if I try to quit blender it will stop responding.

Added subscriber: @PauloJoseOliveiraAmaro

Added subscriber: @PauloJoseOliveiraAmaro
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#51850
No description provided.