Skip to main content
June 28, 2013
Question

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

  • June 28, 2013
  • 100 replies
  • 390116 views

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.

This topic has been closed for replies.

100 replies

Rock_BR
Participant
December 8, 2016

Hi, im able to do Blurays with this conversion, saving in .m4v files and mux in the program tsMuxeR GUI saving in .m2ts format files. But you have to do manually and also deselect "Continally insert SPS/ PPS" and chang to "Do not change SEI and VUI data". This way, the Adobe Encore accept the files!!!

Have someone to alter format TS in encore to do this in M2TS and this two alterations in export commands in nvenc? This way the file will be perfect for encore with no extra jobs.

Tanks for de posts, I read all of them. In my experience:

I do a timeline predefined that works and it contain:

1 - A title file from begginin to the end of the video, exactly, and insert just one point of opacity: This prevents for titles or photos to appear and disappear rapidly in export, the time changes and out of sync audio.

2 - No extra empty audios. This give me errors like no export

3 - In CC 2014 have a bug, you have to close and reopen Media encoder, and than it will accept convert

4 - No way to do multicam. But all the effects, and nest works fine, but if have one multicam, export don work

5 - I Have GTX 1080, and I see that Nvenc have a new upgrade to use 100% of this new card, but the plugin here is for de old GPUS, if someone know how to do this... Because mine is usin 40% in max of video render, but it save in minuts, is very fast.

6 - bitrate of nvenc is not the same of the adobe. you need to put more Mbs, to have the same files.

Nvenc change my work, is very fast and nothing more of doing all night long exporting projects. TX all that comment on this forum, I film weddings and anniversary, and give DVD, Bluray and Pen Drive of my jobs, and the encore export the 3 ways simultaneously.

NadbogM
Participant
December 12, 2016

Where did u got updated version for 1080 GTX???

Rock_BR
Participant
January 20, 2017

I see a update for developers only, its not the same nvenc plugin for premiere, is just to someone do the job and made a plugin. But i dont know, maybe dont need more than we have.

I have to say that I found a way to work with multicam and export in nvenc. The secret is to edit all, select the green multicam, right click with all clips selected > multicam > Flatten. This way the multicam transforms in normal clips, and you can continue edditing and work with nvenc export, but in timeline its not multicam anymore.

Participant
September 25, 2016

Is anyone else getting errors like this when exporting

Windows 7 x64, GTX 970, 372.90 drivers

8L0zAfA.jpg

Happens after it reaches 100% and we get a new progress bar where it does some other stuff.

Participating Frequently
November 2, 2016

Mokona512 wrote:

Is anyone else getting errors like this when exporting

Windows 7 x64, GTX 970, 372.90 drivers

8L0zAfA.jpg

Happens after it reaches 100% and we get a new progress bar where it does some other stuff.

I am getting the exact same issue here with Premiere Pro CC 2015.4 & Media Encoder CC 2015.4.

------------------------------------------------------------

A low-level exception occurred in: NVENC_export 1.11 - j3 (Exporter:9)

Export Error

Error compiling movie.

Export Error

Exporter returned bad result.

Writing with exporter: NVENC_export 1.11 - j3

Writing to file: F:\MyDirectory\AB46I4_Full_Custom.mp4

Around timecode: 00:00:00:00

Component: NVENC_export 1.11 - j3 of type Exporter

Selector: 11

Error code: -2146828287

------------------------------------------------------------

Participating Frequently
November 2, 2016

nvenc4everyone​, irisb50359875​ & jstabb​.

Could you please look into my above post.

Thanks,

Participating Frequently
September 1, 2016

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

v 1.11 or 1.12

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 )

jasonvp
Inspiring
September 17, 2016

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. :-(

jasonvp
Inspiring
September 17, 2016

jasonvp wrote:

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. :-(

Actually: I'm running into a different problem entirely.  I'm getting an Assertion Fail as shown in the screen cap below:

NVidia driver is 372.70.  This same error pops up regardless of the version of the nvenc_export.prm I use.  This was working perfectly 5-6 days ago when I did my last export.  I've had the same NVidia driver installed since it was released (end of August).  There may have been some MS ninja-patches within Win10 Pro that might have caused this?

Participant
July 3, 2016

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.

Known Participant
August 5, 2016

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?

ViperS
Participating Frequently
June 23, 2016

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...

Participating Frequently
June 24, 2016

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 !!

ViperS
Participating Frequently
June 23, 2016

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

Known Participant
June 23, 2016

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.

ViperS
Participating Frequently
June 23, 2016

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)

benl82350171
Participant
June 21, 2016

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?

Known Participant
June 21, 2016

Exactly, sadly.

benl82350171
Participant
June 21, 2016

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....

Participating Frequently
June 20, 2016

Thank you so much for this tool ! It should be a feature of Media Encoder, Premier and AE but Nvidia and Adobe are too lazy

I have issues with version 1.11, j1, j2, j3 and a 980M. I'm assuming it's because of the latest drivers 368.39

Nvenc export recognise my card and says it's nvenc capable but when I start encoding in Media Encoder, it shows that Nvenc is not working. And my GPU usage is at 2%...

What is the last good driver that works with nvenc ?

June 20, 2016

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.

Participating Frequently
June 21, 2016

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).

Participating Frequently
June 18, 2016

Help I'm missing something stupid. I had been using this for years with no probeen. I just reinstalled on a new system and the bitrate sliders are missing. Everything else is fine and it renders fine but I need those controls.

Participating Frequently
June 18, 2016

Nevermind, I knew it was stupid - I just had to select the right rate control!

June 17, 2016

I recently updated my Nvidia drivers and now it looks like the plug-in is broke.  Are there any updates coming out for this, or is the project dead?  I'd hate to have to stay on outdated drivers.