return to table of content

I accidentally Blender VSE

PaulHoule
23 replies
23h57m

   I’m pretty sure I could have not done this at an “actual job”
If there's one thing that's gone wrong in my career is that it's been split between the occasional project where I figure out the math for something that is absolutely unique (and not paid) in which I get more done in two months than I'd usually get done in two years vs projects I get paid to work on where the results I get are basically average. I've never been able to split the difference and not for lack of trying really hard. Having the possibility of getting paid for something I was working on for free last year ended up with me not working on it at all.

earthwalker99
10 replies
21h35m

You are not alone. I have experienced this my entire life and it has caused me to question everything people say about motivation, such as the idea that profit and wages are the only way to get things done. Then I came across Karl Marx's theory of alienation and things started to make a lot more sense. He started from the observation that work is the main thing that (healthy) people do, but that this should not be confused with working for other people and being alienated from the product of one's own labor.

https://en.m.wikipedia.org/wiki/Marx's_theory_of_alienation

JellyBeanThief
4 replies
20h57m

I've started trying to be more specific about what I mean by "work", "hard work", and "play" when I think about stuff.

"Work" is anything that must be done regardless of whether it is enjoyable. That includes things I do for myself as well as other people. Doing the dishes is work, even if I enjoy the zen of it. Automating a repetitive process at work is work, even if I enjoy the flow of it.

"Hard work" is anything that must be done even though mind and body say "this is bad for you, keep doing this only if it's really important" using the vocabulary of pain, exhaustion, boredom, resentment, anxiety, and so on. What's hard work for me might not be for someone else, and what's hard work for them might not be for me. What's hard work for both of us is likely to be a source of struggle to get the other person to do it.

"Play" is anything that doesn't need to be done, regardless of whether it is enjoyable. If you want a "hard work" equivalent of play, maybe striving play? Either way, it is worth distinguishing from work because the condition of not needing to succeed relaxes inhibitions on creativity, experimentation, and novel behavior.

There's a bunch of dimensions in all of these that I need to untangle. But one thing I really like is the detachment of enjoyability from whether or not something is work or play. I have to go to a party to bond with coworkers. I might enjoy it, it might involve games and feelings of connection, but it is work because I need to do it to maintain my security of food and shelter and yada yada, and I will be putting a face on.

anamax
2 replies
20h26m

One of work's important dimensions is "are you being paid?" which can be generalized to "I'm doing this because of some external factor" such as in "clothes don't clean themselves."

"do what you love and you'll never work a day in your life" doesn't take into account that external factors have some influence on what you do whenever they are present.

Viliam1234
0 replies
5h17m

I guess it should be "be rich, do what you love, and you'll never work a day in your life" but that kinda kills the vibe.

JohnFen
0 replies
4h55m

"do what you love and you'll never work a day in your life"

I've long thought this saying was very dubious at best. In my experience, doing what you love in order to make a living tends to turn "what you love" into work.

bookofjoe
0 replies
8h16m

"Work is what you're doing when you'd rather be doing something else."

quickthrower2
2 replies
10h51m

What I like about hobby projects is the fast feedback loop around decision making. Decisions at companies are sooo slow, and you also need to prove yourself and fit in.

This means on a hobby project you can drop one hit and work on another because you damn well feel like it.

At work you need to run it past someone. Because Kanban and Scrum and weekly and quarter goals it will be frowned upon. A lot of cpu cycles used up for people and process stuff.

I think the freedom is what makes working for free great.

Not about the money.

I did free work for a charity once to help someone out and I hated the work. Knee deep in bad PHP and a task that needed to get done. I liked being helpful but it wasn’t fun.

treflop
0 replies
2h54m

If you build rapport at your company, you don't have to run much past anyone.

I just do stuff at work. Always have at every company I've been at. I've done stuff from infra changes to doing art design, even in a massive company with 15,000 employees.

Then after it's done, I show the relevant parties. They are happy. They don't have any changes to suggest.

sircastor
0 replies
4h14m

As you said, not about the money. Your hobby project can do something that doesn't make practical sense from a production standpoint, or a growth standpoint.

My wife reminds me frequently that my projects don't have to have any more value than that I wanted to do them. It's okay if my dumb robot exists, and takes up space in the house, so long as I'm enjoying making it.

nox101
1 replies
17h53m

I get way more done when i'm self motivated but, the things that I'm doing at work actually need to be done. They are tedious but someone needs to do them.

Say you work on an OS like MacOS, iOS, Android, Windows. tens of thousands of tests need to be written so that you know that updating the OS doesn't break all of your users. Writing those tests, managing the infrastructure to run them all on the various hardware, tracking all of that etc is a huge amount of work. Few people would be self motivated to do it for fun. So, profits and wages it is.

spencerflem
0 replies
14h9m

Most software does not need to be written

A lot of software is actively harmful for the world

(with that said, your specific examples are valid, i'm glad people are paid to work on operating systems)

kevingadd
5 replies
21h4m

All of my most rewarding/impactful work was for little or no pay, yeah. It feels like an unavoidable thing at this point and definitely makes working in software a little depressing.

plufz
4 replies
12h5m

The upside though is that you are usually well paid in this field so a lot of us have the choice of doing less paid work and do impactful work without getting paid. (But yeah, I hear you, it does feel like the system is rigged for depressing results as a whole)

rpbiwer2
3 replies
7h48m

This (developers having significant time to work on hobby/side projects) seems to be pretty common among experiences I read about online (i.e. Hacker News, blogs) but basically unheard of among people I work with/talk to IRL. I'm very curious how people manage to carve out this time? Personally I find it very difficult. It was virtually impossible when I had a full time job - I guess that's what full time means. But now I work freelance, and while I'm able to spend some of my "work" time doing things I want to do vs need to do, I still have a lot of actual work to do and thus find it very hard to do anything meaningful with my "extra" time.

plufz
0 replies
4h4m

Do you make more than you need as a freelance? Can you say no to more projects?

fxtentacle
0 replies
7h30m

The trick is owning stuff and renting it out. That's the essence of what makes SaaS attractive. You own the software, you rent out access to it, so you get paid without having to spend time working.

JohnFen
0 replies
4h50m

I'm very curious how people manage to carve out this time?

I've never really had a problem finding the time. Like everything else, it's a matter of what tradeoffs you want to make. For instance, I also don't watch TV/Netflix/etc. -- I work on my hobby projects instead. A couple of hours working on something every day yields results far more quickly that you'd think.

But I'll admit, I apply time management lessons I learned from being a single parent. Doing that taught me how much stuff you can really cram into a day.

stuaxo
1 replies
19h54m

Project management is the death of all that sort of stuff.

Some places have a good system where there are firebreaks where anything can be done for a week or two, which help solve this.

matteason
0 replies
9h5m

Yeah I agree with this. Especially with stuff that's more experimental/exploratory, project management, deadlines and 'deliverables' kill my motivation.

A lot of the best work I've done has been a bit under the radar. It's easier to ask for forgiveness than to get permission.

vincnetas
0 replies
11h23m

One analogy that i made is that :

"My employer is paying for Ferrari and is using it to go grocery shopping."

remus
0 replies
7h33m

I think this is a pretty interesting phenomenon, and I think it mostly comes down to team size and the need to make money.

On a passion project you're not getting paid which means expectations are low, you're not obliged to do anything and you're basically free to work on what you want, so you pick things which are interesting and impactful for you e.g. exploring a new technology or tool you're interested in.

As soon as there's money involved you introduce expectation from the person paying you, which means trying something novel is harder because there's a good chance it'll fail.

This is all just a long way of saying that when there's money involved I think people prefer an outcome which is predictable, even if there's a potentially much better solution but it comes with more risk.

actionfromafar
0 replies
23h6m

Same.

JohnFen
0 replies
21h28m

None of the best or most interesting work I've done has been for pay.

Night_Thastus
16 replies
1d

This is the sort of thing I would love to do to my music player of choice, Musicbee.

You know, if it was open source! :(

The creator barely touches it anymore, and it's completely free and always has been so I do not understand why it isn't open source.

There are so many little nagging issues, little bits and bobs that are broken or slow or just weird that I would absolutely love fixing up in my spare time.

And no, transitioning at this point to something else like FooBar would be way too much work. And I tried HQPlayer, its UI/UX is too terrible for me to let it slide.

hombre_fatal
8 replies
23h0m

I do not understand why it isn't open source.

Because your software project then becomes a people management project.

Sabinus
3 replies
16h20m

It doesn't have to be. Just say you're not accepting PRs. Let people fork and develop their own implementations.

whywhywhywhy
1 replies
10h0m

Let people fork and develop their own implementations

Then a fork gets made and if they improve it massively then half your users end up using it and the other half ends up bugging you to add the improvements into your version and it's no longer your project.

I mean I agree too it should be open source if the dev doesn't really update it anymore but I can also completely see why they wouldn't want to do that.

vonjuice
0 replies
2h27m

In that case the person would be a bottleneck towards improving a piece of software that would benefit a lot of people. Sure, you're within your right to do that, but really?

jraph
0 replies
13h54m

Yep, the SQLite way.

And if you really like something about someone else's fork, you can even upstream stuff from it yourself (which, for clarity, SQLite won't do, but you can).

proaralyst
2 replies
22h3m

You can have open source without open contributions, eg NetHack and (I think) Sqlite

cowsandmilk
1 replies
19h23m

SQLite has other contributors, just a very curated list of who can contribute.

https://sqlite.org/src/reports

lupusreal
0 replies
10h20m

The curated list can be zero. You can just dump source code onto the net and then ignore everybody who messages you about it. This is perfectly valid in open source.

Aeolun
0 replies
20h19m

I have many open source things that are essentially me looking at the PR queue once every 3 months. I don’t think thats anywhere close to people management.

There’s nothing about open source code that requires you to do anything at all with it.

snvzz
1 replies
19h28m

Here's an alternative: Rewrite the whole thing as open source.

nox101
0 replies
17h47m

I actually thought about something like this as both a way to try coding with AI help and to learn some mobile dev. I'm not happy with the default music player on iOS, nor with the one I'm using. I'm only guessing that using ChatGPT and/or CoPilot I could at least get something started pretty quick.

Step 1: A mobile app plays a music file

Step 2: Play, Pause, FF, Rew

Step 3: A list of songs to select from

Step 4: Show album cover

..etc..

snitch182
1 replies
1d

Writing the code for a open source project demands a lot more perfection than people realize. It is a lot more work than getting a programm just to work nicely.

Night_Thastus
0 replies
1d

Up to a point, I agree. For larger changes, it would require community outreach, internal communication with other devs, testing, feedback, etc.

But there are also a lot of small "easy wins" that require none of that to be a good addition to the code.

vonjuice
0 replies
2h29m

Musicbee is the only piece of software that I consistently missed when I stopped using windows.

If it was maintained I might consider using wine for it but as it is I completely gave up on the idea of a music manager, I just use mpv to play whatever album I listen to (and I always listen to albums, get out of here with your playlists).

toyg
0 replies
7h21m

Did you try contacting him? Without bullying him about GitHub or anything, just try to persuade him to let you look at the code.

striking
0 replies
22h19m

Reply #19 from Steven on: May 23, 2013, 03:28:39 PM

As i have stated several times i have no near term plans to open source MusicBee. When i feel i dont want to keep the project going then making the source code available will be one of the options i would consider. This is just a hobby project done because i enjoy programming and will never be something done in a professional manner. I spend enough time managing people in my day job and dont want to have to do that with this!

I really have no idea why this should be a surprise as i have never pretended otherwise.

Anyone who has concerns around this (including me "being run over by a bus") really should look elsewhere and use another app so your concerns are addressed.

Here's a link to help you out:

http://alternativeto.net/software/musicbee/

https://web.archive.org/web/20170721042120/https://getmusicb...

unwind
7 replies
1d

Very impressive, and it's of course quite clear that the OP didn't just walk off the street into Blender HQ. Many years of experience at Unity is probably quite helpful when it comes to knowing the domain. :)

This change [1] was my favorite, optimizing an image processing step by removing lots (and I do mean lots) of table-based "optimizations" and replacing them with just straight up floating point calculation, and making it ~4X faster on the OP's machine. Fantastic!

[1]: https://projects.blender.org/blender/blender/pulls/115801/fi...

nnevatie
3 replies
14h37m

Yeah a nice optimization, but is "return c * c;" really a good approximation of sRGB gamma?

aras_p
2 replies
13h15m

No it's not. But, the previous code was already effectively doing "c * c" for the last 15 years. So for now, just keep doing that, a bit faster.

A more proper way would be to do proper color-space aware luma calculation. Which under default settings is sRGB indeed, but not necessarily so (VSE can be set to operate in some other color space). Someday!

nnevatie
1 replies
11h22m

Yes, it's weird they used 2.0 in the original code too. Doing proper gamma for any regular space (sRGB, YUV Rec.705, etc.) isn't actually that heavy (even without LUTs).

aras_p
0 replies
11h17m

My guess is that the code was written by someone in 1995 back when no one understood color spaces, or something (it's hard to track down who and when wrote it exactly due to all file moves and refactors etc.)

celegans25
2 replies
21h4m

and replacing them with just straight up floating point calculation Not only that, the diff replaces 100-150 lines of code with 3. That's the kind of pull request I can only dream of making
mwkaufma
1 replies
14h44m

Hardcoding gamma=2 is doing the heavy lifting, though.

olddustytrail
0 replies
1m

Gamma always equals 2, so it's a natural optimization. Assuming of course you are 0 indexing the alphabet.

earthwalker99
4 replies
20h57m

It would probably be very tough to make any part of the Blender 3D program any faster. It's already by far the fastest booting 3D application, and the one with the snappiest GUI. Houdini comes in 2nd, but it's not a close 2nd.

jtxt
1 replies
11h22m

Animation tools have a ton of room for improvement, that they're working on. ...and the move to Vulcan will help a ton it looks like.

earthwalker99
0 replies
5h48m

You seem to be arguing with somebody else. I didn't say anything that disagrees with your statement.

rcxdude
0 replies
2h31m

Having looked at some parts of the code, I think there's still a lot of room for improvement. There is a suprising amount of code which is similar to mentioned in the article where the approach is very complex in the name of optimisation but it's about as likely that it's making things slower (texture painting, for example, does something like 3 pointer indirections per pixel! And does chug a lot on my PC).

UncleEntity
0 replies
5h2m

You'd be surprised, there's a lot of low-hanging fruit in there.

Years ago I was poking at the 'blobby' generator code and managed to make it a lot slower by adding multi-threading -- once it overcame the overhead of multi-threading then it ran faster but, IIRC, that was not really within the typical use case so I just gave up. Undoubtedly I made some mistakes...

ykl
3 replies
1d

Aras just going around and dropping into various open source graphics projects to produce massive speedups and improvements and then going onto some other random graphics project to the same is my favorite trend of the past few years.

jimmySixDOF
1 replies
15h59m

He has been 'playing' around with Gaussian Splats with amazing results too !!

https://github.com/aras-p/UnityGaussianSplatting

kevthecoder
0 replies
11h29m

He gave an interesting talk about his gaussian splatting work only a couple of days ago in Metaverse Standards Forum.

Hopefully the video of the talk will arrive in the list of presentations soon - https://metaverse-standards.org/presentations-videos/.

bhewes
0 replies
17h47m

YKL you have a nice body of work.

vsviridov
3 replies
1d

VSE needs so much love... For my podcast I wanted to use all open-source tools, but rendering sequences of mp4 with some chromakey in Blender took 10 hours for 1.5 hour video. I ended up switching to the free version of DaVinci Resolve

unsignedint
0 replies
1d

Blender’s VSE currently lacks GPU acceleration for video rendering, which results in the CPU handling the entire workload. Additionally, it performs a full frame-by-frame render even when re-encoding isn’t necessary, unlike DaVinci Resolve which can bypass this process. Enhancements in this area would be greatly beneficial for Blender’s performance and efficiency.

mattl
0 replies
22h37m

Used VSE for a project. It was painful but we got something out of it. It was certainly the best free software video editor at the time.

Working on a new version now, using Final Cut Pro.

AkBKukU
0 replies
22h36m

One problem is Blender's multithreaded rendering doesn't scale well to VSE work because it focuses on breaking up each frame and as a result doesn't well utilize multiple cores. I've experimented with making a plugin [1] in the past to start multiple render jobs different points in the timeline in separate processes and was able to massively speed up renders.

I have since switched to Resolve on linux as well but due to using Blackmagic cameras that work better with it.

[1] https://github.com/AkBKukU/blenderSubprocessRender

planede
3 replies
8h26m

About transparency and blending: Please use premultiplied alpha for the arithmetic (and a linear colorspace, but hopefully that already happens).

irdc
0 replies
8h20m

I’m sure patches are welcome :)

