YoManSports.com: What I'm doing these days
Posted: 2 September 2009 at 14:14:35
I think I have finally, really arrived.
I've been doing contract work for a company in Provo that is launching a new website called YoManSports.com, which is in beta right now. At first glance, the site may appear to be a "YouTube for sports," but it so much more than that. The concept is centered around video sharing, but includes familiar social networking elements you'd find on sites like Facebook or MySpace. In addition, there are several applications within the site that are sports-related -- things like competition bracketing, scorecards, and groups. Perhaps the coolest feature that rounds out the list is the broadcast feature. This lets a person go to a sporting event with a video camera, even something as simple as a USB webcam, and set up a live web broadcast that anyone with a web browser can watch. The person managing the broadcast can mix prerecorded video, pictures, and even live video from other users into the broadcast. There's even a news ticker for embedding clickable URL links into the broadcast. It's pretty cool stuff.
Now, I said at the beginning of this post that I have arrived because we've been asked by management to blog regularly about the site and what we're doing with it as part of our marketing plan. So, yeah, it's cool to be able to do this and not be wasting my time at work.
My job has been designing and building the server architecture that sits behind the scenes and makes it all work. I was brought in late 2008 when the site was pretty much in a prototype stage. All the code was running on a single server and it really wasn't designed to scale beyond that one server. So, one of the first things I did was figured out what we'd need to do split things like streaming video, web services, and database services onto their own dedicated servers.
After that, I went through and figured out how we were going to accomodate loads higher than we could with individual servers. In a nutshell: load balancing. That has now been implemented.
Another thing I've had a big hand in is offloaded encoding and conversion. The developers had created routines to do all the video encoding in PHP on the frontend of the website. Of course, doing video encoding on the same server Apache is running on can be detrimental to the experience of other website users. I developed a distributed encoding system that handles all the video conversion and encoding on a separate set of servers. I did it with Perl, of course.
I'm pleased with the technology being used on the site. I'm not a fan of PHP, but it's doing the job well for frontend development. We're making use of a lot of open source technology in dealing with videos. For example, all our transcoding is being done with the formidable FFMPEG software along with libraries like x264 and FAAC.
We're leveraging Flash pretty heavily pretty heavily to make the site work so it's fortunate that Flash support has nearly ceased being a problem for cross-platform compatibility. YoManSports.com works almost seamlessly across Windows, Mac OS, and Linux.
Watch this space for more info to come.