Re:Show HN: I created an After Effects alternative
by bluelightning2k on Monday July 01, 2024 @06:48AM
(#40844483)
As a developer it's rare to see something which leaves me feeling "how would you even build something like that..." but this is one of those. Huge cudos for even attempting and following through with something like this!
[ Parent
| on HN ]
Re:Show HN: I created an After Effects alternative
by suyash on Monday July 01, 2024 @09:46AM
(#40845822)
You start by building your knowledge around computer graphics and modern web development, basically WebGL and modern web APIs have made doing sophisticated graphic applications on the browser. Only limitation right now I see is single threaded limitation on the browser.
Re:Show HN: I created an After Effects alternative
by ptsd_dalmatian on Monday July 01, 2024 @10:02AM
(#40845935)
What about workers? Isn’t it basically the same as offloading computation heavy work to separate thread? Also, we have WebAssembly. Afaik, js threads can now share memory using SharedArrayBuffers. So I don’t think we have this single thread limitation anymore :)
Re:Show HN: I created an After Effects alternative
by noduerme on Monday July 01, 2024 @06:55PM
(#40851725)
Idk about this specific app, but the main problem with workers is that any data their working on needs to be copied in or side-loaded into them once they spin up. I imagine for huge video files, having each worker load up a separate copy could be a bottleneck.
Re:Show HN: I created an After Effects alternative
by LoganDark on Monday July 01, 2024 @08:59PM
(#40852561)
> the main problem with workers is that any data their working on needs to be copied in or side-loaded into them once they spin up
Isn't this no longer an issue thanks to SharedArrayBuffer?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
I believe the ONNX Runtime uses this for multithreading on the web, see https://github.com/nagadomi/nunif/issues/34
Re:Show HN: I created an After Effects alternative
by noduerme on Monday July 01, 2024 @11:00PM
(#40853182)
Ooh. Interesting. I wrote my last worker-based app a couple years ago for chunking and crunching some large datasets. I'll have to give this a go one weekend.
Re:Show HN: I created an After Effects alternative
by clementpiki on Tuesday July 02, 2024 @04:15PM
(#40860054)
Indeed, Pikimov is using SharedArrayBuffers to decode video frames outside of the main thread
Re:Show HN: I created an After Effects alternative
by mclightning on Monday July 01, 2024 @01:07PM
(#40847820)
you follow HN, and some guy posts a video editing js library, another guy builds an app taking that library further, you get inspired and build something even bigger.
Re:Show HN: I created an After Effects alternative
by earthtograndma on Monday July 01, 2024 @06:44PM
(#40851635)
I notice it's written in Ember, which is billed as the framework for ambitious web developers -- in this case, it definitely checks out.
Re:Show HN: I created an After Effects alternative
by nullvoxpopuli on Monday July 01, 2024 @08:01PM
(#40852176)
YAAAAAS ember is so good
Re:Show HN: I created an After Effects alternative
by swyx on Monday July 01, 2024 @06:47PM
(#40851655)
yeah i'm gonna need a TLDR of the major moving parts. how do you even do video editing in the browser? is there a "ffmpeg in the browser"? is that the basic building block?
Re:Show HN: I created an After Effects alternative
by pilaf on Monday July 01, 2024 @10:52PM
(#40853144)
> is there a "ffmpeg in the browser"?
I don't know if this project uses it, but there's ffmpeg.wasm [1].
Re:Show HN: I created an After Effects alternative
by padenot on Tuesday July 02, 2024 @04:27AM
(#40854629)
We've been working on the Web Codecs API for a few years now. It only handles encoding and decoding media codecs, ffmpeg does much more (container handling, filters and everything needed really).
Web Codecs can take a compressed media packet and get you the decoded image or audio buffer it corresponds to. Conversely it can take audio or images with timestamps and get you a series of encoded media packets you can then containerize (we say mux) and get you e.g. an mp4 file.