aras_p
0 replies
5h10m

Yes, within VSE (and elsewhere in Blender) almost (*) everything uses premultiplied alpha, directly or indirectly. 8bit/channel images are stored non-premultiplied, but any math done on them does premultiplication, the math, then reverses back into un-premultiplied form (reason being, that w/ premultiplication 8bit/channel is not enough precision). Float/channel images are always premultiplied.

(*) I have found one or two VSE effects that do not do the correct premultiplication within their calculations. Someone(tm) should fix them at some point. But also a good question, whether there should be an option to keep previous "broken" behavior.

wrt color spaces, VSE by default does not do blending in linear color space. Default is sRGB, and variuous blending operations are done directly on sRGB values, i.e. "what four decades of photoshop has taught us to accept as expected results". VSE can be set to operate in some other color space, optionally.

wrt filtering of images, the pixel values are "just" filtered without color space awareness. So for 8bit/channel images (usually sRGB), they get "slightly incorrectly" filtered. If you want proper linear space filtering, can force images to be to floating point (any floating point images wihtin Blender are in "scene linear").

MauranKilom
0 replies
7h36m

At least the image scaling does not appear to be in linear? Going by the notes in [0]:

    Gimp and stb_image_resize results are subtly different from others, even for Bilinear. Looks like they do convert source sRGB image to linear, do filtering there, and convert back to sRGB.
