OMG! So many problems! FFMPEG is the engine that runs Ultra Edge. It is a program that encodes the videos that are uploaded by our users.
Well, after a server update, FFMPEG broke! What I mean by that is that FFMPEG would no longer encode AAC audio. What this means for our users is that when they attempted to upload a video, the engine would crash and take them back to the upload area. They'd see the preview picture, but after clicking on it, the video wouldn't play.
Since the beginning of UE's life, I've been using FFMPEG from the Medibuntu repositories. It was quick and easy to install at the time and it did what it was suppose to. Of course, back then, I used 1 pass encoding (I'll explain later). Since Medibuntu's FFMPEG is messed up, I ended up having to compile FFMPEG from the SVN (build from source code). Of course, I've had issues with that in the beginning. The FFMPEG SVN version wouldn't like the commands I was so used to using with the Medibuntu versions of FFMPEG. So, I experimented with many different things and nothing worked. So, in the end, I settled with using libfaac for AAC audio (not as good as the original, but does the job while keeping good audio quality) and libx264 (which works much much better than what I was using before).
Alright, now for the 2 pass encoding. Before, I was using the 1 pass encoding. Basically that means that FFMPEG would read the original video file once and convert it. 2 pass encoding creates a blue print of the file first and then implements a strategy on how to convert on the 2nd go around. This creates a higher quality video file at a nice and reasonable size. Of course, it takes twice as long as the 1 pass because it goes over the video twice. Before, the files would reach up to 300 to 400 megs; even though the originals were 720p files at 100 to 200 megs. H264 creates bigger files, yes. However, 300 to 400 megs at a much smaller resolution is crazy!
So, right now, everything is working. I'm still coding and fixing different areas of the site. So, Ultra Edge is definitely still in beta. As I improve the code, it'll get better.