• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
10

NVidia GPU-accelerated H264-encoder plugin, ready for public testing

Guest
Jun 27, 2013 Jun 27, 2013

Copy link to clipboard

Copied

Hi all,

I have written a 'proof-of-concept' GPU-accelerated H264-encoder for Adobe Media Encoder (CS6).  It requires an NVidia 6xx/7xx series "Kepler" GPU (CUDA capability 3.0), and uses the dedicated GPU's builtin hardware-encoder (NVENC) to offload the H264-encoding process from the host-CPU.  This software is "proof-of-concept", so it's missing some critical features (no interlaced-video support, no AAC-audio or Dolby AC-3 audio), and of course, it could be buggy!  But it's free.

!!!! Disclaimer: NVENC-export is third-party software that is not supported by either Adobe or NVidia.  It comes with no warranty -- use at your own risk.

Software/hardware Requirements:

(1)Adobe Premiere Pro CS6 or Media Encoder CS6 (Windows version)

Sorry, MacOSX is not supported. (NVidia NVENC SDK doesn't support MacOSX.)

(1)NVidia Kepler GPU <GKxxx> with 1GB VRAM or more  (GTX650 or above, GT650M or above)

(Sorry, NVidia Fermi <GFxxx> is NOT supported, it doesn't have the NVENC hardware feature)

Note,if you have MPE-acceleration enabled, keep in mind the NVENC-plugin consumes some additional VRAM because it uses your GPU to perform H264-encoding.

Strongly recommend a 2GB card

(2) Microsoft Visual C++ 2010 SP1 x64 redistributables

          (download this from Microsoft's website)

Installation instructions:

     In Adobe Premiere Pro CS6:

     (1)      On your system, locate the installation-directory for Premiere Pro CS6.

               Usually, this is C:/Program Files/Adobe/Adobe Premiere Pro CS6

    (2)     Copy the included file Plug-ins/Common/nvenc_export.prm

               to <installation dir>/Plug-ins/Common/

     -> To choose the NVENC-plugin in Premiere Pro,

          In the format-menu, select <NVENC_export>

     In Adobe Media Encoder CS6:

     (1)    On your system, locate the installation-directory for Media Encoder CS6.

          Usually, this is C:/Program Files/Adobe/Adobe Media Encoder CS6

     (2)     Copy the included file Plug-ins/Common/nvenc_export.prm

          to <installation dir>/Plug-ins/Common/

     -> To choose the NVENC-plugin in Media Encoder,

          in the format-menu, select <NVENC_export>

Performance & quality notes:

(1) How much faster is NVENC-export than Adobe's built-in Mainconcept H264 encoder?

Depends on your PC system.  On my test-system, which is ordinary desktop PC with Intel i5-3570K (4-core 3.4GHz), NVENC-plugin is roughly 4x faster than Mainconcept. On a dual-socket Xeon Ivy Bridge-E system, NVENC would probably only be 2x faster (in Media Encoder.)

(2)How does the video-quality compare?

Comparing similar settings/video-bitrate, Mainconcept performs better at lower-bitrates(less artifacts).  At medium-high bitrates, NVENC is comparable to Mainconcept.

(3) How does NVENC-export encode the video?

The plugin fetches videoFrames from the Adobe application, then converts the frames from YUV420 to NV12 surface-format (using host-CPU.)  Then it passes the converted frames to the NVENC front-end.  From here, NVENC hardware takes over, and handles all aspects of the video compression. When NVENC hardware is done, it calls the plugin to output write the elementary bitstream (to the selected filepath.) NVENC-hardware does NOT encode audio, nor does not multiplex the A/Vbitstreams -- this is still done in software (on the host-CPU)

The NVENC hardware block has very little CPU-overhead.  But since video-encoding is just 1 step in the entire Adobe rendering path, CPU-usage will likely still be quite high when using NVENC-plugin.

(4) What's the maximum-size video NVENC-export can handle?

H264 High-profile @ Level 5.1, which works out to roughly 3840x2160 @ 30fps. (Note the actual encoding-speed will probably be less than 30fps.)

(5) How fast is the NVENC-export hardware in Kepler GPU?

Assuming the Adobe application host is infinitely fast (i.e. can send video to plugin in zero-time), NVENC-hardware will encode High-profile (CABAC, 2 refframes, 1-bframe) 1920x1080p video @ ~100fps. At 3840x2160p (4k video), the hardware encode-speed drops to roughly 20-25fps.  That is still faster than a desktop PC.

NVENC-speed is generally same across the Kepler family - the high-end Geforce GTX Titan (or GTX780) is no faster than the entry-level Geforce GTX650, because all Kepler models share the same NVENC hardware-block, which is totally separate and independent of the GPU's 3D-graphics engine.

In premiere Pro 6, MPE acceleration will greatly affect how quickly Adobe can render video to the exporter.  So a more powerful Kepler GPU will probalby complete projects faster than a less powerful one (up to NVENC's performance ceiling.)  For more info, please refer to NVidia's NVENC whitepaper at their developer website (public)

(6) I have a multi-GPU setup, can I encode with multiple GPUs?

No, NVENC targets and uses only a single physical GPU.  (You can choose which one.)

Known limitations and problems:

NVENC-plugin is a 'proof-of-concept' program -- it is not a finished product.  So it's missing some features, and other things are known to be broken:

    • Interlaced video encdoing does not work at all (not supported in current consumer Geforce drivers)

    • Audio support is very limited: uncompressed PCM)

no AAC or Dolby-Digital

    • Multiplexer support is very limited: MPEG-2 TS only, using an included third-party tool TSMuxer.EXE

no MPEG-4 muxing (*.MP4)

    • When the muxed MPEG-2 TS file in Windows Media Player (WMP), there is no sound.  This is because WMP doesn't recognize PCM-audio in mpeg-2 ts files.  You have 2 choices; you can use a third-party media-player such as MPC-HC or VLC.  Or you can postprocess the audio-WAV file into a compatible format (Dolby Digital/AC-3)

    • in the pop-up plugin User-interface, the <multiplexer> tab is missing or not shown properly.

(To fix: Select a different codec, then re-select NVENC_export.)

    • Doesn't support older NVidia GPUs (GTX5xx and older, GT630 and lower)

Sorry, NVENC hardware was introduced with NVidia's Kepler family (2012)  Anything older than that will NOT work with the plugin.

TOPICS
Hardware or GPU

Views

363.1K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
replies 421 Replies 421
Explorer ,
Jun 20, 2016 Jun 20, 2016

Copy link to clipboard

Copied

For me all drivers since 362.00 have some issues and don't work well with that plugin or even Premiere. I'm always testing the new driver and until now I keep working on 362.00 so I suggest you test that one.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 20, 2016 Jun 20, 2016

Copy link to clipboard

Copied

Thank you for your prompt reply. Such a shame that we cannot have the latest driver AND nvenc encoding for adobe product. Such a shame for Adobe not supporting properly their overpriced products !!!

What I find strange is that if I pause the rendering and resume it, Media Encoder will then show that Nvenc is working with my 980M, but in fact it is not using it...

Also strange is that @DV2FOXreported that it worked for him using the latest driver (368.39, see above).

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Jun 21, 2016 Jun 21, 2016

Copy link to clipboard

Copied

tiliarou wrote:

Thank you for your prompt reply. Such a shame that we cannot have the latest driver AND nvenc encoding for adobe product. Such a shame for Adobe not supporting properly their overpriced products !!!

It's fair to point out that this NVENC plug-in, as wonderful as it is, is NOT provided by Adobe.  One should not expect support from them for this; it's a third-party add-on provided completely free, with no guarantees that it will work.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 21, 2016 Jun 21, 2016

Copy link to clipboard

Copied

Adobe released Premire Pro CC 2015.3 and can confirm that with the same drivers and the save NVENC_Export thingy i mentioned above (The fixed one) IT STILL WORKS.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 21, 2016 Jun 21, 2016

Copy link to clipboard

Copied

I will update to 2015.3 (AE & ME) and reinstall my display driver completely using DDU.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jun 21, 2016 Jun 21, 2016

Copy link to clipboard

Copied

So am I to understand, that despite having a supported GTX 770 Nvidia card, having "Mercury Playback Engine GPU Acceleration (CUDA)" enabled and exporting using all H.264 encoding, that Adobe Media Encoder does NOT, in fact, use CUDA or the GPU at all without the use of this 3rd party plugin? EVEN THOUGH the whole purpose of such software is to use the GPU for GPU compatible codecs?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 21, 2016 Jun 21, 2016

Copy link to clipboard

Copied

Exactly, sadly.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jun 21, 2016 Jun 21, 2016

Copy link to clipboard

Copied

Why do I even waste money on Adobe??? This is such BS.... Now I have to scour this whole thread to get the latest 3rd party files and hacks to get a feature that is supposed to ship with the software to work correctly. Then hope that I can do what I need to without any errors or problems.

I've already seen versions of this with resize issues and stuff... All I want is to use my dang GPU to encode some videos. That's why I got the card to begin with, because Adobe said it was compatible.

got to love it....

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Jun 22, 2016 Jun 22, 2016

Copy link to clipboard

Copied

Ben.Lieberman wrote:

All I want is to use my dang GPU to encode some videos. That's why I got the card to begin with, because Adobe said it was compatible.

I think you're misunderstanding and confusing the technologies at play here.

CUDA - nVidia's GPGPU tech that allows applications to send easily-parallelized tasks to it to be completed quickly and without load on the system's CPU.  CUDA and OpenCL are the tools that Adobe uses with Pr and AME to help render video.  This is what gets used for accelerated effects, scaling, and whatnot.

h.264 HVENC - Each nVidia GPU from the 600-series and newer have an idle, unused h.264 encoder built into them.  This allows the GPU to encode h.264 video files with barely any load on the CPU at all.   This isn't rendering, it's encoding.  There's a big difference.

Adobe's accelerated effects, scaling, etc that can be done with CUDA still work perfectly without the aforementioned plugin.  And that's all they promised would work.  Thus far, Adobe has not said that they'll even consider adding hardware h.264 encoding to Pr and AME.  If you want them to, fill out a suggestion/feedback form and send it to them.  I did that a year or so ago for this very topic.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 23, 2016 Jun 23, 2016

Copy link to clipboard

Copied

Speaking of CUDA rendering (Mercury engine), in 2015.3, is there a way to use CUDA on 980M ? (not "compatible" according to Adobe whereas it has tons of CUDA cores)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 23, 2016 Jun 23, 2016

Copy link to clipboard

Copied

It seems in 2015.3 have now GPU support. Tested on GTX 1080. Rendering H624 without any effect have GPU activity.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 23, 2016 Jun 23, 2016

Copy link to clipboard

Copied

Care to do screenshots of the actual settings you use for such?. Also, do you have dunno, a 1h video file and tried to convert it "again" to MP4 1080p to see if it encodes faster than what the video lenght is?..

With NVENC_Export settings of mine (Shown above or another page) it takes nearly a bit less than 30mins to encode a 1h10~min vid.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 23, 2016 Jun 23, 2016

Copy link to clipboard

Copied

I tested the two. Direct on h264 encoder now seems faster than NVENC Export, better compression, and have no glitches on the start of the video (started after the update) ...  The settings are the default, like the origin. I tested on another video editors and seems they have GPU support too.. (PowerDirector)

NVENC to me, uses 30% of the GPU to encode the file, with the new Premirere, uses 60% to 97% of the GPU (by GPU-Z)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 23, 2016 Jun 23, 2016

Copy link to clipboard

Copied

For me i select h264, change resolution to 1080p and Bitrate 5 for a 2,4GB result.

The prob?. I hear my CPU fan goin up n down randomly and encoding grew from 40mins to 52mins and doesn't knows where is it at.

So no, my case is not like yours.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 23, 2016 Jun 23, 2016

Copy link to clipboard

Copied

No issues here, for now, in both the editors I use. Try use the last drivers of your video card.

Good Luck

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 23, 2016 Jun 23, 2016

Copy link to clipboard

Copied

The NVENC_Export takes less than 30mins instead.  Using actual nVidia drivers

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 23, 2016 Jun 23, 2016

Copy link to clipboard

Copied

Let me correct: It seems I´m wrong. There something in my first test project that uses GPU. I get another one and no GPU activity at all... NVENC works with glitches on start, and keep using 30% of the GPU. With NVENC 22min, direct on H264 40min. 42min of 1080p video.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 23, 2016 Jun 23, 2016

Copy link to clipboard

Copied

With AME 2015.3, although nvenc export says that the GPU is not compatible, it actually uses nvenc to encode (30-40% GPU usage in MSI afterburner).

I also tried Staxrip and it uses nvenc properly from what I see currently. All on 980M using latest driver (not the hotfix). Nvenc export 1.12 Wc_W7

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 23, 2016 Jun 23, 2016

Copy link to clipboard

Copied

I have PowerDirector. It uses GPU h264 encoding and Smart Rendering as well (not used in this case) . Even faster than NVENC 20 Min. Uses 20/30 GPU and 30% Video Engine Load.

They say Premiere it´s the most professional Editor, but some places it seems behind the other editors...

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jun 24, 2016 Jun 24, 2016

Copy link to clipboard

Copied

Thank for the info, I will try powerdirector just for encoding. I can't believe with the price we have to pay for Adobe product they can't even provide proper GPU encoding. Unbelievable in 2016 when open source and beginner software can do it !!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jul 03, 2016 Jul 03, 2016

Copy link to clipboard

Copied

I just tried this, it's not any faster than just built-in H264 encoding, which is also not much faster than software only.

It's such a shame my 6-core 4.4Ghz dekstop woth watercooled Titan X is barely any faster than my Macbook pro which uses like 1/10 the power. Shitty software and optimization on Windows is real.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Aug 05, 2016 Aug 05, 2016

Copy link to clipboard

Copied

Did someone tried the newest update since 2? days ago for premiere pro and check if this plugin (NVENC_Export) still works , specially with 1h long files?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 14, 2016 Oct 14, 2016

Copy link to clipboard

Copied

I will chime in with weadsfdzxc here, as of last week this codec no longer uses any of my gpu to render.  I'm running an msi 1070 and I can see in afterburner that the gpu isn't being touched at all and render times are exactly the same as the standard h.264 codec.  Any other pascal users experiencing this?  Funny enough switching from NVenc to h.264 Blueray sped up my encoding time by a factor of 6

I'm also seeing mention of a new update, 1.12, from August but cant' find the files anyways.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Sep 01, 2016 Sep 01, 2016

Copy link to clipboard

Copied

I tried every version of this plugin but when I start the rendering of a video with AME i had some error:

v 1.09

Cattura.PNG

v 1.11 or 1.12

Cattura.PNG

Every time I tried whit every version of the plugin the rendering failed
I don't know why...

I've a GTX 970 with the latest driver and i use Adobe Media Encoder CC 2015.3

(and i never touch the settings of NVENC-export)

Someone can help me? (for a 2-minutes video the rendering took 4 hours )

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Sep 16, 2016 Sep 16, 2016

Copy link to clipboard

Copied

damix21 wrote:

I've a GTX 970 with the latest driver and i use Adobe Media Encoder CC 2015.3

(and i never touch the settings of NVENC-export)

Someone can help me? (for a 2-minutes video the rendering took 4 hours )

I'm just now seeing this same problem.  I've tried multiple versions of the NVENC plugin to no avail.  I am running the latest Pr, along with the most recent version of the NVidia drivers.  Card in question is the new Pascal Titan X, which was working with the exporter prior to today. 😞

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines