VSE strip previews

Hi, I’m experimenting with strip previews, something that looks like this :

It looks promising, once the thumbnails are generated there is no noticeable slowdown in the interface. However, these thumbnails need to be generated offline, I’m thinking of using the proxy system to build these images.

Is this feature something you would be interested in ? Devs, what do you think ?

49 Likes

This looks very interesting. I’m using the VSE a lot for shot reviewing and this feature could help in that task.
I’m not a core dev, but I would be pleased to try it and give some feedback if you need.

2 Likes

this would be a serious extra gear

1 Like

This is the number one feature most of my editor folk will not edit on Blender for. They need the preview system on the strips - with this it’s practically feature complete and a viable video editor. I’ve had multiple people shut me down about editing video in the VSE mainly to this drawback - so seeing this as possible is awesome! Making the proxy and reading from them is perfectly fine as a solution. Is this really a working thing!?

4 Likes

Cool. NB. Meta and scene strips may have both image and audio.

1 Like

Pretty good, man :slight_smile:

You can use prefetch to do this without introducing slowdown.

It’s simple actually.

To test this just modify BKE_sequencer_prefetch_frames to render every n-th frame
And modify draw_cache_memview to actually draw images instead of tiny stripes.
you can get ImBuf by ibuf = BLI_ghashIterator_getItem(&gh_iter); afrer BLI_ghashIterator_getKey(&gh_iter);

That’s it

Better way would be to

  • add new PrefetchJob type with it’s own cache
  • set render size SeqRenderData context to say 1/10 of original
  • add custom drawing function
  • operate/control prefetch from draw_timeline

You can run both prefetch threads simultaneously.

Just a note my last commit rB005626b8c6b4 breaks the patch ⚙ D3934 VSE cache with frame prefetching (WIP)

Next time I will do this in branch srsly…

1 Like

I would prefer to make a patch that can be directly applied on master, so it can be reviewed separately.

I’ll polish it a bit and post the diff so people can test it and get feedback on the method used. When D3934 is landed I’ll make a new version of this to use the prefetch engine

2 Likes

You can now test this feature : D4426

I can’t provide builds unfortunately, if someone’s interested, maybe a windows dev can provide one.

1 Like

nice, really fast man

Just some little thoughs about those thumbnails:

Having thumbnails on strips can serve differenet purposes, they don’t all need the same things, so depending the user’s goal there are ways of displaying thumbnails which are more efficient thant others.

Just off of my head I can think of those needs:

  1. Identify / differenciate strips’ content
  2. See more or less preciselly the evolution of the strips’ content

Just with those two considerations, there is a huge difference of needs between them:

In the second case, you basically need to see as mutch thumbnails as possible through time. While in the first case, you need only one thumbnail at the begining of a strip, or a few thumbnails spreaded along.

Depending the user’s needs, the amount of needed thumbnails can be changed quite a lot, and such, the thumbnails’ generation.
So it’s nice to have some kind of control on that, let the user choose what he needs, as well as adapt the feature to his hardware.

1 Like

sounds fair, I’ll keep that in mind if this feature gets approved

Awesome!

It’s pretty early to give feedback I guess so here’s a small visual detail I noticed. Added two videos, both 16:9 aspect ratio. The first 1920x1080, the other 960x540 (50% full HD), I was expecting both to fill in the space in the strip but the smaller one was actually half the strip height.

I know it’s heavy work in progress so not going to mention how awesomer it’d be for thumbnails to be built automagically as a low-priority background job :smiley:

7 Likes

A few thoughts on what i see,
1 the thumbnails should only be in between the handles (now they’re over them, that’s sorta obvious but to make sure)
2 i think though the mid ones are also important, the most important ones that should be always accurate are at least the first 2 and last 2, that way you can easily see if you cut in the right point.

5 Likes

Just sending you the love. Even as it is right now, it is suitable and a huge VSE upgrade.

6 Likes

\o/

2 Likes

Definitely a super useful aid to have. Nailing performance and non-locking workflow will be key. Even Final Cut Pro is sometimes choked on thumbnail generation and is pretty much the only area I sometimes have to wait for.

1 Like

I tried to build your code but i get a lot of strange errors on windows 10 (VS 2017)

the build log can be found here

the branch can be found here it contains only blender 2.8 [master] code and your code. You can ignore the other branches , its a personal project of mine i work on and i don’t mix that code with this branch. Also the master branch of this repo is basically Blender 2.8 master unmodified

and relevant commit with your code

I basically downloaded the diff and applied it with git apply on the latest git pull of master branch of 2.8

I do not know if I did something stupid with applying the diff, it did complain about whitespaces.

I don’t mean to derail this thread, but since we already have so many great minds assembled here, might I suggest that you also “fix” the audio clips while you’re already working on the VSE.

Since we can now see a content preview in addition to each video clip’s name, I’d like to have the same functionality for audio clips, please.
That would help me a lot with my work. I need to know exactly what is what in the VSE.

2 Likes

Isn’t this Internet? :slight_smile:

Strip here has convenient volume to do this.

I hear your trouble, but this is not a way to go.
We can either:

  • draw text, then continue waveform (easy)
  • offset waveform and free area to draw text (easy)
  • draw label, when mouse is over strip with text not visible (not sure)
  • ???

But if you would like to continue with this discussion, then new topic is good idea.

In that case I’d say, squash the entire waveform to make room for a line of text above it, much like that row of video thumbnails. If that’s too difficult, then let it be this: