VSE Playback hangs on every cut in a video strip. #69889

Closed
opened 2019-09-15 01:12:50 +02:00 by Justin · 11 comments

While playing in the VSE, the timeline cursor hangs on the first frame of every cut in a video strip for several seconds. When this happens, the video freezes for a while and when it finally continues it skips over a bunch of frames.

To Reproduce:

  1. Make a cut in a video strip
  2. Place the cursor somewhere before the strip
  3. Press play

Workaround:

The best workaround is to cache in the first frame of each cut before you play through them. You can do this by hitting page up/down to jump to each cut.

While playing in the VSE, the timeline cursor hangs on the first frame of every cut in a video strip for several seconds. When this happens, the video freezes for a while and when it finally continues it skips over a bunch of frames. To Reproduce: 1. Make a cut in a video strip 2. Place the cursor somewhere before the strip 3. Press play Workaround: The best workaround is to cache in the first frame of each cut before you play through them. You can do this by hitting page up/down to jump to each cut.
Author

Added subscriber: @BlenderFrenzy

Added subscriber: @BlenderFrenzy
Justin changed title from Playback hangs on every cut in a video strip. to VSE Playback hangs on every cut in a video strip. 2019-09-15 01:15:16 +02:00

Added subscriber: @iss

Added subscriber: @iss

This is normal behavior for some codecs.

To ensure consistent seek time you have to use proxies.
Described workaround is quite strange though.

Are you using proxies?

This is normal behavior for some codecs. To ensure consistent seek time you have to use proxies. Described workaround is quite strange though. Are you using proxies?
Author

Thanks for the reply, Richard!

I prefer not to use proxies since a proxy is a complete, separate render of the video at a lower quality. Not only does this take up way too much space, but it takes double the time since I am essentially rendering the video twice.

Also, people who use proxies have told me they are having the same issue with playback.

The workaround I provided may not work for everyone, but it's been an absolute necessity and time-saver for me. Once that first frame of the cut has been cached in, it has no problems playing smoothly right through it. (Which may be something that could be considered when developing a potential fix or improvement, I don't know)

EDIT: I do not actually know much about codecs as I'm not a developer myself. My understanding is only from a user perspective. So it's probably my lack of understanding of how codecs work. Besides using proxies, do you know of any other solutions?

Thanks for the reply, Richard! I prefer not to use proxies since a proxy is a complete, separate render of the video at a lower quality. Not only does this take up way too much space, but it takes double the time since I am essentially rendering the video twice. Also, people who use proxies have told me they are having the same issue with playback. The workaround I provided may not work for everyone, but it's been an absolute necessity and time-saver for me. Once that first frame of the cut has been cached in, it has no problems playing smoothly right through it. (Which may be something that could be considered when developing a potential fix or improvement, I don't know) EDIT: I do not actually know much about codecs as I'm not a developer myself. My understanding is only from a user perspective. So it's probably my lack of understanding of how codecs work. Besides using proxies, do you know of any other solutions?

I can not reproduce this with proxies..
There are some quite weird issues I am not familiar with (wasn't using Blender for a month)

Can you send me sample video file, you have issues with?
Also blend file would be nice.
Then I can investigate this

I can not reproduce this with proxies.. There are some quite weird issues I am not familiar with (wasn't using Blender for a month) Can you send me sample video file, you have issues with? Also blend file would be nice. Then I can investigate this
Member

Added subscriber: @GDQuest

Added subscriber: @GDQuest
Member

@iss Regarding Justin's problem, nowadays you have quite a few video editing packages that allow you to work without proxies using compressed h264 footage at 1080p. In the free software world, Olive has great playback and scrub performances like that.

The issue with Blender is it freezes every time the time cursor reaches a new strip with about any hd footage that doesn't have a gop size of 1 (keyframe on every frame). That's why it doesn't happen with proxies. This does happen exactly the same whether the footage has a gop size of 2 or something like 100, so it seems there's something happening there. In general, Blender has some performance issues with importing and scrubbing through videos that some other video editing programs don't have. Not that it's a big priority, but it'd be more comfortable to edit with the VSE if some dev were to look into that someday.

@BlenderFrenzy in Blender it's generally best to work with proxies unless you change your recording settings and record very big videos. Now, in general, you won't get silky smooth scrubbing in any video editing program without proxies if you record compressed videos (like what people call "mp4", i.e. footage encoded and compressed with the h264 codec), even in something like Resolve.

If you want better playback performances from the get-go in any video editing program, you will have to change the encoding settings when you record your footage or transcode your footage (this is what happens when you create proxies). If you record from a dslr, you can't do anything. If you're using OBS, you need to use the advanced mode in the output section, then head to the recording tab, and you can set it to record mp4, using the h264 codec, with a keyframe every 1 frame. You also need to crank up the bitrate to accomodate for the uncompressed footage. I've set it pretty low here, at 20mb/s, you probably want something closer to 100mb/s (meaning video sizes of up to 6gb per minute of recording).

Screenshot from 2019-09-16 12-53-23.png

Note that recording mp4 means that if obs crashes during recording, your video will be lost. At the same time, mp4 is nice for playback performances as this container has all the video's metadata at the front of the file.

@iss Regarding Justin's problem, nowadays you have quite a few video editing packages that allow you to work without proxies using compressed h264 footage at 1080p. In the free software world, Olive has great playback and scrub performances like that. The issue with Blender is it freezes every time the time cursor reaches a new strip with about any hd footage that doesn't have a gop size of 1 (keyframe on every frame). That's why it doesn't happen with proxies. This does happen exactly the same whether the footage has a gop size of 2 or something like 100, so it seems there's something happening there. In general, Blender has some performance issues with importing and scrubbing through videos that some other video editing programs don't have. Not that it's a big priority, but it'd be more comfortable to edit with the VSE if some dev were to look into that someday. @BlenderFrenzy in Blender it's generally best to work with proxies unless you change your recording settings and record very big videos. Now, in general, you won't get silky smooth scrubbing in any video editing program without proxies if you record compressed videos (like what people call "mp4", i.e. footage encoded and compressed with the h264 codec), even in something like Resolve. If you want better playback performances from the get-go in any video editing program, you will have to change the encoding settings when you record your footage or transcode your footage (this is what happens when you create proxies). If you record from a dslr, you can't do anything. If you're using OBS, you need to use the advanced mode in the output section, then head to the recording tab, and you can set it to record mp4, using the h264 codec, with a keyframe every 1 frame. You also need to crank up the bitrate to accomodate for the uncompressed footage. I've set it pretty low here, at 20mb/s, you probably want something closer to 100mb/s (meaning video sizes of up to 6gb per minute of recording). ![Screenshot from 2019-09-16 12-53-23.png](https://archive.blender.org/developer/F7750842/Screenshot_from_2019-09-16_12-53-23.png) Note that recording mp4 means that if obs crashes during recording, your video will be lost. At the same time, mp4 is nice for playback performances as this container has all the video's metadata at the front of the file.
Author

@iss @GDQuest You guys are awesome! Thank you so much for your replies :) First I want to apologize if any of my comments sounded harsh or ignorant. I do admit I'm fairly ignorant when it comes to coding and developing, but I never mean to complain. I truly am grateful for everything that you and the other Blender developers do. You all have accomplished so much! I absolutely love Blender and I owe it to such hard working people like you. Sometimes I just don't know how to phrase my confusion or problems in the best way. But thank you for putting up with me :D

@iss I can send you a video and blend file if you want, but I'm guessing my problems are due to what you and Nathan are saying about the compression issues, because my videos aren't really created specifically for scrubbing/editing. And therefore I have this issue with every video I edit, not just one specific video.

@GDQuest Thank you for clearing that up about the proxies. That does make sense. Yes, for my tutorials I use OBS to record a compressed .mp4 with h264 at only 6000kbs. I imagine you're right about this not being the best for video editing. I will definitely try testing out the proxies again for my videos and see if that fixes the problem.

However, if I may, I'd like to share some hesitations and doubts with this solution:

  1. This same problem regarding laggy caching/preview also exists for the VSE's own effects strips, to which proxies don't even apply. Just tonight I tried to add a scene strip of a very simple 4 second text animation to the VSE, nothing fancy at all. Yet, the VSE cannot handle it. It takes 1-3 seconds to cache in each frame, which took a total of about 2-3 minutes to fully cache in. And without caching there is hardly any smooth way to play the preview.
  • The scene strip is just one example. Playback also lags over transitions, speed controls, or other effect strips - basically anything that has any extra information (calculations, animations, etc) and which also doesn't apply to proxies.
  1. I can preview my same 4 second animation in the 3D camera with the Eevee renderer in render mode perfectly in real-time. This makes me doubt it is my hardware that is causing the problem. I could be wrong, of course. But it is very confusing to me as a user why I would be able to preview an animation perfectly in real-time in the 3D camera, yet be almost completely unable to preview that same animation in the VSE.

  2. I haven't used another video editor in a while, but when I did I can't recall the same playback issues with any of them - Windows Movie Maker, Sony Vegas, Shotcut, VSDC, none of these seemed to stop on cuts, regardless of the quality/codec of the video. Which again, from a user perspective, is very confusing why Blender has this problem.

Those are some of my doubts/confusion/ignorance on this topic.

Thank you once again for taking the time to reply and put up with all my questions. Also thank you for your hard work helping us all have better experiences with Blender!

@iss @GDQuest You guys are awesome! Thank you so much for your replies :) First I want to apologize if any of my comments sounded harsh or ignorant. I do admit I'm fairly ignorant when it comes to coding and developing, but I never mean to complain. I truly am grateful for everything that you and the other Blender developers do. You all have accomplished so much! I absolutely love Blender and I owe it to such hard working people like you. Sometimes I just don't know how to phrase my confusion or problems in the best way. But thank you for putting up with me :D @iss I can send you a video and blend file if you want, but I'm guessing my problems are due to what you and Nathan are saying about the compression issues, because my videos aren't really created specifically for scrubbing/editing. And therefore I have this issue with every video I edit, not just one specific video. @GDQuest Thank you for clearing that up about the proxies. That does make sense. Yes, for my tutorials I use OBS to record a compressed .mp4 with h264 at only 6000kbs. I imagine you're right about this not being the best for video editing. I will definitely try testing out the proxies again for my videos and see if that fixes the problem. However, if I may, I'd like to share some hesitations and doubts with this solution: 1) This same problem regarding laggy caching/preview also exists for the VSE's own effects strips, to which proxies don't even apply. Just tonight I tried to add a scene strip of a very simple 4 second text animation to the VSE, nothing fancy at all. Yet, the VSE cannot handle it. It takes 1-3 seconds to cache in each frame, which took a total of about 2-3 minutes to fully cache in. And without caching there is hardly any smooth way to play the preview. - The scene strip is just one example. Playback also lags over transitions, speed controls, or other effect strips - basically anything that has any extra information (calculations, animations, etc) and which also doesn't apply to proxies. 2) I can preview my same 4 second animation in the 3D camera with the Eevee renderer in render mode perfectly in real-time. This makes me doubt it is my hardware that is causing the problem. I could be wrong, of course. But it is very confusing to me as a user why I would be able to preview an animation perfectly in real-time in the 3D camera, yet be almost completely unable to preview that same animation in the VSE. 3) I haven't used another video editor in a while, but when I did I can't recall the same playback issues with any of them - Windows Movie Maker, Sony Vegas, Shotcut, VSDC, none of these seemed to stop on cuts, regardless of the quality/codec of the video. Which again, from a user perspective, is very confusing why Blender has this problem. Those are some of my doubts/confusion/ignorance on this topic. Thank you once again for taking the time to reply and put up with all my questions. Also thank you for your hard work helping us all have better experiences with Blender!
Member

