Results 1 to 7 of 7

Thread: Better transcoding performance for AMD Ryzen CPUs???

  1. #1

    Default Better transcoding performance for AMD Ryzen CPUs???

    Hello.

    First thing I must say, that Mezzmo is one of the essential software for home streaming on smart devices.

    This is my post after ad-least 3-4 years in this forum. No problem on anything in the meantime.

    I have a question, If anything can be dome with better transcoding performance on AMD Ryzen 3400G 4c/8t + Vega 11?

    I would like to trancode on-the-fly x265 4K HDR to 1080p x264 for my Samsung Galaxy Tab and Samsung A40.

    Every setting and profile is OK and it works great. Problem is performance, I get on average 20-23fps, which is to slow and slutters.

    I see in task manager that ffmpeg is using only max 45% CPU and no GPU.

    Sure there is a potencial to use more resources to get higher FPS.

    Thank You for reply.

    Best regards.

  2. #2
    Join Date
    Mar 2011
    Posts
    393

    Default

    #1 - Check your transcoding settings and if you have hardware Decoding enabled then turn it off and see if that makes a difference. I can never peg my CPU to 100% if I have hardware decoding enabled.

    My next suggestion would be to either get a higher powered CPU or add an nVidia video card that supports NVENC encoding.

    This matrix will tell you what the different GPUs can do:
    https://developer.nvidia.com/video-e...support-matrix

    Now let me tell you why I suggest this.
    I have an AMD Ryzen 5 3600x system that I just put together in the last few months. I upgraded from an FX 8350 for exactly the same problem. I couldn't transcode 4K to 1080p in real time, either. I find that Passmark ratings are a pretty good indication of how fast a CPU can transcode video. My FX 8350 has a passmark rating of 6045. The Ryzen 5 3600x is triple that at 18368. Your 3400G has a score of 9559, about 50% better than my 8350, so the my math says that your fps is about what I would expect based on my experience with the FX-8350.

    As for the GPU..... I had also been using an nVidia GT730 GPU so that I could enable NVENC encoding, but I still couldn't get over 17fps with the FX 8350. That's why I decided to just overhaul everything and get the Ryzen 5 3600x. I moved my old GT 730 over with the new system, too and have been using that. Last week I decided to swap that out for a GTX 1650 because the GT 730 only supports a couple of common Encoding & Decoding options for h264 and won't do anything with HEVC, VP8 or VP9. The 1650 Decodes/Encodes just about everything with the exception of support for HEVC B Frame encoding.

    With the new system and Priority set to <Very High>, transcoding my test file from 4k/HEVC to 1080p/h264 I get the following framerates:

    Hardware Decoding: OFF NVENC Encoding: OFF 50-55fps @ 95-100% CPU utilization.
    Hardware Decoding: OFF NVENC Encoding: ON 75-80fps @ 75% CPU utilization
    Hardware Decoding: ON NVENC Encoding: ON 50-55fps @ 40% CPU utilization
    Hardware Decoding: ON NVENC Encoding: OFF 40-45fps @ 65% CPU utilization

    These numbers show significant offloading from the CPU to GPU for both Decoding and Encoding. However, you can see that anytime I have hardware decoding on, I can't get my CPU utilization up. There must be a Decoding bottleneck in there that slows down delivery to the Encoder but I don't know enough about FFMPEG to speak intelligently about it. That's why I suggest checking that you have Hardware Decode turned off in the Transcoding Settings. Maybe you'll be able to get the CPU utilization above 90% and possibly double your fps. The Vega 11 supports hardware decoding of HEVC but I would bet that you are getting the same bottleneck that I get with my nVidia cards.

    I would probably go the route of upgrading the GPU. Even an $80 investment in an nVidia GTX 750ti should take the bulk of the h264 encoding off the shoulders of your CPU so that even at 40% CPU you should get the fps you need. If you can justify $150-175 then a 1050 or 1650/1660 would be more future proof. I haven't tried any HEVC encoding with the 1650 yet, and I am not sure if FFMPEG (Mezzmo's encoder) supports it either but as FFMPEG continues to evolve and adotps NVENC encoding for HEVC then Mezzmo should pick up those abilities as well.
    Last edited by smitbret; 03-28-2020 at 10:55 AM.

  3. #3

    Default

    Thank You for reply.

    In transcoding menu I have:
    Transcoding CPU priority: Very high
    Decode: Direct3D
    Encode: None (Intel and Nvida not supported).

    I think it is in Direct3D decoding, that I do not get more than 45% CPU Utilization.

    Maybe I will buy Nvidia GPU for more fps.

  4. #4

    Default

    UPDATE: FIX:

    I dissabled Direct3D decoding in transcoding settings:

    I get 40FPS on the same file/movie - Direct3D dissabled
    I get 23FPS on the same file/movie - Direct3D enabled

    So for AMD Ryzen with VEGA it is better that is Direct3D dissabled.

  5. #5
    Join Date
    Mar 2011
    Posts
    393

    Default

    Quote Originally Posted by beta1 View Post
    UPDATE: FIX:

    I dissabled Direct3D decoding in transcoding settings:

    I get 40FPS on the same file/movie - Direct3D dissabled
    I get 23FPS on the same file/movie - Direct3D enabled

    So for AMD Ryzen with VEGA it is better that is Direct3D dissabled.
    Yep, that has been my experience, too. Maybe someone with more tech knowledge can explain why Hardware decoding bottlenecks the CPU. Can't blame the drivers because you are getting the same experience with AMD that I have always had with nVidia.

    Glad you got it working.
    Last edited by smitbret; 03-29-2020 at 02:49 AM.

  6. #6

    Default

    As I see, my explanation might be that the Ryzen XXXXG CPUs are 6 core CPUS. Two cores (downclocked) are for graphic and they arent enough to transcode 4K x265 HDR. Two cores are not enough for Direct3D decoding.

    Much more performance is without decoding with CPU cores.

  7. #7
    Join Date
    Mar 2011
    Posts
    393

    Default

    Quote Originally Posted by beta1 View Post
    As I see, my explanation might be that the Ryzen XXXXG CPUs are 6 core CPUS. Two cores (downclocked) are for graphic and they arent enough to transcode 4K x265 HDR. Two cores are not enough for Direct3D decoding.

    Much more performance is without decoding with CPU cores.
    Except for a couple of things:

    1 - I had the same problem with my 8 Core FX-8350
    2 - I had the same problem even when offloading the encoding to the GPU

    I wonder if the buffer or bus bandwidth between the CPU and GPU gets flooded. Maybe I would get more CPU usage if the video card had 8GB instead of 4GB
    Last edited by smitbret; 03-29-2020 at 02:18 PM.

Similar Threads

  1. Bug in Performance..
    By mrgenie in forum Mezzmo Questions and Support
    Replies: 5
    Last Post: 02-19-2014, 07:47 AM
  2. Pre-Transcoding performance
    By nilesf in forum Mezzmo Wish List and Feedback
    Replies: 1
    Last Post: 02-01-2014, 09:52 AM
  3. Mezzmo property editor performance issues
    By sultan in forum Mezzmo Questions and Support
    Replies: 1
    Last Post: 08-30-2013, 09:18 AM
  4. Recommended performance optimization?
    By Brownsamurai in forum Mezzmo Questions and Support
    Replies: 3
    Last Post: 12-29-2012, 03:25 PM
  5. Mezzmo performance problems?
    By jsoadmin in forum Mezzmo Questions and Support
    Replies: 5
    Last Post: 02-09-2012, 10:37 AM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •