Log in

View Full Version : MPC-HC HVEC slow playback speed


djesteban
12th August 2014, 04:35
Hi,

I downloaded a small 1080p HVEC clip to see how it would play back on MPC-HC. I get an average of 17-18 fps while the clip is suppose to be playing at 50fps.

Now, I am wondering if it's my hardware that just don't cut it, or if it's a question of settings, unoptimized graphic drivers, etc.

I am using MPC-HC (32bit) 1.7.6 with madVR v0.87.10 as the video renderer.

Here's the spec of the video stream:
General
Unique ID : 32997104948325930936067043683807497842 (0x18D302E14470C8BE54D49BE359A78E72)
Complete name : C:\crowd.x265-crf-28.mkv
Format : Matroska
Format version : Version 4 / Version 2
File size : 15.2 MiB
Duration : 10s 0ms
Overall bit rate : 12.7 Mbps
Encoded date : UTC 2014-06-16 08:51:32
Writing application : mkvmerge v7.0.0 ('Where We Going') 64bit built on Jun 9 2014 16:31:22
Writing library : libebml v1.3.0 + libmatroska v1.4.1
DURATION : 00:00:10.000000000
NUMBER_OF_FRAMES : 500
NUMBER_OF_BYTES : 15913705
_STATISTICS_WRITING_APP : mkvmerge v7.0.0 ('Where We Going') 64bit built on Jun 9 2014 16:31:22
_STATISTICS_WRITING_DATE_UTC : 2014-06-16 08:51:32
_STATISTICS_TAGS : BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES

Video
ID : 1
Format : V_MPEGH/ISO/HEVC
Codec ID : V_MPEGH/ISO/HEVC
Duration : 10s 0ms
Bit rate : 12.5 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 50.000 fps
Bits/(Pixel*Frame) : 0.120
Stream size : 14.9 MiB (98%)
Default : Yes
Forced : No


Here's my computer spec:
Dell XPS420
Intel(R) Core(TM)2 Quad CPU Q9450 @ 2.66GHz
Total Memory Size: 8 GBytes
Video: NVIDIA GeForce GT 630 (2048 MBytes of DDR3 SDRAM)
OS: Microsoft Windows 7


I know my rig is old, so is this the kind of result I should expect, or there's also other factor why I am getting abysmal performance? Is that something that will be better supported with future Nvidia driver or it has nothing to do with it?

Thanks

wanezhiling
12th August 2014, 06:12
http://www.xhevc.com/en/downloads/downloadCenter.jsp
You need Strongene HEVC/H.265 decoder.

NikosD
12th August 2014, 10:53
Yes, try the first decoder of Strongene (OpenCL) and tell us your experience.

Use EVR instead of MadVR.

Also try x64 version of MPC-HC, because the decoder of HEVC inside MPC-HC is a lot faster in x64 version.

djesteban
12th August 2014, 15:16
Yes, try the first decoder of Strongene (OpenCL) and tell us your experience.

Use EVR instead of MadVR.

Also try x64 version of MPC-HC, because the decoder of HEVC inside MPC-HC is a lot faster in x64 version.

Ok, thanks guys, I will try both solutions tonight when I get home from work.

@NikosD, why EVR instead of MadVR? I know they don't make a 64bit version of madVR, but I remember EVR being very glitchy last time I used it... but that was a while ago.

NikosD
12th August 2014, 15:24
EVR is lighter and should be faster than MadVR.

huhn
12th August 2014, 15:38
EVR is lighter and should be faster than MadVR.

nearly everything from madVR is running on the GPU. so there is most likely no huge impact on decoding at all.

NikosD
12th August 2014, 19:22
It will have if he uses the OpenCL decoder.

And if even he is not, even pure CPU decoders need GPU for rendering and all of them put an overhead on the decoding process.

I don't use MadVR but I'm pretty sure EVR is faster. (Less overhead)

huhn
13th August 2014, 00:00
It will have if he uses the OpenCL decoder.

And if even he is not, even pure CPU decoders need GPU for rendering and all of them put an overhead on the decoding process.

I don't use MadVR but I'm pretty sure EVR is faster. (Less overhead)

do software decoder need GPU? are you sure? i'm pretty sure ffmpeg doesn't need a gpu for decoding.

NikosD
13th August 2014, 05:20
Every decoder needs the GPU, because after decoding, you need to display the decoded frames, to actually see the video.

GPU always is in the equation, unless you use null renderer to avoid it.

nevcairiel
13th August 2014, 06:26
His file is only 1080p though, the renderer doesn't really make much of a difference at all here. Its not like its 4K.
LAV is also specifically designed to avoid a slow renderer also slowing down decoding (although that only works up to a point).

NikosD
13th August 2014, 07:20
1080p is a large resolution definitely affecting the GPU rendering.

LAV video even with the lightest renderer (EVR) has a significant performance hit comparing it with Null renderer.

nevcairiel
13th August 2014, 07:27
That doesn't matter though. If he can play 1080p H.264, then he can play 1080p anything, since obviously the GPU is fast enough to render it.
The GPU doesn't care which codec the movie is in.

NikosD
13th August 2014, 07:31
Of course he can play it, but with performance hit using MadVR instead of EVR (probably)

With H.264 it doesn't matter, but with H.265 even 1% matters in the whole equation (decoding+displaying)

djesteban
13th August 2014, 23:16
Wow, so I have tried the simplest of solution first, which was to install the x64 version of MPC-HC and use the EVR renderer and... joy and rejoice! The sample file I downloaded plays in all of it's 50fps glory. I also encoded a 10 second 24fps clip of my own and it plays at a steady 24fps without any issue.
So I basically didn't have to install the Strongene HEVC/H.265 decoder. I will try a 4k clip tonight, and will post the result. :)

BTW, off-topic a bit, but encoding that 10 second clip I was talking about took almost 2h to encode on my machine... that is sloooooow :\

djesteban
16th August 2014, 02:43
4K clip encoded fine, but doesn't play real time on my machine. It plays so bad I can't really tell how many fps I get, but it's probably something like 5-10 fps.
I might try with the Strongene decoder to see the difference.

NikosD
16th August 2014, 05:29
Encoding is heavily affected by preset, i. e using x265 you can see fast results moving the slider towards ultra fast speed.

Strongene's decoder is optimised for OpenCL AMD cards, but its heavily optimised CPU decoder is for all.

Also, the decoder will offload some processing to your Nvidia 630.

Try 4K and see the GPU usage with GPU-Z or any other tool to be sure that OpenCL is really used.