same problem regarding laggy caching/preview exists for the VSE's own effects strips, to which proxies don't even apply. Just tonight I tried to add a scene strip of a very simple 4 second text animation to the VSE, nothing fancy at all. Yet, the VSE cannot handle it. It takes 1-3 seconds to cache in each frame, which took a total of about 2-3 minutes to fully cache in.

What you're describing now sounds like a different issue. On the one hand, the VSE hangs for an instant upon reaching a cut with compressed videos, on the other hand rendering scenes or effects can be slow in general. I work with 25% proxies and at 25% resolution most of the time to have a smooth experience. Part of the issue is that the VSE doesn't use all your hardware's power with most effects, and with rendering. Most operations use a single CPU core if I recall correctly, except maybe for Blur that's calculated on your graphics card if possible.

I haven't used another video editor in a while, but when I did I can't recall the same playback issues with any of them - Windows Movie Maker, Sony Vegas, Shotcut, VSDC, none of these seemed to stop on cuts, regardless of the quality/codec of the video. Which again, from a user perspective, is very confusing.

Yes, the VSE has performance issues in general, and that part isn't user-friendly. But for now, there isn't anyone to work on rewriting the preview/playback/render engine, whatever that'd be. Richard is working on caching, which will be useful to preview complex edits, but that won't make the VSE faster when you first import footage in a project. And I wouldn't expect that to change soon. You'll have to work with proxies and at 50% or 25% resolution if you want to edit with Blender.

> same problem regarding laggy caching/preview exists for the VSE's own effects strips, to which proxies don't even apply. Just tonight I tried to add a scene strip of a very simple 4 second text animation to the VSE, nothing fancy at all. Yet, the VSE cannot handle it. It takes 1-3 seconds to cache in each frame, which took a total of about 2-3 minutes to fully cache in. What you're describing now sounds like a different issue. On the one hand, the VSE hangs for an instant upon reaching a cut with compressed videos, on the other hand rendering scenes or effects can be slow in general. I work with 25% proxies and at 25% resolution most of the time to have a smooth experience. Part of the issue is that the VSE doesn't use all your hardware's power with most effects, and with rendering. Most operations use a single CPU core if I recall correctly, except maybe for Blur that's calculated on your graphics card if possible. > I haven't used another video editor in a while, but when I did I can't recall the same playback issues with any of them - Windows Movie Maker, Sony Vegas, Shotcut, VSDC, none of these seemed to stop on cuts, regardless of the quality/codec of the video. Which again, from a user perspective, is very confusing. Yes, the VSE has performance issues in general, and that part isn't user-friendly. But for now, there isn't anyone to work on rewriting the preview/playback/render engine, whatever that'd be. Richard is working on caching, which will be useful to preview complex edits, but that won't make the VSE faster when you first import footage in a project. And I wouldn't expect that to change soon. You'll have to work with proxies and at 50% or 25% resolution if you want to edit with Blender.

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Richard Antalik self-assigned this 2019-09-22 04:55:29 +02:00

thanks @GDQuest for explaining how to setup OBS to achieve editing-friendly output. I edited some OBS footage with default settings and I can say, that seekability is much worse than footage from my camera for example.

I am closing this task, as described problem seems to codec-specific, and it is more or less expected.
If you encounter any other problem, that is repeatable, feel free to report or reopen this task, but please try to limit your report to single issue.

thanks @GDQuest for explaining how to setup OBS to achieve editing-friendly output. I edited some OBS footage with default settings and I can say, that seekability is much worse than footage from my camera for example. I am closing this task, as described problem seems to codec-specific, and it is more or less expected. If you encounter any other problem, that is repeatable, feel free to report or reopen this task, but please try to limit your report to single issue.
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
3 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#69889
No description provided.