You can definitely see that as a problem with bright lines (e.g. collar highlight in einar*.png) being darker in the upscaled Blender versions.

[0]: https://aras-p.info/img/misc/upsample_filter_comp_2024/

jokoon
3 replies
23h52m

how didn't I know about that?

most serious video editors are either expensive, unusable or bloated

nox101
2 replies
17h46m

DaVinci Resolve is free at its basic level

https://www.blackmagicdesign.com/products/davinciresolve

Maybe it's one or both of the other two

pilaf
1 replies
13h26m

As someone who's used to using open source video editors which tend to feel pretty lightweight (Shotcut, Kdenlive, Olive, even Blender), but who sometimes needs slightly more advanced features than those can offer, my initial impression of DaVinci Resolve was definitely one of pure bloat. It put me off of it enough to not try it again, although I may give it another chance at some point.

I wonder if someone coming from the Adobe suite would feel the same way or if that bloat is normalized in the industry.

kuschku
0 replies
8h13m

Compared to the Adobe suite, Resolve is considered incredibly lightweight and oversimplified. And don't get me started on AVID^^

whoswho
2 replies
16h27m

Please rename the title so it’s more coherent, thank you.

planckscnst
0 replies
16h25m

I Accidentally [started working on] Blender VSE

aezart
0 replies
5h1m

It's a reference to an old 4chan post I believe.

"I accidentally a coca cola bottle"

"accidentally what?"

"a coca cola bottle"

pugworthy
2 replies
17h9m

Meta question - help me understand how to parse the title of this post? Is this memesque phrasing? Old people want to know.

netule
0 replies
17h1m
lkuty
0 replies
14h45m

You might want to look at: https://news.ycombinator.com/item?id=38273787 I asked the same question a few time ago.

charcircuit
2 replies
1d

Did you know that Blender has a suite of video editing tools? Yeah, me neither :)

I figure most people who use blender for animation know about it considering that's the basic way you turn your rendered frames into a video file.

beering
1 replies
23h56m

You can render frames directly to a video file (ffmpeg option), which I suspect a lot of beginners or casual users do. You can also use the compositor to turn a prerendered frame sequence into a video file. Lastly I suspect most users prefer video editing in another program such as Resolve. I get the inpression the VSE is nit used much because it occupies a narrow space of “need some basic cutting abilities but no transforms, titles, or effects”. Hopefully someone will continue the work of improving transforms and effects and even add 3 point editing someday

ginnungagap
0 replies
22h28m

Beginners do that exactly until the first time they have a render crash halfway through, then they learn about rendering each frame as an image (yes I learned this lesson the hard way)

scotty79
0 replies
8h19m

When I used VSE some years ago there was some weird behavior around reversing a fragment of a clip on the timeline.

I placed a clip, cropped it down to interesting fragment but when I tried to make it play backwards another fragment of the clip showed. Like if the reverse operation was performed before the cropping, not after.

I even thought about investigating it but never got around to it. Maybe it's fixed already by someone else?

ncr100
0 replies
4h10m

<3

Oh f** it is Aras! He is great. F**ing Great Aras is his fullname, IIRC.

Graphics coding and more, plus seems to have good "flow" when coding.

Reading this is engaging. And entertaining. It's like listening to a person speak. Check out this random "However!":

I removed that “blend into transparency” from bilinear filtering code that is used by VSE. However! A side effect of this transparency thing, is that if you do not scale your image but only rotate it, the edge does get some sort of anti-aliasing. Which it would be losing now, if just removing that from bilinear.

EDIT: The end bit discussing 30% productivity at a standard corporation when burdened with standard cultural / process expectations, resonates. The cost of keeping employees doing "their job" truly includes a massive reduction in productivity.

I hope that as we continue to observe cases like this, we as technologists, learn better how to organize groups of people and activity .. and believe this learning .. to actually start integrating this kind of high-productivity / engagement thinking and worker organizing.

As reading the doc suggests, it could make working in tech more fun .. almost as fun as playing in tech.

harvie
0 replies
9h58m

Does it work with variable FPS videos now? Years ago i had issues geting audio and video to sync on videos made by smartphone which seemed to adaptively change FPS based on how much motion was in a scene. I needed to resample to constant FPS, which i was not happy about.

forevernoob
0 replies
19h10m

Really hoping for some nice performance improvements because my first time experience with VSE hasn't been that swell so far: https://old.reddit.com/r/blender/comments/186bbll/my_experie...

ezekiel68
0 replies
7h56m

What an awesome testament to the benefit of experienced software development to any field, regardless of subject matter expertise. This is an inspiring account.

cuddlyogre
0 replies
7h18m

Awesome! I've used the vse pretty regularly for years and every time it gets an update I'm happy.

countrymile
0 replies
10h59m

this is great news, thank you so much for this. I've been using the VSE with school children since 2012 and the speed has always been a huge issue! But we've stuck with it as it runs off a USB / shared drive and avoids the hassle of microsofts stuff

blackle
0 replies
23h28m

I've used blender VSE for all my video editing since 2020 and it's so awesome to see it improve. I already considered it to be the best video editor on linux due to its stability and featureset (you get to use all of blender's existing animation tools!)

barkingcat
0 replies
15h36m

very inspirational post. thanks for making this software better!

artifact_44
0 replies
8h56m

As a blender user, I am soooo grateful to OP. I think blender is one of if not the most important/impressive open project ever.

PcChip
0 replies
5h59m

on the audio resampling part - i would recommend giving the user a choice if possible. Just because the "medium" setting sounds the same to you doesn't mean it would sound the same to everyone!

MauranKilom
0 replies
7h10m

FYI on https://projects.blender.org/blender/blender/pulls/116089: `inline` first and foremost affects the One Definition Rule. Very briefly put: If you have a function defined (!) in a header (and call it in different .cc files), you will get linker errors unless you mark it as inline.

The effect on the actual inlining optimization could be anything between "none", "the compiler might weigh it differently purely due to linkage" and "it is actually taken as a hint", plus a similar set of considerations for link-time optimization. A much stronger inlining signal to the compiler (specifically for functions that are only used in the file they are defined in) is to define them in an anonymous namespace.

The original intent behind marking the function `inline` could reasonably have been an attempt at actually achieving inlining. A measurable benefit is not obvious (but also not impossible).

IshKebab
0 replies
21h57m

Ah I always wondered why it was so much slower than closed source video editors. Didn't realise it is doing everything on the CPU!