Convert video with ffmpeg using gpu

sdnaghdi picture sdnaghdi · Aug 17, 2013 · Viewed 61.9k times · Source

I have video sharing site and convert video with ffmpeg but it take a lot of time for converting. how can do it fast and safe? I think when ffmpeg match with GPU it helps me but I find no good reference to use. Which application or reference can help me that have good performance.

Answer

Arnaud Leyder picture Arnaud Leyder · Apr 26, 2014

Update Q4 2017. Since my original answer GPU-based encoding has become widely available. If you have a modern NVIDIA video card and can compile ffmpeg then you should be good to go. Thanks to Dmytro Dzyubak for pointing out the FFmpeg docs stating that indeed "CPU based encoding generally produces better quality than GPU based encoding."

--

GPU based encoding is specific to a codec/GPU computing standard (CUDA, OpenCL) so you would need to specify what are you using in your case. ffmpeg is amongst other things a wrapper for popular codecs like x264 and VP8 for video.

Using x264 all attempts so far have produced mixed results at best. Nothing that could be passed on to production has come to see the light of day.

Main concept offers an SDK that can be used for H264 GPU based encoding. You can read here for more information. I have not seen the price tag for their SDK but it could be expensive I guess.

Depending on the codec you use you are better off tweaking the encoding settings to trade off quality for speed. On a side note CPU based encoding tends to produce better quality than GPU based encoding.