using a cheap GPU / FFmpeg to encode high quality Flash video

Posted on January 31, 2007. Filed under: FFmpeg, gpu, H.264, IP Video, live video streaming, open source content managment system, pay per download video, pay per view, server video, transcode, video, video cms, video graphics, web server audio, youtube |

We’ve had to devise a way for a client to quickly encode multiple sources of high quality video using white box equipment. The video would come in spurts from webcam captures and uploaded WMV and AVI.

The problem in this instance is not that their server can’t take the load. It easily could . Well tuned video applications will sense the server load and queue the video encoding jobs. Somehow Youtube used to do this very thing in its early days.

They — the client — absolutely didn’t want to ramp up to the slightly more expensive dual CPU class as we suggested initially. Their point which I incorrectly dismissed was the dual processor would have collateral issues that were not worth the possible benefits. It would mean tuning or even changing much of their server software and siphon off an unacceptable level of management focus. Not to mention consulting and IT expense. This is true actually. No matter how well planed out moving to new network hardware is alway s fraught with unforeseen problem.

The solution is simple on paper.

We can insert a relatively inexpensive graphics card and pipe much of the heavy lifting through the GPU with FFmpeg. The testing on the local server shows truly amazing results. Properly configured a plain Jane Linux box can be a real video workhorse.

I’ll post the hardware details after a few more days of testing and talks with the hosting provider are done..


Make a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

7 Responses to “using a cheap GPU / FFmpeg to encode high quality Flash video”

RSS Feed for videohound Comments RSS Feed

John- email me asap.

Could you please explain, how can i make it possible, i’d like to try on my Linux box as well, i really can’t imagine how it is possible to do…

I’ll be awake 😉

Thanks and good luck

any updates on this topic?

All my research (basically Google and a running numerous encoding servers) leads me to this conclusion: Neither FFMPEG not MEnCoDER is capable of using the GPU for encoding purposes as of this writing. MPlayer can, with some tweaking, use GPU for DECODING MPEG only.
I’ve spent a lifetime looking at ffmpeg use 100% cpu on linux. Not out of the box, its not possible. And yes, I would like to see how the author can prove his claims.

The post is dated Jan 2007? its what 4 months, and no update. I just had to reply when I saw this blog which I don’t usually. I wonder how I missed this before in my searches.

I also dont see why it would be expensive or difficult to switch to Dual CPU unless your client has been using the same old system for more than 4 years. All systems since the past two years can “virtually” support dual processing and hence use SMP kernel. Switching to dual physical processor will have absolutely no migration impact. I would understand if let’s say you said, 32bit to 64bit. Kindly explain if this is not all a joke and you guys are really serious.

Peace out.

I also dont see why it would be expensive or difficult to switch to Dual CPU unless your client has been using the same old system for more than 4 years. All systems since the past two years can “virtually” support dual processing and hence use SMP kernel.

You haven’t done much software development then. It’s likely the client has legacy code that works perfectly well in a single-core environment but doesn’t handle lock/release constructs properly so will crash-and-burn in a multi-core environment.
I don’t think it’s a good excuse, but I have seen it many times before. Some of my customers are still running legacy systems 10-years or older, and can’t/won’t change them because nobody knows how they work anymore and/or none of the original developers are still with the company.
I can understand why companies may not be willing to spend time fixing/upgrading such implementations, particularly if there’s a chance that they’ll be migrating to an out-of-the-box solution in the near future – why spend time reinventing the wheel if you’re nearly finished saving-up to buy a Ferrari?

I second Vangel’s comment, please show us how – it does not possible without a significantly modified codebase.
Which parts of the encoding sequence are you talking about?


This is very interesting subject. Is it possible to use FFMPEG with GPU at all?


Where's The Comment Form?

Liked it here?
Why not try sites on the blogroll...

%d bloggers like this: