• 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.2K

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 ,
Sep 09, 2015 Sep 09, 2015

Copy link to clipboard

Copied

This is all the menù (Premiere Pro/Workstation)... I can't find it! premiere.JPG

I can find it in Media Encoder, but not in Premiere...

In my laptop (same Windows version, same Premiere and Media Encoder version), it is exactly the opposite thing... I can find the GPU setting in Premiere but not in Media Encoder!

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 ,
Sep 10, 2015 Sep 10, 2015

Copy link to clipboard

Copied

CONTROL + F12 opens a console. Now what? It looks like an empty Notepad editor. How do I enable NVENC decode?

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 ,
Sep 10, 2015 Sep 10, 2015

Copy link to clipboard

Copied

When I try to enter this command the console response is "Command gpu.enablegopformats = true unknown. Try 'con.help'.

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 ,
Sep 11, 2015 Sep 11, 2015

Copy link to clipboard

Copied

Mark, you should select "Debug Database View" from a dropdown list near to the right from the "Console" title (these small horizontal lines icon).

Michele, i think it's related to GPU model and drivers.

And of course it's clear why it's not enabled by default, i have also discovered that GPU decode

currently works only for MOV containers, MTS and M2TS files simply show up as black footage 😕

Decode capability is kinda like an NVENC encode right now - needs a solid stable version.

I hope Adobe will implement them both in the future!

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 ,
Sep 11, 2015 Sep 11, 2015

Copy link to clipboard

Copied

The workstation has a GTX Titan with 355.82 nVidia driver; the laptop has a GTX860M with 355.82 driver (the mobile version). But it's not a problem... It was just curiosity

And I hope, as you do, that Adobe will give us a supported NVENC encoder...

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

Copy link to clipboard

Copied

I eventually found it.. had to click that icon at the top of the window and select the right view. Lots of interesting tweaks in there.

At Level 40, the highest the bitrate will go is 20mb/s. I usually encoded my 24P 1080 BDs at 35mb/s, unless the material is very long form.

Click Ignore on the Assertion failed message and encoding will proceed with no apparent issues.

NVENC smashes through 4K to HD renders at breakneck speeds on my Titan X. Breathtaking. To think I used to wait 14 hours for a MPEG HD encode to BD on my old machine.

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

Copy link to clipboard

Copied

MarkWeiss wrote:


NVENC smashes through 4K to HD renders at breakneck speeds on my Titan X. Breathtaking. To think I used to wait 14 hours for a MPEG HD encode to BD on my old machine.

I finally gathered up enough of a spine to install this to cut my 1440p/60fps h.264 videos.  Formally it was taking my rig time t to export the videos.  After the plugin, 1/2t.  That's impressive!

FWIW I have the same GPU MarkWeiss‌ does x 2.  The plugin apparently will only allow me to use one of them, though.

Either way, I'd love to see Adobe integrate this into Premiere Pro and AME, OEM.  Hopefully everyone's filled out a feature request....  right?

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

Copy link to clipboard

Copied

What would be really great is if Adobe used the GPU to decode XAVC. That seems to be a bottleneck for many people these days.

Banging out a concert video render in about 10 minutes now, compared to 14 hours that I used to wait, takes a lot of the gamble out of finalizing projects. The Youtube excerpts used to take 45 minutes for each 5 minute segment to render at 1080P. Now it's a 20 second affair to render the same length and resolution of clip.

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

Copy link to clipboard

Copied

MarkWeiss wrote:

What would be really great is if Adobe used the GPU to decode XAVC. That seems to be a bottleneck for many people these days.

My point:  Adobe (via Kevin M) has stated that they want to try to be more helpful to the gaming/YouTube community.  The accepted editor within that community is Sony Vegas.  Nearly everyone doing gaming vids uses it.  One thing they have to address is VFR source footage.  They have to do that if they want to be considered useful in the aforementioned market.  XAVC isn't even remotely a concern there.

The second thing they should consider, since every YouTuber is exporting to h.264 mp4: use the HVENCs available on both the nVidia and the AMD GPUs.

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

Copy link to clipboard

Copied

Another reason people use Vegas is no monthly fees.

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

Copy link to clipboard

Copied

But it's not compatible with my GTX 970, the GTX 460 used to work there until i changed to a 660/970... It uses the CPU but NOT the superspeed of my GPU.

Also, vids cameout a bit dark of output , while CC doesn't (without any brightness setting touched)

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 ,
Sep 09, 2015 Sep 09, 2015

Copy link to clipboard

Copied

