Hacker News new | past | comments | ask | show | jobs | submit login

What is the point of making custom codecs for Bink, instead of using state of the art free codecs?



(I don't work in the industry, but am an interested amateur)

[Edit- I may have misunderstood your question, but I'll leave my reply anyway.]

Here are some possible reasons you might use Bink instead of a free codec:

- Bink video has been around for a long time as a product, even though the codec has been updated (probably multiple times, I don't know). There weren't always good-enough free codecs, and if you have prior experience integrating Bink with your stuff then you may prefer to stick to something you know is good even if it costs money.

- RAD focuses on producing libraries that are very easy to drop in, specifically in the context of games. They know how game code is written and structured. They know game developers want to be able to integrate video in a way that works -- and performs reliably -- within an existing game engine that does a lot of custom management of textures/buffers/graphics memory. State of the art free codecs don't necessarily have free libraries that are actually high performance and easy to integrate within a game context.

- Your state of the art free codec might work great on a modern smartphone or PC, but good luck getting it to work on a Nintendo Switch or whatever weird console you're targeting. Bink is available for whatever game-specific platform hardware you're targeting.


> Your state of the art free codec might work great on a modern smartphone or PC, but good luck getting it to work on a Nintendo Switch or whatever weird console you're targeting. Bink is available for whatever game-specific platform hardware you're targeting.

So basically this means something like Bink has limited application time wise, and going forward it will become more and more obsolete because free codecs will cover all needed use cases sufficiently.


Given that bink has been around for ages, it almost always finds a niche of decoding stuff fast for video games.

As a game you will always want more cycles for level loading or whatever else happens in background as you also play that video so bink-like specialized and super lean and fast library will always have a use in that scenario.

Gstreamer is a pain to set up, and when you do set it up it uses tons of threads, ffmpeg isn't nicer either.


> Given that bink has been around for ages, it almost always finds a niche of decoding stuff fast for video games.

Well, that's exactly the point. It's been around for dark ages. Today things are different.

For new codecs like AV1 there are new and efficient decoders too and they are only getting better. It's not all limited to ffmpeg which is using external decoders anyway, it doesn't decode things itself.


As I said, in games there's always a need for fast, platform agnostic (and super low overhead API that just works). And I mean truly platform agnostic, PS4, PS5, Switch, etc. Those are new platforms that may or may not have ports of whatever else is "available" and "fast".

Bink fits the bill today and has fit the bill since forever. I don't see any of the alternatives having similar performance characteristics, ease of integration or availability on platforms that are more or less closed and there's no indication of them being open in the future.

In adition to that the switch cost is quite high so any other alternative has to be good, and I haven't yet seen a contender.


Consoles held progress back for decades, but even they can't stop it. So I see Bink becoming obsolete, I don't really see any major arguments for it. Just because it fit the bill before doesn't say anything about the future.


The "we can use worse software now that hardware allows us to do it" is why software is sunk so low these days.

We use Bink because it is better then the open-source alternatives, and that's it.


Yeah, those Switch sales are tanking, while PS 5 and XBox X/S pile unsold on the store shelves.

Ah, you mean that 1% market share on Steam, sorry.


Not sure about Switch, but recent AMD based consoles should have good video decoding capabilities. You can do fine without Bink there.

So instead of trolling again, analyze where it's heading. I don't see any reason why Bink can't be replaced by free codecs.


:D It's heading towards what you predict at the speed we're heading to be in the year of linux on desktop.

PS4/XB1 have been enormously more powerful than PS3/Xb360 and yet almost all games on those consoles that play a video do it using Bink even if both consoles have that AMD hardware you mention.

The current generation PS5, etc is way more powerful than PS4, and yet bink still seems to still dominate in the limited titles that we can see.


That's not a technical problem, sounds like incumbent problem to me. And this also negates your argument that Bink is needed because hardware can't support other codecs. Apparently it's powerful and it can? So why even bring that as a reason.


Because what matters is what comes on the SDK and AAA game engines, regardless of what AMD supports.

I can call Epic, Nintendo, Sony, Microsoft, Apple, Google when something doesn't work as expected, free codecs dumped on github, who knows.


It's a combination of patents, features, target devices, and marketing proposition. There are many devices with hardware decoders that work great for watching a TV show, but if you're using video for interactive assets as games do, you probably have latency targets to hit, you might want seek-through performance, you may want transparencies, and so on. And RAD has long had a lock on really supporting the platforms game devs are using, so if you use their stack instead of bodging together a video solution, you're saving time overall.


The free codecs might not necessarily be designed or optimized for the platform you're working on. Porting an open-source player for your particular situation might cost more in developer time than simply licensing Bink. Bink's developers are also going to be more conscious of the technical limitations of a game console that you might be running into (eg: hard thread/socket/resource limits) compared to a more general-purpose codec.

This becomes a more notable tradeoff for a studio looking to get funding for a particular milestone from a publisher. Your technical leads (and content creators) likely also cut their teeth on games that integrated it, so it has existing operational momentum too.


> The free codecs might not necessarily be designed or optimized for the platform you're working on. Porting an open-source player for your particular situation might cost more in developer time than simply licensing Bink.

This sounds like an artifact of the past. Today there aren't that many hardware platforms that free codecs don't already cover properly. And I expect with something like push by AOM this will become even less and less of an issue in the future. Codecs are becoming more of a commodity in this sense so something like Bink I expect will be less and less relevant.


Maybe. Real time and production often has special needs general purpose tools don't cover. A lot of delivery codecs focus on things like lossy compression and buffering. I know from video production and computer graphics, delivery codecs are miserable to work with for reasons such as: not allowing arbitrary channels (if you only need 1 channel or maybe you need 5 for an alpha and bump map), playing in reverse, cutting in on arbitrary frames, different compression on each channel (lossy rgb, but lossless alpha), etc. My understanding is that Bink is often used for realtime playback of multiple elements integrated with the 3d environment (triggered explosions, HUD elements, streaming textures) so it needs to be performant, handle many simultaneously, and integrated with the engine since you'd be applying transforms and LUTs.

It'll be nice if there are great, free, off the shelf codecs and tools, but at least right now almost every current AAA game seems to use Bink.


Modern codecs like AV1 and whatever succeeds it can already be good enough for such special needs too. It's only natural for free codecs to catch up to that eventually.


Sounds like a game developer's competitive advantage waiting to happen!


I sure hope so.


That's true. Windows oriented developers don't realize libre codecs are everywhere, even under Windows and OSX. Ditto with graphic and text handling libraries, I am pretty sure Freetype or Harfbuzz exists on some way under Windows and OSX.


If you get video streaming with decent resolution and frame rate running on a PS1 directly from a CD using AV1 leave me a note. That'll be a good hire.


PS1? Why would you care about PS1? Besides, when did Bink become the only codec supported even by old consoles?


The PS1 played MPEG1 which was more than enough.


Look into cbloom's descriptions of Oodle.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: