Show HN: LosslessCut – Cross-platform GUI tool for fast, lossless video cutting
github.com
github.com
Then I saw that this bundles its own piece of Chromium and ffmpeg and is ~70 MB in size. Something is seriously wrong with today's app development ecosystem if it takes 70 MB, even when I already have both Chromium and ffmpeg on my system.
EDIT: On the other end is QtAV, a cross-platform multimedia player and SDK which took me only 1 MB of network download. It uses Qt and ffmpeg, both of which I already have on my system, so it doesn't have to redundantly bundle anything.
On OSes without Qt and ffmpeg in their package repos (OS X and Windows), the players are ~ 20 MBs in size. So even if one argues "cost of cross-platform compatibility", it still doesn't make sense to bundle the entirety of a web browser for something as simple as this.
Perhaps you're looking at player+SDK. The player alone[0] is 21MB
> ffmpeg is actually bundled twice in LosslessCut. once in Electron(Chromium) and once as a CLI
If you use a custom build of Electron, you can at least cut down ffmpeg to just one version. Like the way my distro does it with Chromium and ffmpeg.
----
0: https://www.microsoft.com/en-us/store/p/qtav-video-player/9n...
I have the same problem with lots of other open source video tools. I wish it was easier to use ffmpeg via library and then more people might do it.
I meant using the same version of ffmpeg as the shared lib linked with Electron and linked with the binary.
So, your bundle would have libavutil.so somewhere in a `lib/` folder, and in the `bin/` folder you'd have `ffmpeg` and `electron` (or equivalent) both dynamically linked against the `lib/libavutil.so`.
I can't tell you the number of times I've ended up cursing the IT gods while sorting out some hellish dependency / shared-libary-versioning fiasco (and apps that use ffmpeg and other media libraries are especially prone to this), and wished I could have just gotten a statically-compiled binary off of the developer's CI server instead.
Most of the arguments for shared libraries seem like a misplaced optimization on modern systems (e.g. saves disk space, saves distribution bandwidth), or don't really shake out in reality (e.g. "only have one copy of a crypto library so it's easy to update!") and just lead to a proliferation of library versions on the same system.
Electron apps don't get downloaded. One app is one less Netflix video I can watch.
Bandwidth can be cheap, depending on where you are, but giant applications just sort of smell of "get it working now" instead of "make sure it will give the user a good experience".
And for that, you get one hell of a text/layout engine, hardware accelerated 2D/3D graphics, integrated IDE, one the fastest interpreted runtimes around, which happens to be the most popular programing language…
All Open Source, cross platform.
Yeah, insulting indeed. Who needs those damn Electron apps.
Maybe tangential but I think V8's speed has become somewhat mythologized. In AWFY [0] benchmarks I've seen JSC routinely come in 30-50% faster.
All so you can provide a graphical interface for two ffmpeg flags.
"everything old becomes new again"
reminds me also of the hot new trend of chat based interfaces. (hmmm, pretty sure that was our default computer interface back in 60's/70's/80's)
I find most Electron apps to be well designed, run quickly, can be optimized for efficient power use, and are hassle-free to download and install. They also do not require a lot of the developers time to make something that looks good and builds for my operating system, so they can spend that time on more important things.
I love the culture and ecosystem Electron has allowed to flourish. Anybody with some basic knowledge of installing software packages and some HTML and JavaScript can make an Electron program and share it with their friends. I think that's really cool. It reminds me of my beginning days as a programmer, when I could write a few lines of code (I only knew how to write a few!) and make something interesting that I could show other people. Today I have a career out of that.
Finally, I really do think that your comment is an insult to computer science. Our ability to leverage abstraction so that programming useful things is accessible to a huge number of people is very cool to me. If Electron was wiped off of the face of the earth and never existed, I'd be rather sad at the loss. There are kids out there learning to program using Electron. There are people like me who just kinda prefer a GUI interface to a command line one depending on what they're working with. There is so much good introduced into the world by this thing, and not really any evil.
Your comment, in contrast, seems intended to piss all over a great many peoples hard work. If I was an Electron developer or a Chromium developer, I'd be pretty hurt by this. If I was that person, I'd be thinking every day about how code I wrote was being used to deliver cool applications to folks who might not otherwise have it.
You've not even found exactly one thing to criticize. I don't know what about it pissed you off, because you didn't tell me. I don't know exactly why Electron apps annoy you—they don't annoy me (after all, I can just choose not to use them if I desire). You've expressed hate for a culture and ecosystem that seems to be not your own, but you've given not a hint of an argument as to why that's such a bad thing. Finally, you presume to speak for all of computer scientists and feel INSULTED when the developer did nothing to you to harm you or offend you.
I'm shocked and chilled to the core that a comment of such pure hatred is allowed to just sit here. It must have taken you all of 3 minutes to write that comment and ruin my morning, not to speak of some others who might read this.
As long as we're doing personal experiences, I find most Electron apps to be:
1. Poorly designed. Flow of keyboard control is usually all over the place, as if the developer completely skipped the idea of making the app keyboard accessible. This is the case with even big-name Electron apps with a lot of development effort behind them, like Atom. Sure, it has keyboard shortcuts, for some actions, but that's it. Half the time focus ends up someplace I didn't expect it to, and I have to use a mouse-click to focus. Half of that time, it's the Ctrl-Shift-P popup that misses the keyboard focus.
2. Run slowly. Slack, Spotify, Atom. All run slowly on my system. Not slowly in the sense they grind to a halt and become unusable (well, Atom does), but slowly compared to native apps. It's noticeable, it's annoying; and in the case of Atom, it's frustrating.
3. Suck battery OS X's stats are enough to back this up. Chrome is a power hog, and every Electron app is running its own copy of Chromium. Most apps don't bother to do anything towards respecting power efficiency, since it's so easy to just cobble up and app and throw it up. Slack and Atom again, are the examples I chose for this.
VS Code is the only browser-embedded app I know that manages to not be too slow and somewhat respect power consumption. I reckon similar feats cannot be pulled off by a developer spending little time on the code, the kind of developers you talk about.
> Anybody with some basic knowledge of installing software packages and some HTML and JavaScript can make an Electron program and share it with their friends.
That is exactly the kind of thing the web evolved to support. Unfortunately, Electron takes that idea and turns it on its head. While the web didn't require someone to download an entire browser for every individual site, Electron does for every app. That, is my problem with this model (I don't know about your parent commenter).
I used to think this way about Electron as well, but then I tried bundling up a ~30 lines long Python/NumPy+SciPy script for standalone use on Windows. pyinstaller produced a 300mb blob; the smallest I could get the whole thing was around 100mb.
There's the difference. In your case, you were bundling for a system that didn't already have Python+NumPy+SciPy. In my case, I already have Chromium/Chrome and ffmpeg on my system.
I don't have such a source file handy to reproduce, but if you try enough ISO MP4 containers with H246, you will hit one where this is the case.
Is `-t` different from `-to` which I've been using?
Any idea what the exact warning text is?