• 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

372.3K

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 ,
May 17, 2015 May 17, 2015

Copy link to clipboard

Copied

I'm getting rendered in fine form with these settings. But when I wanted to fast forward video created and can not fast-forward media player crashes. There is no problem when I watch the beginning. but locks up when I want to wind forward. I wonder what is the problem.

xccc.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
Participant ,
May 19, 2015 May 19, 2015

Copy link to clipboard

Copied

I am in serious trouble!.

It's been a time i haven't updated NVENC_Export and now i've wanted to try out it's latest February 2nd version (or 1.09). Now i can't export A-NY-THING!!!!.

It gives me the following error:

AmMRrer.jpg

Back then, i don't know now wich version i had, I was only able to export to 1280x720 and at 29,97NTSC FPS (If i tried 1920x1080 an error would come up and well,NOPE!,nothing,just close down the app). The Mp4box and Nero Audio thing were correctly set, i even saved the Format/Setting into a setting to never forget and it's still there. Everything worked fine until this version came up and just updated the contents of the Nvenc_export.prm files like the instructions said (Dunno if mp4box and Nero were updated too though). Wanted to install this 1.09 version to see if i could finally be able to export to 1920x1080 60FPS for gameplay recordings)

I NEED HELP!!!!. Using Adobe Premiere Pro CC 2014.2  and the most recent Nvidia drivers released (the ones with Windows 10 support). Please help me out!!. Any kind of instructions will be helpful (I'm TOTAL NOOB,sorry X_X;;; )

Thanks in advance

EDIT: If i click "Omitir" (Skip/Ignore) at 1280x720 and 29,97 or 60FPS it'll encode as normal, but i don't want anymore errors to happen!.I want to start CLEAN. Also,besides of eliminating this error (so whenever i press Export it goes straight into action, i'd like to do 1920x1080@60FPS exportings too. Any solution to that? (But first, please, a solution to my problems!)

EDIT 2: Seems the files from the system32/SysWOW64 from the nvcuvenc_337.94.rar RAR were removed. Placed 'em again ,but still no 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
New Here ,
May 21, 2015 May 21, 2015

Copy link to clipboard

Copied

Same here, after last NVIDIA drivers update...

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 ,
May 21, 2015 May 21, 2015

Copy link to clipboard

Copied

Pretty much the same issue as well, except I am able to do 1080p 60FPS.

On a side note, MP4box seems to crash when I try to use it. I'm not sure if it is relevant, or a separate issue all together.

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 ,
May 27, 2015 May 27, 2015

Copy link to clipboard

Copied

+1 to your problem. NVENC used to work correctly (I used it for my school project to encode to 1080p24). But since the Game Ready driver for the Witcher 3 was dropped it stopped working for me. I get the same error as you, FYI I'm trying to encode in 1080p24 again. I could try 720p for the time being cause Unreal Engine doesn't know how to handle 1080p yet properly (look Ether One on PS4 and applying 1080p videos yourself). But having the full functionality back would be a plus.

Update: even 720p doesn't work for me... Guess I'll go back to good old CPU encoding then for the time being

Update 2: It DID encode in both 1080p and 720p it just exported into the wrong folder (my fault hehe) it still works by clicking ignore, however it shows some weird codec data in VLC. False alarm for me (oops)

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
Contributor ,
May 27, 2015 May 27, 2015

Copy link to clipboard

Copied

Maybe the problem is CC? It works like a dream on CS6.

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

Copy link to clipboard

Copied

I've CC 2014, with the last updates. With the last two nVidia drivers, nvenc did'nt work for me. I came back to the 347.62 version (clean installation, from CUDA 7 package, about 980 Mb to download!) and now nvenc starts working again , from Premiere. I have to do some more tests with AME... it has had some crashes with Game Ready Drivers... I uninstalled and reinstalled AME, and on Monday I'll test 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 ,
May 31, 2015 May 31, 2015

Copy link to clipboard

Copied

I've removed drivers and installed CUDA 7 package (347.62), nothing changed, still the same error.

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 ,
May 31, 2015 May 31, 2015

Copy link to clipboard

Copied

Hi,

First of all great work on this! I can't wait to get this working But wait, I must, because I'm getting some errors

When I try to export a movie I get "Error compiling movie: Unknown error".

I've tried with the default m4v settings, and the default mp4 settings (with MP4box and Nero AAC Enc). I have the C++ 2010 SP1 installed.

I have the following setup:

GTX680 2GB

AMD X6 1055T (has SSE3)

Premiere Pro CC (latest cloud edition)

Nvidia Drivers: 350.12

Windows 7, 64 bit

16GB RAM

I'd like to help for the cause of this problem, but with an 'Unknown error' I'm not sure where to start!

Is there a log file somewhere with more information? I saw a lot of 'fprintf(stderr, ' in the source code? Or are these errors displayed in Premiere Pro?

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 ,
May 31, 2015 May 31, 2015

Copy link to clipboard

Copied

OK, it seems to be something with the project I was using. It works better when I try a blank project with a single video file (Premiere Pro crashed due to a "serious error" at the end of the export). I'll experiment more and report back.

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 04, 2015 Jun 04, 2015

Copy link to clipboard

Copied

So... I'm comin' mad tonight... Yesterday I rendered a lot of files with nvenc_export (last version), without any problem... tonight, It's almost impossible to make an error free rendering (error compiling movie: unknown error). I'm using the same software (Premiere Pro CC 2014 with all the last updates), the same render preset, the same driver, the same pool of effects, the same source for videos and the same destination for my output file. I'm rendering at 1600x1200. I noticed that sometimes the render plugin suffers for the presence of corrupted (?) preview files in the preview folder (even with "use previev files" cell is not selected)... now I'm trying to render after the deletion of these files and after clearing the cache folder... let's see... the most frustrating thing (for me, on my pc) is the unpredictable behavior of the plugin... with the same setting, sometimes it works, sometimes returns unknown error... sometimes AME works and Premiere doesn't not, sometimes is the opposite thing... nvenc_export is fantastic (when it works), but needs more stability.

Edit: I found another "random" (?) problem: when the rendering starts, sometimes the outputted file is not in sync with audio, even if in the Premiere Timeline is ok. I can't understand if the problem is the source video, the source audio or the codec itself.

My pc: i7-2600k, 32 Gb DDR3-1866, nVidia GTX Titan with Double Precision Enabled, 1 Tb SSD Raid0 for software (even the Adobe Suite), 240 Gb SSD OCZ Vertex4 as "working folder", 100 Gb OCZ RevoDrive X2 as cache disk for the Adobe Suite.

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 05, 2015 Jun 05, 2015

Copy link to clipboard

Copied

Yes i had the same problem. It seems random too. The video after exported is out of sync on the end, (long video). The problem seems occur with specific videos/project because in this project it is always out of sync after multiple exports, but others projects not. In timeline audio is ok.

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 ,
Jun 06, 2015 Jun 06, 2015

Copy link to clipboard

Copied

check for any still frames

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 06, 2015 Jun 06, 2015

Copy link to clipboard

Copied

Hello! Thanks for your answer.

In the "problematic" encodings, one only has still frames... the other one is made from AVCHD files from a Sony MC2000E, with audio wav from Audition. I noticed the still frames problem... And I found a workaround... I need to apply an animation effect (a light, or something other) to the picture (even where it can't be seen!), and NVENC_export encodes the video. But let the encoder start is... ... quite difficult!

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
Contributor ,
Jun 11, 2015 Jun 11, 2015

Copy link to clipboard

Copied

For any stills, I find that setting a keyframe keeps the 'clock' running for those durations and alleviates the a/v synch problems.

Now that I'm editing 4K video from my Sony PXW-FS7 (captured on my Atomos Shogun in ProRes--the only way to get it into Premiere), it is interesting to note that NVENC can export QFHD files at high speeds from 4K timeline. I've published a number of 2160P videos on Youtube this past week. Without NVENC, it would probably be still rendering.

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 12, 2015 Jun 12, 2015

Copy link to clipboard

Copied

The problem here actually is that there's still no solution for the NVENC_Export issue caused by the latest Nvidia Drivers mentioned in the previous page by me and a few others..

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 ,
Jun 13, 2015 Jun 13, 2015

Copy link to clipboard

Copied

Same problems here with NVIDIAs latest drivers. I have expanded the code in CNVEncoder - where the error occurs - with all missing input formats and thus removed the error message.

Another problem named in this thread is the missing possibility to use the HQ preset and output an MP4 file with AAC audio. This was probably  caused by the fact that the original plugin did produce garbage from the settings of the embedded MediaInfo string at the beginning of the output file.

After completely removing this MediaInfo string, now the output with the HQ preset to an MP4 file with AAC audio is working. You can download the revised plugin here:

                https://drive.google.com/open?id=0BwViiZKy_eFpfkxHeVI0Y0RHU0Yycm9NQ3pLMldsOFA0RU9ZclZBdHhkblJ3dzFJeE...

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 13, 2015 Jun 13, 2015

Copy link to clipboard

Copied

First of all, IT WORKS!!!!!!!!!!!!!!!!. THANK YOUUUUU ;w; (Drama decreased)

Second, is it ok to leave this "NV_ENC_LEVEL_H264" (Located at the Video tab whenever you're going to the Export option) to "NV_ENC_LEVEL_AUTOSELECT" for any kind of 720/1080p@30/60FPS Situation...?. I'm saying it coz i noticed the pop up message whenever i rolled the mouse over the dropdown tabby option and saw the meaning to each one, but i normally do what i said before about the "Situation".. And also, choosing this option for example 1080p@60FPS did NOT shown the error message and started exporting the file right away (Wich came out SUCCESSFUL TO THE END OF THE PROCESS)

Please let me know so i can make 4 profiles for Premiere CC 2014 and save me some time ;w; (aka 720@30/60FPS and 1080p@30/60FPS profiles)

THANKS IN ADVANCE, LIFE SAVIOR!!!

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

Copy link to clipboard

Copied

irisb50359875 Thank you for that last upload, it solved all my problems.  I can now export 1080p MP4 with AAC for youtube in seconds.  It's amazing

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 ,
Jul 01, 2015 Jul 01, 2015

Copy link to clipboard

Copied

I have a tiny doubt.

Back then, whenever i encoded 720p@25/60FPS vids in MP4, their exported sizes were smaller than now..

Back then a 44min 25FPS was 2,40GB and a 33min 60FPS was 4,18GB

Now, choosing the "AUTOSELECT" GUI thing, 1080p and 60FPS, 1 hour vid,the exported result was 10,4GB!!! while the "Estimated export size" was like 6,6GB

HOWEVER, choosing 720p@25FPS and the same 1h vid has THE SAME ESTIMATED EXPORT SIZE!!!..Didn't wanted to lose time now due to personal reasons..

Is this a possible bug or why is this possibly happening?..Or perhaps i've smoked something up ^^;

Using the latest Nvidia drivers and the updated nvenc_export.prm (or whatever) file that makes it work without probs.

Thanks in advance

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 ,
Jun 13, 2015 Jun 13, 2015

Copy link to clipboard

Copied

I noticed that the nvencoder changes the brightness of the video when exporting02.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
New Here ,
Jun 13, 2015 Jun 13, 2015

Copy link to clipboard

Copied

Hello, amazing job u have done here, been using this for months already but lately without making any changes started to get this error can u help me?

Capture.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
Advocate ,
Jun 19, 2015 Jun 19, 2015

Copy link to clipboard

Copied

Have folks who are using (or trying to use) this excellent plug-in gone through the process of providing Adobe a feature request for this?  That way it's OEM, and integrated a bit better.

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 ,
Jul 03, 2015 Jul 03, 2015

Copy link to clipboard

Copied

Here is another slightly improved version of the plugin:

https://drive.google.com/file/d/0BwViiZKy_eFpWHhHY0dIak1oNkk/view?usp=sharing

There are still some problems with the plugin - e.g. outputting with the HEVC codec is writing the wrong image-height into the header of the file

(1088 instead of 1080 and 2176 instead of 2160). I have not yet found the position in the source code in order to correct that.

But for example MPC-HC seems to play the file correctly by not using the wrong image dimensions from the header.

Be aware that this is still a "proof-of-concept" plugin as nvenc4everyone stated it - and it might be rough at some edges.

I am mostly using the following H.264-settings and outputting aac/mp4 audio and only change the vido-settings
under NV_ENC_PRESET, NV_ENC_LEVEL_H264 and under the  "Sample basic video param group":

NVEnc-Settings_a.PNG

NVEnc-Settings_b.PNG

With these settings I do get file sizes comparable to what the original Adobe-Encoder (Mainconcept) delivers. 

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 ,
Jul 03, 2015 Jul 03, 2015

Copy link to clipboard

Copied

Hmmm it's been a loooong time i haven't seen the "Max/Target bitrate mbps" option, that's the CULPRIT!!!... I've set that to 5 both like an ol' tutorial and now it changed THE SAME VID AS BEFORE to 2,3GB 1080p25FPS PAL..

Lemme give it another try..

BTW, that updated nvenc_export.prm file cause the "Estimated Time Left" mini window when exporting to FREEZE TWICE and making Adobe stop working... Good thing i've kept the version BEFORE THE NEW ONE you upped and back to normal... I've been a tester, been there, done that...

Also, i used "Autoselect" better in the  nv enc lvl thing because else i'd get the Log Error drama like before, hope you understand

Thanks,i'll let ya know...

PS: Sorry for a tiny on/off-topic but... Where are the settings for the Adobe Programs located at?.. I'd save me a *BEEP*-ton of time to reconfigure profiles, settings, shortcuts etc...Please?

EDIT: 1080p@25FPS 5MBps Bitrate thing to both and using ya options (Except, again, autoselect) = 2,3GB!!...SAAAAVIOOOOUR!

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