Speeding up MCEBuddy Conversion

Dec 10, 2014 at 11:24 AM
Edited Dec 10, 2014 at 11:26 AM
Hi,

I really love MCEBuddy, and have the most recent version, however, it still can take up to 10 hours to convert a 1 hour program (removing commercials) for some reason. I'm running MCEBuddy (in High Priority - dual thread) on a dedicated machine (other than using WMC to record shows to be converted by MCEBuddy) running an AMD A8-5500 3.2GHz Quad-Core processor with 8GB of RAM. No dedicated GPU, but the CPU has an integrated Radeon HD 7560D GPU built-in, which should be sufficient. My question is, would doubling my RAM to 16GB significantly speed up the conversion process, or would I need to upgrade my CPU (which is more difficult)?

Thanks!
Dec 10, 2014 at 12:18 PM
More RAM won't help. You need more processing power.
Coordinator
Dec 10, 2014 at 5:14 PM
Edited Mar 3 at 2:01 AM
True while adding any more RAM to your configuration will not help, a faster CPU will definitely help. However check out the top reasons for slower conversions (and you have a VERY slow conversion so I would assume something isn't configured right with your setup)

The biggest improvements that's users can do are:

  1. Use the donator version of comskip - especially if you have h.264 videos, it will increase your commercial detection performance by a factor of 6x-15x, (see this thread on speeding up commercial detection - https://mcebuddy2x.codeplex.com/discussions/535567)
  2. Use the latest build of MCEBuddy since there have been many optimizations made to the overall process and will yield the largest no change speed improvement (e.g. 2.4.1 is upto 30% faster than 2.3.15 which is upto 50% faster than 2.3.13 depending up on your conversion options it can make a significant difference)
  3. Enable hardware encoding in Conversion Task Expert Settings (Intel QuickSync via Handbrake profiles or NVidia NVEnc via ffmpeg profiles). Make sure you're using the recommended driver versions for stable and fast performance. (see this thread for more details https://mcebuddy2x.codeplex.com/discussions/549347)
  4. If you source video is of good quality use the Normal or Fast profile, the High Quality profiles VERY SLOW and only help/make a difference if your source quality video is not good. Even most SD quality source video's don't need the high quality profile. An ideal scenario for high quality would be source video is less than 480 pixels, is interlaced or has transmission fuzziness. Most videos' today don't need anything more than Normal quality processing. If you need to improve quality us the Quality slider instead of moving to high quality profile, it'll yield better and faster results.
  5. If you don't need h.264 video use MPEG4 profiles like DIVX instead of MP4 or MKV or tweak your MP4/MKV profiles to use mpeg4 instead of h.264 as the video codec (if you don't have hardware encoding). You will see a significant increase in performance with smaller degradation in quality (particularly for non HD video or high bitrate profiles)
  6. Use a faster CPU and set the priority to Normal (Low will severely degrade performance)
There are other things you can tweak but there may be trade offs or have smaller improvements
  1. Use the skip remuxing option if you the donator version of comskip and your source is WTV
  2. Use the skip copying original file option (at your risk, this is dangerous if not used properly and can cause unexpected results - heed the warning)
  3. Reduce max resolution slider if you need higher resolution
  4. Reduce the quality slider if you don't need higher bitrates
We'll keep this list updated as more things pop up in future.
Marked as answer by rboy1 on 12/10/2014 at 10:14 AM
Feb 8, 2015 at 12:28 PM
Hi,

I would like to use HW encoding, but don't have QuickSync - I do have a NVidia graphics card with NVENC though ... is this not supported?

Thanks!
Coordinator
Nov 22, 2015 at 6:29 PM
Nov 26, 2015 at 4:16 AM
Edited Nov 26, 2015 at 4:16 AM
For item 3 above, I assume you really mean (as in item 4),
  3. Reduce max resolution slider if you __don't__ need higher resolution
?

( Video conversion is a big and confusing problem space (IHMO), I'm just hoping to reduce the ambiguity a slight bit ;-) )

Cordially,

Neil M
Chicago, Ill
Dec 4, 2015 at 11:12 PM
Sorry if this seems like a simple question but I don't know much about computers. It's my cpu that uses hardware encoding right? I'm pretty sure mine can't because it's about 6 years old. How can I find out if it does do hardware encoding?
Coordinator
Dec 5, 2015 at 12:09 AM
See the thread on GPU Hardware Accellerations (it's a sticky) and also linked above

Jan 21, 2016 at 4:00 PM
Edited Jan 21, 2016 at 4:02 PM
Just a word of advice (or two).

I'm on Windows 10 personal now. I find it useful to fire up Windows Task Manager and just taking a look at what process is utilizing the CPU. You'll see either "ffmpeg.exe" or "Mencoder" or "HandbrakeCLI". Also use GPU-Z and select the "Sensors" tab so you can look at "Video Engine Load" to see if your GPU is getting any work with "Hardware Acceleration" enabled.

Don't assume that enabling Hardware Acceleration is going to make your conversion faster. I have a "FrankenPC" (an AMD platform with an nVidia GTX970), thus I do not have Intel QuickSync at my disposal.

I ran a test on an approx. TEN minute long WTV recording from Windows Media Center and with...
"Hardware Acceleration" enabled, the encoder which MCEBuddy selected was "ffmpeg.exe" and ffmpeg only utilized my 6-core AMD cpu at about 20% while my GPU got a 4% load. The conversion process took 15 minutes.

"Hardware Acceleration" disabled, MCEBuddy chose "HandbrakeCLI" which does an awesome job of Multi-core support and utilized my cpu at 90-95% and the entire processing was done in 10 minutes.

So, disabling "Hardware Acceleration" actually makes the transcoding substantially faster on my system (at least with MPEG2 source material.).

Your results will probably be altogether opposite on a newer Intel platform, but it pays to conduct tests on short recordings and check out what encoder MCEBuddy is using with Windows Task Manager.
Coordinator
Jan 21, 2016 at 4:31 PM
Good find - looks like ffmepg tried to use NVENC (confirm with your logs). If it is and it's slower, you may need to get new NVidia drivers (the drivers control the encoding)

Jan 25, 2016 at 7:08 AM
Edited Jan 25, 2016 at 7:10 AM
rboy1 wrote:
Good find - looks like ffmepg tried to use NVENC (confirm with your logs). If it is and it's slower, you may need to get new NVidia drivers (the drivers control the encoding)
Thank you. Yes, I re-enabled "Hardware Accelleration" and checked the logs, and ffmpeg is now using NVENC after I installed the new and latest driver from NVIDIA. The previous driver was something that Microsoft automatically installed during the upgrade from Win7 to Win10, I believe.

That said, the combo of ffmpeg using between 20-25% cpu and NVENC loading my GTX970 at 4%, it's still a slower conversion on my system than if I force the use of Handbrake which utilizes my cpu at 95%, however, this is probably a bad solution if I'm trying to use my PC for other things at the same time. My Hauppauge card has built-in hardware MPEG2 encoders, so when I record, my cpu isn't loaded at all, so I'm very happy with how things are going with MCEBuddy and my TV auto-recording and conversion at the moment.
Coordinator
Jan 25, 2016 at 11:54 AM
Newer is not always better. You may have to do some research and find an older driver that works better. We've posted the most stable intel drivers (which aren't the newest). Nvidia needs research.

Jan 26, 2016 at 7:14 AM
Edited Jan 26, 2016 at 7:15 AM
Yes, I have read that on the older Kepler based nVidia cards, NVENC was provided through utilization of CUDA cores but with Maxwell, H.264 and H.265 encoders were built-in to the hardware. From what I've read, the new hardware encoders provide well for converting multiple files simultaneously, but I don't know how much they speed up single file conversion.

I'm currently investigating video converter software which purports to support the new NVENC implementation well. I don't really understand what ffmpeg is actually using NVENC for. It is putting 4% "Video Engine Load" on my Maxwell based GTX970 but that doesn't translate into much "acceleration". Old Kepler era drivers might actually provide faster NVENC through the CUDA API. From what I've read, the new Hardware NVENC in nVidia cards is intended to provide real-time streaming (I'm guessing to support NVIDIA GameStream) and the quality is poor.

So, anyway, it looks like I can try rolling back to some old driver that supports software NVENC using CUDA or just forget about using NVENC altogether, since the new hardware implementation is slow & crappy. I think I'll go with the latter solution, since I don't want to deal with a rat's nest of incompatible GPU driver issues.
Jan 26, 2016 at 9:56 AM
So I've done some further investigation and here is what I have to report so far:

I tried using MediaCoder which appears to be one of the top 2 or 3 video encoding apps for the latest NVENC 6.0 support.

I converted a 12min 41sec, mpeg2 720x480, 60fps, 2400 Kbps video with AC-3 2-chnl , 16bit, 192Kbps, 48KHz audio to:
H.264 (AVC, High@L3.0) avg bitrate 1519 Kbps, 720 x 480, CABAC yes, 29.97 fps
with AAC audio using NERO Encoder at 50% quality VBR 118 Kbps, 48.0 KHz.

This transcoding task was done at about 6.2 x real-time or 200 fps by MediaCoderx64 0.8.41.5815, using GPU NVENC 6.0 on NVIDIA GTX970 driver ver. 361.43. I selected NVENC as the "encoder" in MediaCoder.

During transcoding, Win10 Task Manager showed these tasks running:
MediaCoder (10% cpu utilization)
Mencoder.exe (23% cpu)
Nero AAC Encoder(32 bit).exe (3% cpu)
nvEncoder.exe (3% cpu)
The Video Engine Load reported by GPU-Z.0.8.6 started at about 40% and leveled off at about 18% for the remainder of the transcode.

MediaCoder provides both NVENC and "CUDA" as "encoder" options. When I selected "CUDA" the conversion process crashed. I'm guessing that this is because newer NVIDIA drivers no longer support NVENC via CUDA.

When I selected the H.264 encoder, conversion was done at about 108 fps or 3.5x and my cpu was pegged in the high 97ish percent utilization. Video quality was about the same, with the H.264 encoder equally struggling in a scene with camera shake and high motion. Perhaps only two pass can save that?

In conclusion, hardware NVENC in the more recent NVIDIA GPUs with the latest drivers, if properly supported can truly accelerate transcoding times. I'm seeing 2x faster speed at over 6x real-time and reduction in CPU usage down to about 50%. I'm guessing that ffmpeg doesn't have good support for the latest NVENC or for whatever reasons isn't utilizing it fully.
Coordinator
Jan 26, 2016 at 1:45 PM
You need nvenc. Ffmpeg does not support cuda

Coordinator
Jan 26, 2016 at 1:48 PM
Not truly and apples to apples comparison. Profile settings make all the difference in what hardware features are used to accelerate. If you really want to compare use the exact same profile settings on ffmpeg and media coder

Jan 27, 2016 at 4:33 AM
Thanks. I'll probably dig in to this further if I have the time. MediaCoder is a buggy app. The inability it has to synchronize audio and video on it's own, means that it's going to sit in a dark corner of my system. One bug is that the audio is silenced, if you try to encode it to mp3 and put it in an mp4 container. Perhaps mp3 doesn't belong in an mp4 container but MediaCoder does in fact put the stream there. It just silences it. I spent hours fiddling and diddling over that bug. I don't have that kind of time. MCEBuddy is a much better app and it's getting the job done for me, so thank you!
Mar 23, 2016 at 12:25 PM
Would this cpu do the trick and let me use hardware quick sync? http://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-4790S+%40+3.20GHz&id=2258
I also have the K version which is 4.0 ghz instead of 3.2 ghz in the 4790s but that will be going into my gaming system.
Coordinator
Mar 23, 2016 at 5:46 PM
I don't see any trick on the link.

Jun 20, 2016 at 7:05 AM
rboy1 wrote:
I don't see any trick on the link.
my post at the bottom of this thread shows you how to activate QuickSync with the latest Intel Graphics Drivers. The conversions do work more reliably if you have a HDMI or EDID Emulator (aka headless device) in your Intel HDMI port.

https://mcebuddy2x.codeplex.com/discussions/549347
Aug 16, 2016 at 5:32 AM
I just wanted to post about my quicksync results. MCEBuddy went down a couple of weeks ago and I got some weird error. It turns out it was a corrupt video file and possible hard drive failing, although my hard drive is brand new and about 3 months old, so hoping it was a glitch.

Anyway, I updated MCEBuddy from 2.4.3 to 2.4.5 during trouble shooting. The new MCEBuddy started with 131 shows ready for conversion and in 48 hours or so have completed them all. Most were hour long shows, not to mention a lot of shows were being recorded during this time, so closer to 140 conversion. Likely about 100 hours in total. That's over 2 hours of video per hour being converted with commercials removed.

I am using a Xeon E3-1265l v3 (2.5 GHz, 45 watts) quad core with hyper-threading (8 threads) and the built-in standard Intel HD Graphics (Haswell.) Plus I have the paid for comskip, although I forgot to upgrade to the latest version.
Aug 16, 2016 at 5:45 AM
rmjohnson144 wrote:
I just wanted to post about my quicksync results. MCEBuddy went down a couple of weeks ago and I got some weird error. It turns out it was a corrupt video file and possible hard drive failing, although my hard drive is brand new and about 3 months old, so hoping it was a glitch.

Anyway, I updated MCEBuddy from 2.4.3 to 2.4.5 during trouble shooting. The new MCEBuddy started with 131 shows ready for conversion and in 48 hours or so have completed them all. Most were hour long shows, not to mention a lot of shows were being recorded during this time, so closer to 140 conversion. Likely about 100 hours in total. That's over 2 hours of video per hour being converted with commercials removed.

I am using a Xeon E3-1265l v3 (2.5 GHz, 45 watts) quad core with hyper-threading (8 threads) and the built-in standard Intel HD Graphics (Haswell.) Plus I have the paid for comskip, although I forgot to upgrade to the latest version.
I get about 90-140 fps with my i5 with the latest drivers, intel sdk, comskip 0.92 donator, and the latest MCEBuddy. Its a 3.5ghz quad-core overclocked to 4.4ghz.

What types of FPS are you getting with the E3? I'm curious.
Aug 16, 2016 at 6:05 AM
Not sure where I'd find that info. MCEBuddy does it in the background.

I guess I could run it through handbreak or something? What settings do you use?
Aug 16, 2016 at 6:27 AM
rmjohnson144 wrote:
Not sure where I'd find that info. MCEBuddy does it in the background.

I guess I could run it through handbreak or something? What settings do you use?
I run the MKV - Normal Quality setting for most of my TV encoding.

Check your c:\Program Files\MCEBuddy2x\log\ folder and tail a log file - the handbrake average fps will be listed in the file along with some other details. Keep your log details at the default setting of Info.
Aug 16, 2016 at 7:03 AM
I was seeing anywhere from 125 to 212 fps depending on what section.

Near the very end it said 153.232254 fps avg. I was using MP4 normal @ 720p.