This is part 2 in my article series on using a Xeon based 6 core 12 thread workstation at home to offload CPU intensive tasks from my notebook to a more powerful and fast server. At the end of the introduction I had an example of how my picture fix, rotate compression tool runs 5 times faster on that machine than on my notebook, which significantly reduces my wait time in many everyday scenarios. So how do other programs fare when running them on the workstation?
Apart from fixing images, another thing I do every now and then that takes a lot of time is transcoding videos from one format to another and trading file size for quality. On my notebook I use FFmpeg and Handbrake for the job. Let’s have a look at FFmpeg first.
FFmpeg Video File Re-coding
FFmpeg is a good choice when it comes to transcoding large video files e.g. from cameras to a more optimized H.264 mp4 format without image quality degradation. On my notebook, this task runs at around 2.5 times the speed of the video material, i.e. a 1 hour video can be transcoded in 24 minutes. When I run the same operation on the workstation, the same task on the same input file takes around 12 minutes. Almost a quarter of an hour less wait time, that’s nice. On the other hand, that’s only a 2x speedup compared to my notebook that does not have 6 but only 2 CPU cores and runs at 2.4 GHz compared to the 3.6 GHz of the workstation. So actually, that is not an impressive result. So perhaps FFmpeg is not good at multiprocessing? So I ran two FFmpeg instances simultaneously to see if resources are better used. But again, I ended up with an overall 2x speedup. That is very strange. It’s still worthwhile to run FFmpeg on that machine but I’m a bit puzzled.
HandBrake DVD to mp4 Conversion
Another thing I do from time to time is to convert videos from DVD .iso files. Such 1:1 copies can be created with Brasero, for example, and a one hour DVD video usually creates a 4 GB .iso file. Converting this to a very low quality mp4 version (q=29) results in a 250 MB file. Quite a difference! In the past I have used a virtual machine for this purpose on an i3 based server at home with 2 cores and 4 threads that runs at around the same speed as my notebook. Here, the transcoding process takes 12 minutes 49 seconds. On the Z440 workstation, the process takes only 5 minutes 8 seconds. In other words, a 2.5x improvement. That’s nice but with 12 cores/threads running at around 75% it’s not quite what I would expect from having 3x the number of cores and a 50% higher clock rate.
The next step is obvious: That Z440 workstation came with a Nvidia Quadro M2000 graphics card which supports hardware H.264 encoding. Let’s see if I can make FFmpeg and Handbrake use it for the transcoding process. Stay tuned for the next post.