5 ms·
Is there any good video codec that the library is as small or not much bigger as Theora and that has no patent/license issue? I tried to use VP9 in the past bu
by a1o 3y ago
Is there any good video codec that the library is as small or not much bigger as Theora and that has no patent/license issue?
I tried to use VP9 in the past but it's like 20-40MBs a dll. The lowest I could find was dav1d and it's still around 4MB for the library dll and encoding AV1 and getting good compression rate was not trivial.
- Uberzi 3y agoHonest question. In which scenario do you care so much about the size of the DLL , these days ?
- belltaco 3y agoMaybe to encode/decode video on a Mars rover.
- tedunangst 3y agoYour primary concern is almost certainly power draw, so you're using a hardware encoder. The weight of a few more megabytes ROM would be inconsequential.
- mort96 3y agoI mean the Ingenuity helicopter runs Linux, which seems to suggest that a few megabytes here and there isn't such a big deal; whatever the constraints of mars are, they seem to have a fair amount of onboard storage. I can't imagine that the improved video compression of AV1 compared to Theora or H.264 wouldn't outweigh the cost of that 4MB extra storage space.
- extraduder_ire 3y agoThat hardware selection was locked-in years ago, I think that's the major hold up with ginny in particular. I don't think even the next helicopter they're building now will be able to get hardware AV1 encoding. Would be moderately funny if they could eek better performance out of ffmpeg with remote updates.
- lproven 3y agoJust FWIW... * eke out -- extend something by stretching it or using less. * eek -- a noise of surprise or fear, stereotypically used upon seeing mice. https://www.dictionary.com/browse/eke--out https://www.dictionary.com/browse/eke--out
- ur-whale 3y agoEmbedded would be my guess.
- nicman23 3y agoan embedded machine that 1. has a software decoder, 2. has presumably some ram for that decode and 3. cant afford like 128megs flash on its design for its rom?
- not_your_vase 3y agoEmbedded machine with big enough CPU for video encoding, but not having 10-20 MB flash? Doesn't sound too plausible.
- versteegen 3y agoWell I'm looking for the same thing, for a lightweight 2D game engine supporting decades old hardware (the game player is 2MB zipped, 1MB for a minimised build). Animations are likely to be low resolution and seconds long, so a huge decoding library would be pointless. Sure, most users don't care about file sizes, but some (including me) still do. Especially for the wasm and Win95 ports. I considered libtheora, the library size is good but the compression/visual quality is awful compared to the alternatives.
- mkl 3y agoDoes that hardware have the CPU power for a recent video codec? It doesn't sound like it.
- a1o 3y agoSame use-case, we used to rely on system libraries but the video codec support is all over the place on each platform, and developers would test in their main platform and ship to others without fully testing and have a broken video near the end of their games because WMV runs on Windows but not on macOS, or the audio of the video was a variant of AAC that didn't run in the web port in some places and a bunch of other random differences between platforms to the point the only reliable way was to cut system video libraries and make sure all platforms have the exact same codecd. But then it turns out there isn't something better than Theora or mpg-1 without making the game player have 10x or more in size - the game player is around 3MB unzipped.
- p1mrx 3y agoHow big is the VP8 codec? Did you try building libvpx with --disable-vp9?
- jauntywundrkind 3y agoThis feels like an absurd ask. Who cares how big the codec is? If you watch a 480p video for 10 minutes, won't that have overwhelmingly dwarfed 20MB or whatever of savings? This feels like a gross gross misoptimization that is actively harmful to 99.999999999% of user experiences.
- ur-whale 3y agoesp32 with encoded video being streamed out to Wifi?
- jauntywundrkind 3y agoThere's mjpeg for that. Is there any evidence anyone has streamed to such a platform over real video codecs? No there's not. People just make up endless shit to justify anti use cases.
- rasz 3y agoYou wont be encoding any video with algorithm more computationally intensive than jpeg on esp32, and even mjpeg will be excruciatingly slow.
- userbinator 3y agoJust because DVDs are several GB doesn't mean it's acceptable for the decoder to be a few hundred MB. ...and in fact it doesn't need to be, as I can say so from having written an MPEG-2 (+MPEG-1) decoder myself, whose binary turned out to be less than 16KB. When one hears about a codec being dozens of MB, the natural instinct should be "for what?" and not "who cares?" The latter attitude is responsible for why software has gotten so much more inefficient, and serves only to line the pockets of hardware manufacturers.
- brigade 3y agoStrip out debug symbols if you care about size? There’s no reason either of those libraries should be that large unless you’re including them.
- amlib 3y agoMaybe the best option will be just waiting for h264 patents to expire, just like happened with mp3s a while ago. On that note, does anyone knows when h264 expires? Or it's earlier siblings like avc? It also has the benefit of having vast access to an array of hardware decoders/encoders, although those might have their own can of IP worms.
- saxonww 3y ago> does anyone knows when h264 expires I was wondering about this too. https://www.osnews.com/story/24954/us-patent-expiration-for-mp3-mpeg-2-h264/ https://www.osnews.com/story/24954/us-patent-expiration-for-... seems to think 12/2027. Would it be surprising if H.264 was replaced by something else by that point? We have multiple subsequent standards, and it seems like everyone producing or providing content would want improved codecs by then.
- justinclift 3y ago> something else Isn't AV1 the "preferred" option as a replacement, at least by those who are looking for something high quality and without patents encumbrance?
- wahern 3y agoAccording to Wikipedia it seems Safari is only now starting to support it, so there's still a large segment of the Apple market lacking support.
- kmeisthax 3y agoThe problem is that H.265's patent owners didn't form a single patent pool, so the licensing is a nightmare, with three separate pools, patent holders that never joined a pool, and lots of double-billing all over the place. H.266 isn't much better. So a lot of people just stuck with H.264 as the "good enough" codec as a result. The only people not using it were organizations who couldn't or wouldn't pay for any patented invention (e.g. most of the web standards people, Wikimedia, etc), who stuck with Theora and later VP8. AV1 (itself derived from the On2 VP8 and VP9 formats) is supposed to be the answer to H.265's patent shenanigans, but support is very slow to manifest. Like, Apple only added it to the iPhone 15 - as in, the one that just came out a month ago. Implementations of AV1 in discrete GPUs similarly only landed last year with Nvidia 40 series, Intel Arc, and Radeon 7000 series cards.