I went off on a tangent last week. I started messing around with video. I implemented Google’s webm stuff into GMod, and I got it spitting out video.
It’s fast – but it’s not super fast. It’s not Fraps or anything. Frankly I don’t know how Fraps does it. Black magic or something. I couldn’t even get Fraps’ speed just reading the screen – nevermind actually encoding and saving. But that’s kind of irrelevant since I didn’t really want it for real-time stuff in the first place.
But it can kick out small movies at 30fps no problems.
So a couple of days ago I figured this stuff is probably useful to a lot more people than just me. I took a good look at FFMPEG (etc) and thought – fuck that shit. We can do better than that. It’s 2011 – lets make pumping out videos a bit easier. So I threw all my code out into a project called Holly for anyone that’s interesting to feast on. I’m hoping what seperates Holly from everything else is:
- Modern code design (c++, namespaced)
- Totally Dynamic linking (no libs, just headers)
- Totally portable
- Modular design (can code and drop in new codecs)
- Simple, Easy to use
It isn’t really anything special right now. It has one encoder module which can spit out webm and vp8. No audio. But the framework is there, and it provides the most lightweight way possible to encode any raw rgb/yuv data you can lay your hands on into webm video. It’s something I’m going to touch every now and then when I learn something new. And hopefully once it’s included in GMod some guys smarter than me will pick it up and add some new codec/container modules.
It comes with a simple documented example that outputs the video in this post. I’ve had fun playing around and learning some new stuff. Cya!