Skip to main content
June 28, 2013
Question

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

  • June 28, 2013
  • 100 replies
  • 390118 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

November 24, 2015

Hi, everybody!

My post for those who wants get BluRay compliant output (for v 1.09)

there are some things which should be made:

GOP length in common case=FPS of your video

There is a problem with value vbvBufferSize. It is impossible to enter the required value 30000.

I enter specific value 998.

And then I open the result video file in hex redactor and find this value (998).

Note: at the left there must be an empty positions when we can input new value (the hex-address will differ for different files):

replace 998 (or your value) on 30000:

and save the file.

The Final file is absolutely BluRay compatible:

Sorry for my English .

JeDiBanKai
Inspiring
November 23, 2015

I have the same error. Ignore button cant help me, there is no output file.

____________________________________________________________

CC 2014 (2014.1), gtx 680 (358.91), 8gb, Phenom X4 965.

Participant
November 20, 2015

I have the same error. When check Ignore button i have zero load at gpu.
I am using Adobe cc 2015, gtx 970, 32gb, i72600k.
I AmMRrer.jpg

Participating Frequently
November 23, 2015

You can download this file, rename it (remove the word " Good " as I've downloaded many version, just to make sure this is the good version. Replace it with the old version of your and then use it, you should be fine now!

https://www.mediafire.com/?9k4pwsa93a1ft0u

Participant
November 23, 2015

With this file i don't have error but i have gpu load only 2%, is this normal?
Only memory of gtx 970 is working and the Cpu(i7 2600k) at 50%

Participating Frequently
November 6, 2015

Finally I got it working! But I wonder why my GPU is still 0%-1% or 2% max while rendering using this preset?

Is there anything I did wrong? Someone please help me to solve this! Many thanks!
nvenc4everyoneirisb50359875

November 6, 2015

You need also choose your GPU in exporting settings.

Participating Frequently
November 7, 2015

Dear ZiggyGG‌,
Thanks for your help! I did choose Mecury... GPU (CUDA) in Premiere, After Effects, Media Encoder... anh tried to export many times but still no GPU load, even the Video Engine is 0%!

I've spent a lot of money to upgrade from my old GTX460 card, then to the R9 280x card and then switch to GTX760 card, just for rendering using GPU!

Participating Frequently
November 6, 2015

Hello all,

I'm so interested in exporting/rendering video using GPU card. I've downloaded all the required files and copied into its location. But still can't make mp4 output as I don't know where to put the mp4box as well as other program: NeroAac...

I've read almost all the posts there but still don't know where to put the files in order to make it works!

Please show me how! Thank you so much!

November 6, 2015

I set that some time ago, but if I remember correctly then it doesn't matter. As long you set destination in exporting menu it will be fine.

Participating Frequently
November 6, 2015

Thank you so much for your help! So it's just simply copy the preset file into the installation folder and then run AE/AP, export video, choose the preset and set location for saved file... Thank you!

stanleygamer
Participant
October 29, 2015

Hey guys!

What is the latest version of this plugin? Can I have a link for it?

Sorry for my crappy english.

Participating Frequently
October 17, 2015

Any update on this not working well with drivers over 353.62?  Newer version function but at almost no speed boost.

Participant
October 8, 2015

Okay, so i have the problem with this plugin: unsynchronised video. It looks like it`s slower than it should be

October 8, 2015

I just found that plugin and I tried it, but I can't quite see difference.

Bellow I have my settings. Did I set something wrong? I try to get 1080p 60FPS 12Mbps progressive video with 256Mbps AAC audio.

Yes I did download and set all required software but my GPU load is only around 50% and CPU works at 100% during the exporting time.

Can anyone help me to set it right?

My specs:

Windows Pro 10 x64

MSI X99S Gaming 7

Intel Core i7 5930K

G.Skill Ripjaws4 32GB DDR-4 2133MHz

MSI GTX Titan X 12GB

3x Kingston SSDNow V300 SSD drives (120,240 & 480 GB)

lk58361083
Participating Frequently
October 21, 2015

what you want?

tarnovo83
Participant
October 8, 2015

I did install everything as instructed here and the YouTube videos...but when I go to the format menu I see NOTHING

I am using APP CS6 Windows 7 64, nVidia GT 755. What could it be happening?

Shad0w480
Participant
October 6, 2015

Got it working again, something messed up but i managed to fix it, working again flawessly!