In trying to debug another program, this plugin was found by Google for me, so I happily added it to PP CS6.  My only motivation is BluRay compliant streams so all my testing is in that area.   Since the plugin can only handle progressive sources (right?), the largest frame size I can generate is 1280x720, NTSC 59.94fps.  I'm using 347.88 on a GTX 650, Win 7 x64.   Maybe my observations can help others.

* The Feb 2015 release of 1.09 is the last version that works for me, using high profile @ 4.0.

  >>> Profiles of 4.1 and above don't generate compliant streams because the VBV buffer size is out of spec.    Unfortunately no amount of change to the VBV size parameter helps.    Quite possibly there is some other setting that marks the steam HDMV compatible.

* All updates by irisb50359875 seem to have broken even 4.0 level steam generation with assertion failures.

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 ,
Sep 10, 2015 Sep 10, 2015

Copy link to clipboard

Copied

I thought profile 4.1 worked but is limited to 20mb/s?

I'm getting assertion errors with the Titan X GPU, but if I ignore them, it works anyway. But the streams are not BD compliant.

I recall 4.1 working on my old Core2Quad with GTX680.

Presently, I only use it for Youtube exports. It's very quick for that. In fact, the other day I had to export just the audio track from a concert to make a CD. It was annoyingly slow, compared to exporting h.264 video with this plugin. So much progress has been made in rendering video at breakneck speeds, that now audio export lags behind!

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 ,
Sep 10, 2015 Sep 10, 2015

Copy link to clipboard

Copied

First off, level 4.0 allows up to 24Mpbs, which is roughly has as high as my either of my camcorders generates its 1080p streams.   Given that BD can only go as high as 1080i, the plugin's maximum compatible BD stream would be 720p.    For that level 4.0 is plenty.

Using the old 1.09 plugin, generating a level 4.1 BD steam, it's not compatible due to VBV size being out of spec.     For me 720p and 4.0  is fine as I work manly with soccer videos, where 720p @ 59.94 fps is way better than 1080i @ 29.97.

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 ,
Sep 11, 2015 Sep 11, 2015

Copy link to clipboard

Copied

Adobe Premiere Pro CC 15, gpac-0.5.2-DEV-rev625-g1f8466a-master, nvenc_export_v109, NeroAACCodec-1.5.1

i5-4690K

gtx 980 (355.82 WHQL)

Win 10 Pro x64

123123.jpg

How to get rid of this error?

Please help, 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
New Here ,
Sep 21, 2015 Sep 21, 2015

Copy link to clipboard

Copied

HELP!

This plugin is amazing, actually uses the GPU, however I would like the output format is Blu-ray .m2v

PLEASE appreciate your kindness.

Add me on facebook:

https://www.facebook.com/jersson.anastaciojimenez

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

Copy link to clipboard

Copied

I have to question WHY you'd want m2v as the output extension?   Is it because that's what your edit software expects?

BluRay format for authoring software is usually either an elementary steam or transport stream.

Elementary stream is just that, separated Video and Audio

.m2v = MPEG2

.m4v = H264

Now, as far as I understand NVENC, it is an H264 or H265 encoder so .m2v would be an invalid extension.

Be aware that you can rename any extension to anything else and for many dumb or inflexible programs, it's what you need to do.

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

Copy link to clipboard

Copied

Hi guys, I'm having a issue, when i "encode" my video to Mp4 or TS with the nvenc tool, my video plays ok with any player but when i try to export it again to premiere my preview it's all GREEN, i can hear all the audio stuff and even go forward and backwards but theres just a green screen there... i don't know what happend anyone with this issue???

Snap2.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 ,
Oct 03, 2015 Oct 03, 2015

Copy link to clipboard

Copied

Hi! Apparent problem: h264 video made on a system with drivers dated later 353.62, not encoded Harmonic ProMedia Carbon (long attempts, scored several gigabytes of RAM ivydaёt error). It turned out that the only important thing in what driver file is created - if it is 353.62 and less - the Carbon encodes any drivers. What has changed and become compatible with the encoder?

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

Copy link to clipboard

Copied

Hello, i have a probleme: APP CC 2015 works fine when I`m trying to render video in 30 fps, but if i select 60 fps and try to export it - this is what I get (source video is 60 fps)

fRZVN7C.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
New Here ,
Oct 05, 2015 Oct 05, 2015

Copy link to clipboard

Copied

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

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

Copy link to clipboard

Copied

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?

gbhjkjhnj.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 ,
Oct 08, 2015 Oct 08, 2015

Copy link to clipboard

Copied

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

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

Copy link to clipboard

Copied

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)

25.PNG26.PNG27.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 ,
Oct 21, 2015 Oct 21, 2015

Copy link to clipboard

Copied

what you want?

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