• 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

373.6K

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
New Here ,
Oct 17, 2015 Oct 17, 2015

Copy link to clipboard

Copied

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

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 ,
Oct 29, 2015 Oct 29, 2015

Copy link to clipboard

Copied

Hey guys!

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

Sorry for my crappy english.

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
Explorer ,
Nov 05, 2015 Nov 05, 2015

Copy link to clipboard

Copied

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!

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
Explorer ,
Nov 05, 2015 Nov 05, 2015

Copy link to clipboard

Copied

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.

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
Explorer ,
Nov 05, 2015 Nov 05, 2015

Copy link to clipboard

Copied

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!

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
Explorer ,
Nov 06, 2015 Nov 06, 2015

Copy link to clipboard

Copied

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!
nvenc4everyone‌ irisb50359875‌

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
Explorer ,
Nov 06, 2015 Nov 06, 2015

Copy link to clipboard

Copied

You need also choose your GPU in exporting settings.

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
Explorer ,
Nov 06, 2015 Nov 06, 2015

Copy link to clipboard

Copied

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!

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
Explorer ,
Nov 06, 2015 Nov 06, 2015

Copy link to clipboard

Copied

Please include screenshots of all exporting settings. Let me compare it with mine. We will find solution

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
Explorer ,
Nov 07, 2015 Nov 07, 2015

Copy link to clipboard

Copied

Dear ZiggyGG‌

Thank you so much! You're so kind!

I upload some screenshots of my setting. Tried to render many times since yesterday until now, still 1-2% only! Please have a look at my setting and help me to solve this problem! Thank you!

007.png

001.png

002.png

003.png

004.png

005.png

006.png

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
Explorer ,
Nov 07, 2015 Nov 07, 2015

Copy link to clipboard

Copied

I don't see your GPU selection menu in VIDEO tab. Do You have it?

Check in Project > Project Settings > General if you have GPU encoding set. If it's CPU then you must change it.

Przechwytywanie.PNG

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
Explorer ,
Nov 07, 2015 Nov 07, 2015

Copy link to clipboard

Copied

Dear ZiggyGG‌,

Yes, I have selected GPU as you mentioned above from the first step, I've forgot to take picture of that part.

So it means I have everything setup in a correct way, but no lucks!

001.png

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
Explorer ,
Nov 07, 2015 Nov 07, 2015

Copy link to clipboard

Copied

Yesterday I set clean installation of my OS and I was forced to set this again, so here are the steps I made:

1. I copied plugin to both Plugin/Common dir in Adobe Premiere and Media Encoder installation folder

2. I put put all additional needed files to one folder and copy it to Adobe main dir. I made zip file for you here: Dropbox - external_tools.zip

3. I go to Adobe Premiere Pro main dir and delete file "cuda supported cards" so I can use my GPU for rendering. Normally it need Quadro.

4. In Project > Project settings > General I choose GPU rendering

5. In exporting settings I set all like this

Przechwytywanie.PNG

6. I co go Multiplex tab and choose MP4 then I browse the right file from External Tools dir

7. I did same with the audio tab

8. At the bottom I set my exporting settings 1080p 60fps 12Mbps

1.PNG

That't it. All working fine.

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
Explorer ,
Nov 08, 2015 Nov 08, 2015

Copy link to clipboard

Copied

Thank you so much, ZiggyGG‌! I've downloaded your files and will do the same as you show me above! Thanks for your kindness! Have a great day!

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 ,
Nov 20, 2015 Nov 20, 2015

Copy link to clipboard

Copied

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

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
Explorer ,
Nov 23, 2015 Nov 23, 2015

Copy link to clipboard

Copied

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

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 ,
Nov 23, 2015 Nov 23, 2015

Copy link to clipboard

Copied

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%

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 ,
Nov 23, 2015 Nov 23, 2015

Copy link to clipboard

Copied

This is log:


11/23/2015 06:49:48 PM : Queue Started

- Source File: C:\Users\Admin\AppData\Local\Temp\Architect. Render V111.aep

- Output File: C:\Users\Admin\Desktop\x.mp4

- Preset Used: Custom

- Video: 1920x1080, 30.000 fps, 1.0000 PAR, <ERROR, GPU does not support NVENC encoding!>, 00:00:13:02

- Audio: 48000 Hz, Stereo (AAC)

- Bitrate: Encoded bitrate: AAC=192 Kbps

- Encoding Time: 00:16:33

11/23/2015 07:06:22 PM : File Successfully Encoded

11/23/2015 07:06:22 PM : Queue Stopped

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
Explorer ,
Nov 23, 2015 Nov 23, 2015

Copy link to clipboard

Copied

Go to Premiere main installation folder and delete txt file called "supported graphics card" or something like that.

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 ,
Nov 23, 2015 Nov 23, 2015

Copy link to clipboard

Copied

I don't have that file its already deleted

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
Explorer ,
Nov 23, 2015 Nov 23, 2015

Copy link to clipboard

Copied

Then I suggest to check my installation guide few post back and set all with that guide.

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 ,
Nov 25, 2015 Nov 25, 2015

Copy link to clipboard

Copied

Done. There is no error now. However, I cant find my output file. I just havent result after render!

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
Explorer ,
Nov 29, 2015 Nov 29, 2015

Copy link to clipboard

Copied

JeDiBanKai‌ you should choose destination at codec choosing window.

splinter66‌ you are doing something wrong. I am using newest drivers in Windows 10 with my Titan X without any problems.

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 ,
Nov 30, 2015 Nov 30, 2015

Copy link to clipboard

Copied

ZiggyGG‌ Actually I'm not doing anything wrong, theres nothing to really do wrong, your comment is quite unhelpful. I copied the prm file to the plugin folder, selected nvenc export option and correct settings so I really cant see that I'm doing something wrong.

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
Explorer ,
Nov 30, 2015 Nov 30, 2015

Copy link to clipboard

Copied

Few post back I wrote step by step how to set that. Please follow my guide.

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