1 2 3 Previous Next 401 Replies Latest reply on Jun 23, 2017 5:48 AM by sidew98600302 Branched to a new discussion.

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

    nvenc4everyone Level 1

      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.

        • 1. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
          nvenc4everyone Level 1

          Download link:

           

          ...Whoops, I knew I forgot something ...

           

          This is hosted on Google-drive:

           

           

               Version v1.01 (June 27, 2013) - https://docs.google.com/file/d/0B96CRWkNxmWdSElqaDhZOXV6T3M/edit?usp=sharing

           

          When you click on the above link, it will open the contents of the ZIP-container (nvenc_export_v101.zip)

          Don't download the individual files, you'll want the whole ZIP file:

           

          how_to_download_nvenc.png

          • 3. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
            nvenc4everyone Level 1

            NVENC_export Version v1.02 (July 13, 2013) is now available -

             

            • Now supports exporting to *.MP4 file (requires third-party tool MP4Box.EXE)
            • Now supports AAC-audio (requires third-party tool NeroAacEnc.EXE)
            • No longer includes TSMuxer.exe (you must download that separately)

             

            Download link:

             

                 NVENC_export Version v1.02 (July 12, 2013) - https://docs.google.com/file/d/0B96CRWkNxmWdLTF2Z3N1TGUtYVE/edit?usp=sharing

             

                 NVENC_export Version v1.02 (July 13, 2013) - https://docs.google.com/file/d/0B96CRWkNxmWdLVRWeFNXWEh4NVE/edit?usp=sharing

             

            When you click on the above link, it will open the contents of the ZIP-container (nvenc_export_v102.zip)

            Don't download the individual files, you'll want the whole ZIP file:

            how_to_download_nvenc_v102.png

             

            Third party tools:

             

            (1) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download and install the following third-party tools:

             

            (2) To enable AAC-audio output, you must download and install NeroAacEnc.

             

            Known problems:


            Unfortunately, the <Multiplexer> tab sometimes shows up without the label/description.  It still works, but see the picture below.  (Look to the left of the <Video> tab.)

            [Edit]: <July 13 release> should fix this problem.

            premiere_nvenc_102_ss.png

             

            Message was edited by: nvenc4everyone (update to July 13 release)

             

            Message was edited by: nvenc4everyone (fix download-link to July 13 release)

            • 4. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
              xGerjann Level 1

              Hi! First of all. Thanks for the encoder! Works great!

               

              I am really positive about the hardware encoding, and wanted to share my results with you.

               

              The hardware that is used in this example is:

               

              HP XW8600 Workstation

              2x Intel Xeon Quad Core E5450 3.0GHz

              16GB Ram

              Point of View (Factory Overclocked) GTX680 2GB

               

              I have used a premiere project that was 3 and a half minutes long, had multiple layers, color correction, upscaling (and maybe something else I might forgot). With the mainconcept encoder it took exactly 5 minutes to encode the project. With the hardware encoder it only took 1 minute and 10 seconds to encode!

               

              I hope Adobe picks this up and implements it in the software. It saves a LOT of time exporting!

               

              Anyway, thanks for the encoder!

              1 person found this helpful
              • 5. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                TomiCakeOfficial Level 1

                Hey, cool feature, but it only works in Premiere and doesn't in Media Encoder.. PLS help me - TomiCake

                • 7. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                  Airdoo Level 1

                  This is awesome, keep working on it. I'm trying it out right now, so I'll come back with comments once my test video is done!

                  • 8. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                    nvenc4everyone Level 1

                    I don't have much more time to work on this project, so this will probably be the final release.

                     

                    NVENC_export Version v1.03 (August 17, 2013) is now available -

                     

                    • Before, when the muxer was used (MP4 or MTS), nvenc_export would create temporary file(s) with the same basename as the output file.  If the output directory happened to have a file with the same name as nvenc_export's temporary file(s), they were silently overwritten.  (For example: when expoting to "my_movie.mp4", nvenc_export would create "my_movie.m4a" and "my_movie.264"

                     

                    • Now, nvenc_export chooses a temporary filename that is less likely to accidentally overwrite other files in the same directory: "my_movie_###.m4a" and "my_movie_###.264" (where ### is a random number.)

                     

                    • NVENC_export is now compiled with Microsoft Visual Studio 2012 and the NVidia CUDA SDK 5.5. (Previous versions were compiled with VS2010sp1 and CUDA SDK 5.0)  Due to the switch to CUDA 5.5, nvenc_export requires that you have a newer Geforce GPU driver (May 2013 or newer.)  If it's not already installed, you'll need to download and install Visual C++ Redistributables for Visual Studio 2012 Update 3.

                     

                    Download link


                      NVENC_export Version v1.03 (August 17, 2013) - https://docs.google.com/file/d/0B96CRWkNxmWdaXMtX0d3UHBQT1E/edit?usp=sharing

                    nvenc_export_103_download.png

                    When you click on the above link, it will open the contents of the ZIP-container (nvenc_export_v103.zip)  Don't download the individual files, you'll want the whole ZIP file.

                     

                    • You will also need to downoad and install the following item from Microsoft:

                    "Visual C++ Redistributable for Visual Studio 2012 Update 3"

                     

                     

                    Third party tools:

                     

                    (1) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download and install the following third-party tools:

                    (2) To enable AAC-audio output, you must download and install NeroAacEnc.

                     

                    Known problems:

                    (Same limitations as previous versions.)

                     

                    (1) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download the third-party tools mentioned above.

                     

                    (2) NVENC does not support interlaced-video output. If you attempt to output interlaced video, the plugin will either crash, or generate a corrupt video bitstream.

                     

                    (3) NVENC does not support (AC3) Dolby Digital audio, only PCM.  (And AAC, if you separately download and install NeroAacEnc.)

                     

                    (4) When outputing video Level5 H264 video (i.e. video larger than 1920x1080), the bitrate-control modes don't work correctly, and will result in an abnormally small and bad looking video.  To workaround this, change the rateControl setting to RC_CONSTQP

                     


                    Source code link

                    This section is only for software-developers who are interested in recompiling nvenc_export.

                    The C++ source-code can be downloaded from the following link

                     

                      NVENC_export Version v1.03 SRC (August 17, 2013) - https://docs.google.com/file/d/0B96CRWkNxmWdbkYwdkVENlBuMDg/edit?usp=sharing

                     

                    (nvenc_export is distributed under the LGPL license.)

                     

                    I must apologize for the condition of the source-code.  I'm not a professional software developer, so some dir/paths might not work correctly out-of-the-box.  You'll need to know your way around Windows application development to fix some basic compile environment issues (for example, "d3dx9.h missing".)

                     

                    Also, you will need the following items (not included in the above link) to recompile NVENC_export:

                     

                    • NVENC client license key

                    License-key can only be purchased from NVidia, it is not included in the above link.  (You can re-compile nvenc_export without the client-key, but the plugin won't encode any video because NVidia requires the client-key to unlock the driver's nvenc API.)


                    • Microsoft Visual Studio 2012 Pro (with Update 3)

                    This can be downloaded for free, through Microsoft's "WebSiteSpark" program.

                     

                    • Microsoft DirectX SDK (June 2010)

                    Download it from Microsoft

                     

                    • NVidia CUDA 5.5 SDK

                    Download it from NVidia

                     

                    • NVidia NVENC 2.0 SDK

                    Download it from NVidia

                     

                    • Adobe Premiere CS6 SDK

                    Download it from Adobe

                    • 9. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                      Jakub Kopriva Level 1

                      Hallo,

                      with default settings was my video rendering 8-10 times faster then with CPU. I would like tu user MP4 mux.

                      I followed your instructions and downloaded MP4box.exe but my Premiere Pro sais, path to MP4box.exe is not valid. Recommendation is to confirm path to MP4box.exe, but there is no option how to set the path, see my image. Are you onto this problem? Can I expect to work it in a future?

                      error.jpg

                      Thank you for your answer.

                      • 10. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                        nvenc4everyone Level 1

                        Jakub,

                         

                        from your output summary, it appears that you've selected AudioFormat "Stereo <PCM>"

                        The MP4 muxer doesn't allow <PCM>, it only supports AAC (or no audio.)  When PCM-audio is selected in the >Audio< tab, then the >Multiplexer< tab will hide the <MP4> option.  That's why you can't see it (it should be impossible to choose that combination so most likely that's a bug in nvenc_export.)

                         

                        Anyway, could you try the following:

                        (1) Go to the >Audio< tab and change it to <AAC>.

                        (2) When you return to the >Multiplexer< tab, then you will be able to select MP4. (You will need to download NeroAacEnc from www.nero.com)  The >mp4box.exe filepath< setting will also be visible.

                         

                        (Alternatively, you can export <WAV> audio if you change the multiplxeing choice to <TS>; that will chose MPEG-2 transport stream.  However, Windows Media Player doesn't support WAV-audio inside *.ts files, and your exported videos will play without sound.)

                        • 11. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                          Kent Purdy Level 1

                          nvenc4everyone:

                          Thank you.What a great codec.Super fast.My problem is the encoded files disappear as soon as AME finishes its work.I can see the m4v file in the save folder but then its gone at the instant AME finishes.Thanks for any reply.

                          Kent

                          • 12. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                            nvenc4everyone Level 1

                            I don't have much more time to work on this project, so this will probably be the final release.

                             

                            NVENC_export Version v1.04 (Sep 6, 2013) is now available -

                             

                            • Silly me!  v1.03 introduced a nasty tempfilename bug.  If multiplexing was disabled, then nvenc_export deleted the raw output files (*.m4v, *.m4a).  This worked correctly in earlier release v1.02, and is now fixed in v1.04.

                             

                            • NVENC_export now supports interlaced-video encoding (sort of.)  Note that interlaced-encoding only works with the selection Field Type: <Upper First> (If you use <Lower First>, then the exported file will be corrupt and unusable.)

                             

                            Download link


                              NVENC_export Version v1.04 (Sep 6, 2013) - https://googledrive.com/host/0B96CRWkNxmWdODdiQ05QS1l0M0U/nvenc_export_v104.zip

                             

                             

                            • You will also need to download and install the following item from Microsoft:

                            "Visual C++ Redistributable for Visual Studio 2012 Update 3"

                             

                             

                            Third party tools:

                             

                            (1) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download and install the following third-party tools:

                            (2) To enable AAC-audio output, you must download and install NeroAacEnc.

                             

                            Known problems:

                            (Same limitations as previous versions.)

                             

                            (1) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download the third-party tools mentioned above.

                             

                            (2) If encoding to interlaced-video, you must set the Field Type to Upper First. Other choices will cause the plugin to crash, or generate a bad (unusable) file.

                             

                            (3) NVENC does not support (AC3) Dolby Digital audio, only PCM.  (And AAC, if you separately download and install NeroAacEnc.)

                             

                            (4) When outputing video Level5 H264 video (i.e. video larger than 1920x1080), the bitrate-control modes don't work correctly, and will result in an abnormally small and bad looking video.  To workaround this, change the rateControl setting to RC_CONSTQP

                             


                            Source code link

                            This section is only for software-developers who are interested in recompiling nvenc_export.

                            The C++ source-code can be downloaded from the following link

                             

                              NVENC_export Version v1.04 SRC (Sep 6, 2013) - https://googledrive.com/host/0B96CRWkNxmWdODdiQ05QS1l0M0U/nvenc_export_src_v104.zip

                            [The V1.03 SRC forgot to include a dependent project "cudaDecodeD3D9", which is required by the command-line encoder nvEncode2.  This is now included in v1.04 SRC]

                             

                            (nvenc_export is distributed under the LGPL license.)

                             

                            I must apologize for the condition of the source-code.  I'm not a professional software developer, so some dir/paths might not work correctly out-of-the-box.  You'll need to know your way around Windows application development to fix some basic compile environment issues (for example, "d3dx9.h missing".)

                             

                            Also, you will need the following items (not included in the above link) to recompile NVENC_export:

                             

                            • NVENC client license key

                            License-key can only be purchased from NVidia, it is not included in the above link.  (You can re-compile nvenc_export without the client-key, but the plugin won't encode any video because NVidia requires the client-key to unlock the driver's nvenc API.)


                            • Microsoft Visual Studio 2012 Pro (with Update 3)

                            This can be downloaded for free, through Microsoft's "WebSiteSpark" program.

                            • Microsoft DirectX SDK (June 2010)

                            Download it from Microsoft

                            • NVidia CUDA 5.5 SDK

                            Download it from NVidia

                            • NVidia NVENC 2.0 SDK

                            Download it from NVidia

                            • Adobe Premiere CS6 SDK

                            Download it from Adobe

                            • 13. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                              nvenc4everyone Level 1

                              Yes, that was a silly boo-boo on my part .   The <Sep 6, 2013> release fixes that problem.

                              • 14. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                Jakub Kopriva Level 1

                                Hallo,

                                I appreciate your help. Sorry for bothering you again, but I can't see any options in AUDIO. I have downloaded the AAC Nero encoder, but there is no installation path. It's just .exe file with the encoder itself.

                                I am attaching some screenshots, what I can see in Encoder. I am using 64-bit Win 7.

                                01.jpg02.jpg03.jpg04.jpg05.jpg06.jpg07.jpg08.jpg09.jpg

                                • 15. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                  nvenc4everyone Level 1

                                  My apologies... I'm unable to duplicate this exact problem on my end.  But I have noticed that if you use an older-preset with the newer version of nvenc_export plugin, the older-preset will hide dialog-boxes and options.  The best way to avoid this, is to import one of the presets from the ZIP file.  In the zipfile, they're in this subdir: sharingcenter/Presets/pc/OTHERS/nvenc_export

                                   

                                       sharingcenter/Presets/pc/OTHERS/nvenc_export/nvenc_export_31_1920_1080i30.epr

                                       sharingcenter/Presets/pc/OTHERS/nvenc_export/nvenc_export_31_1920_1080p24.epr

                                   

                                  Alternateively, you can run Adobe Media Encoder, and from there, delete ALL of the nvenc_presets that you've created.  The next time you open the nvenc_export plugin, Adobe will rebuild a default-preset from scratch.  And hopefully, all of the missing dialog-boxes/options should be visible:

                                   

                                  ame_presets.png

                                  • 16. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                    nvenc4everyone Level 1

                                    I don't have much more time to work on this project, so this will probably be the final release.

                                     

                                    NVENC_export Version v1.06 (Dec 13, 2013) is now available -

                                    NVENC_export Version v1.05 (Dec 7, 2013) is now available -

                                     

                                    • [1.06] in Premiere Elements, fixed hang caused by audio-export format being incompatible with project audio settings (eg. stereo-audio project to 5.1-audio export)  Now, the plugin will gracefully abort the export and complain about the incompatible audio format.

                                     

                                    • [1.05] Upgraded NVENC API from 2.0 to 3.0 -- this adds one new encoding option: enableVFR (variable frame rate)

                                     

                                    • [1.05] Note, you must have the latest NVidia Geforce drivers installed on your system (Dec 2013.)  Older Geforce drivers do NOT support API 3.0, and will fail with this plugin release.

                                     

                                    Download link  NVENC_export Version v1.05 (Dec 7, 2013) - https://googledrive.com/host/0B96CRWkNxmWdODdiQ05QS1l0M0U/nvenc_export_v105.zip

                                    NVENC_export Version v1.06 (Dec 13, 2013) - https://googledrive.com/host/0B96CRWkNxmWdODdiQ05QS1l0M0U/nvenc_export_v106.zip

                                     

                                    • You will also need to download and install the following item from Microsoft:

                                    "Visual C++ Redistributable for Visual Studio 2012 Update 4"

                                     

                                    Installation tutorial:

                                    nvenc_export installation tutorial part 1/3: http://youtu.be/wPrcQ133YE0

                                     

                                    Third party tools:

                                     

                                    (1) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download and install the following third-party tools:

                                    (2) To enable AAC-audio output, you must download and install NeroAacEnc.

                                     

                                    Known problems:

                                    (Same limitations as previous versions.)

                                     

                                    (1) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download the third-party tools mentioned above.

                                     

                                    (2) If encoding to interlaced-video, you must set the Field Type to Upper First. Other choices will cause the plugin to crash, or generate a bad (unusable) file.

                                     

                                    (3) NVENC does not support (AC3) Dolby Digital audio, only PCM.  (If you separately download and install NeroAacEnc, then AAC-audio is supported.)

                                     

                                    (4) When outputing video Level5 H264 video (i.e. video larger than 1920x1080), the bitrate-control modes don't work correctly, and will result in an abnormally small and bad looking video.  To workaround this, change the rateControl setting to RC_CONSTQP

                                     


                                    Source code link

                                    This section is only for software-developers who are interested in recompiling nvenc_export.

                                    The C++ source-code can be downloaded from the following link

                                     

                                      NVENC_export Version v1.05 SRC (Dec 7, 2013) - https://googledrive.com/host/0B96CRWkNxmWdODdiQ05QS1l0M0U/nvenc_export_src_v105.zip

                                      NVENC_export Version v1.06 SRC (Dec 13, 2013) - https://googledrive.com/host/0B96CRWkNxmWdODdiQ05QS1l0M0U/nvenc_export_src_v106.zip


                                    (nvenc_export is distributed under the LGPL license.)

                                     

                                    I must apologize for the condition of the source-code.  I'm not a professional software developer, so some dir/paths might not work correctly out-of-the-box.  You'll need to know your way around Windows application development to fix some basic compile environment issues (for example, "d3dx9.h missing".)

                                     

                                    Also, you will need the following items (not included in the above link) to recompile NVENC_export:

                                     

                                    • NVENC client license key

                                    License-key can only be purchased from NVidia, it is not included in the above link.  (You can re-compile nvenc_export without the client-key, but the plugin won't encode any video because NVidia requires the client-key to unlock the driver's nvenc API.)


                                    • Microsoft Visual Studio 2012 Pro (with Update 4)

                                    This can be downloaded for free, through Microsoft's "BusinessSiteSpark" or "DreamSpark" program.

                                    • Microsoft DirectX SDK (June 2010)

                                    Download it from Microsoft

                                    • NVidia CUDA 5.5 SDK

                                    Download it from NVidia

                                    • NVidia NVENC 3.0 SDK

                                    Download it from NVidia

                                    • Adobe Premiere CS6 SDK

                                    Download it from Adobe

                                     

                                    Message was edited by: nvenc4everyone (updated to v1.06)

                                    • 17. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                      belkyros Level 1

                                      Hello.

                                      Your plugin is so great!

                                       

                                      Well, I also have considered trying to implement "NVEnc" to another software.
                                      If you do not mind, could you tell me where you have purchased a "NVENC client license key?"
                                      I looked on the Internet, but it couldn't be found for me.

                                      Without that key, I can't use the "NVEnc" on the "non-GRID GeForce" on another software.

                                      So, I want to buy it.

                                       

                                      I hope that you post the Hyperlink.

                                      P.S.
                                      This text, translated using "Google Translate".
                                      I'm sorry if you find some mistakes.

                                      • 18. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                        Rover965 Level 1

                                        Would love to view the results (it appears fast!), but I have the same problem as someone above...when using mp4box to create mp4 file, it simply deletes the files when done.

                                         

                                        I can see the temp files while it creates them, then Nero AAC works fine, then mp4box runs and when AME says the job is complete the temp files are deleted and no mp4 is present.

                                         

                                        This is with the latest Dec. version.  Also tried the Sept 6 vversion since it was mentioned as a possible fix for this issue.

                                         

                                        Any ideas on how to make this work?

                                         

                                        Thanks!

                                         

                                        P.S. The language appears to be missing as well.  Evenerything appears like NV_ENC_H264_PROFLE_HIGH_GUID instead of actual names/words.

                                        • 19. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                          Joe Riggs Level 1

                                          Thanks, any chance for a mac version?

                                          • 20. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                            FreshMan1999 Level 1

                                            This plugin works well on Windows 7 x64 with Core i7 @ 3.6 GHz. I'm using it with GTX 780 Ti.

                                             

                                            Anyone who is even moderately serious about making videos needs to use this.

                                             

                                            My encode time for a 40 min 1080p video in H264 went down from several hours to just 20 minutes !!! Even better, CPU usage remains at around 15% during encode, whereas before it was stuck at 99% !!! So before, my PC was useless for hours during encode, whereas now I can still use it with the encode happening in the background. Not to mention the lightning fast encoding. Quality wise the result is perfect for me, as a hobbyist.

                                             

                                            Adobe / nvidia should invest a little time in such a plugin. Especially nvidia, because such a plugin in itself justifies the price of a high-end CUDA card. Obviously there is still potential for improvement of the plugin, as my GPU load averaged only 30% during encode. This means it hasn't unleashed the full potential of CUDA processing just yet.

                                             

                                            Many thanks to "nvenc4everyone" for sharing this !!!

                                            • 21. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                              nvenc4everyone Level 1

                                              NVENC_export Version v1.07 (Mar 14, 2014) is now available -

                                               

                                              • [1.07] for systems with more than 1 NVidia GPU installed, fixed a very stupid bug in the GPU-selection control box.  nvenc_export always used the 1st detected NVidia GPU (GpuIndex==0), regardless of the user's selection.  This is useful for systems with multiple types of NVidia cards, since you choose which GPU will run nvenc_export.  For instance, the Geforce GTX750/750TI (GM107) is ~50% faster at H264-encode than the previous Kepler generation (GK1xx).

                                               

                                              Also, the first frame of encoded H264 bitstreaam is now tagged with a debug-message; which is readable can be read/displayed from the third-party tool MediaInfo. The nvenc_export settings, nvenc_export version, and GPU device are reported in the message.

                                               

                                              Download link

                                              NVENC_export Version v1.07 (Mar 14, 2014) - https://googledrive.com/host/0B96CRWkNxmWdODdiQ05QS1l0M0U/nvenc_export_v107.zip

                                              • You will also need to download and install the following item from Microsoft:

                                              "Visual C++ Redistributable for Visual Studio 2012 Update 4"

                                               

                                              Installation tutorial:

                                              nvenc_export installation tutorial part 1/3: http://youtu.be/wPrcQ133YE0

                                               

                                              Third party tools:

                                               

                                              (1) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download and install the following third-party tools:

                                              (2) To enable AAC-audio output, you must download and install NeroAacEnc.

                                               

                                              Known problems:

                                              (Same limitations as previous versions.)

                                               

                                              (1) If MPE hardware-acceleration (CUDA) is enabled in Premiere Pro or Media Encoder, then nvenc_export cannot resize the source-video to a different output-size.  You must make sure the source-video size and output-video size are the same, otherwise the video-encode will fail.  (Alternatively, turn off MPE hardware-acceleration.) I suspect this is caused by Adobe's hardware MPE-renderer not supporting resize-operations on the PrPixelFormat_YUV_420_* surfaceformat, which is requested by nvenc_export.

                                               

                                              (2) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download the third-party tools mentioned above.

                                               

                                              (3) If encoding to interlaced-video, you must set the Field Type to Upper First. Other choices will cause the plugin to crash, or generate a bad (unusable) file.

                                               

                                              (4) NVENC does not support (AC3) Dolby Digital audio, only PCM.  (If you separately download and install NeroAacEnc, then AAC-audio is supported.)

                                               

                                              (5) When outputing video Level5 H264 video (i.e. video larger than 1920x1080), the bitrate-control modes don't work correctly, and will result in an abnormally small and bad looking video.  To workaround this, change the rateControl setting to RC_CONSTQP

                                               


                                              Source code link

                                              This section is only for software-developers who are interested in recompiling nvenc_export.

                                              The C++ source-code can be downloaded from the following link

                                               

                                                NVENC_export Version v1.07 SRC (Mar 14, 2014) - https://googledrive.com/host/0B96CRWkNxmWdODdiQ05QS1l0M0U/nvenc_export_src_v107.zip


                                              (nvenc_export is distributed under the LGPL license.)

                                               

                                              I must apologize for the condition of the source-code.  I'm not a professional software developer, so some dir/paths might not work correctly out-of-the-box.  You'll need to know your way around Windows application development to fix some basic compile environment issues (for example, "d3dx9.h missing".)

                                               

                                              Also, you will need the following items (not included in the above link) to recompile NVENC_export:

                                               

                                              • *NVENC client license key [optional, only needed for Geforce drivers older than WHQL 334.89]

                                              As of the Geforce WHQL 334.89 driver releae (Feb 2014), NVENC API is now open for all.  The client-key is only necessary if you want to access NVENC hardware on older Geforce drivers (which still check for the key.)


                                              • Microsoft Visual Studio 2012 Pro (with Update 4)

                                              This can be downloaded for free, through Microsoft's "BusinessSiteSpark" or "DreamSpark" program.

                                              • Microsoft DirectX SDK (June 2010)

                                              Download it from Microsoft

                                              • NVidia CUDA 5.5, NVENC 3.0, and NVAPI SDKs

                                              Download them from NVidia

                                              • Adobe Premiere CS6 SDK

                                              Download it from Adobe

                                              • 22. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                Alapaches Level 1

                                                Hi,

                                                 

                                                I'm a begginer to this new type of encoding video. I'm here to ask for some help.

                                                 

                                                I have a GeForce GTX 780 ( I already have added it in the text file of premiere pro) and I'm trying to encode with this awesome plugin. But everytime I'm trying to do that, I'm getting the same error concerning SDK_File.cpp so the encoding wouldn't start. Check the screen below :

                                                 

                                                nvenc.png

                                                Checked the resolution, as mentioned in the message but didn't change anything. Anyone ?

                                                 

                                                Bests Regards,

                                                • 23. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                  NG Media Level 1

                                                  Just want to say thanks as it seems not many others have. I've just used it with Adobe Encoder CS6 it works great. Your instructions are very easy to follow aswell.

                                                   

                                                  Current laptop setup:

                                                   

                                                  i7-4900MQ @ 3.8GHz

                                                  32GB RAM @ 1600MHz

                                                  GTX 780M 4GB RAM

                                                   

                                                  Encoding h.264 with CPU:

                                                   

                                                  - Preset Used: Custom

                                                  - Video: 1920x1080, 50 fps, Progressive

                                                  - Audio: AAC, 192 kbps, 48 kHz, Stereo

                                                  - Bitrate: VBR, 2 pass, Target 18.57 Mbps, Max 20.98 Mbps

                                                  - Encoding Time: 00:24:08

                                                   

                                                   

                                                  Encoding h.264 with NVENC:

                                                   

                                                  - Preset Used: Custom

                                                  - Video: 1920x1080, 50.00 fps, 1.0000 PAR, (#0) GeForce GTX 780M (3954 MB)

                                                  - Audio: 48000 Hz, Stereo (AAC)

                                                  - Bitrate: Encoded bitrate: H264=25600 Kbps, AAC=192 Kbps

                                                  - Encoding Time: 00:05:00

                                                  • 24. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                    Mathias.D Level 1

                                                    Matt here...

                                                     

                                                    After an exhaustive google search which was leading me in circles, i greatfully landed on this thread and have followed everything the best i could (as i read, i downloaded each new version until the very end).  However, i'm having a few difficulties with making everything run properly and so i got my account working here and have come with some questions.  I got the plug-in and other add ons in the correct locations and have pointed media encoder to see everything. However, i'm getting error messages and or the GPU is not being utilized (i've seen a single spike of like 3%.)

                                                     

                                                    I've got the follow specs:

                                                    windows 7 ultimate x64

                                                    16 GB of RAM

                                                    Core 2 Quad

                                                    GeForce GTX 650 Ti (768 cores, 2 GB of VRAM)

                                                    and PLENTY of hard drive space.

                                                     

                                                    I know enough to get into trouble and know enough to fix it.  But i'm not so good with finally finding a possible solution and just as i taste victory, hitting a dead end. I'm going to be trying a few different combination of settings with the encoding to see if i can't get some sort of GPU response.  I've got the MP4Box on the machine, the NeroAaaEnc thing on the machine and currently installing the visual C++ redistributable mentioned above (googled it to make sure i had it).

                                                     

                                                     

                                                    EDIT/UPDATE:  5 minutes later, after a reboot and trying a few different combinations, i found one that went through the conversion process well enough. It took media encoder about 5 minutes to go through it (only CPU utilization) and about another minute or so to process the audio.  This is a significant cut down in time from the 30 to 40 minutes i was waiting with to about 7 minutes total.  But, what confuses me is that it didn't touch the GPU, only the CPU.  Is this plug-in supposed to touch the GPU and use more than 3% or just the CPU?

                                                     

                                                    EDIT/UPDATE 2: after finding a faster conversion (its about 10 minutes), MP4Box crashes when combining the files. I moved the exe to its own folder, etc. currently going back to the old method of 45 minute conversions.

                                                    • 25. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                      Jennifer Elkan Level 1

                                                      Thank you for taking the time to develop this encoder.  I followed all the directions and the videos you put up on YouTube, but somehow when I export a video from Premiere to AME and go through all the settings it only wants to export it as an AAC.  Once in AME if I click on the file that's in line to be encoded to try to change the settings the "Export Video" option isn't there and the NVENC_export format is not there.  It is there in Premiere but not AME.  I did put the nvenc plugin in the Premiere/Plugins/Common folder and also the same plugin in the MediaEncoder/Plugins/Common folder too but somehow it's not working.  so no matter what I do if I export a video it always just gives me the AAC.  I've also tried both MP4 and TSmuxer but the results are the same.

                                                       

                                                      What am I doing wrong?

                                                      • 26. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                        Jennifer Elkan Level 1

                                                        BTW I have a Quad-core 920 with a Nvidia GeForce GTX 660 Ti

                                                        • 27. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                          TFP357 Level 1

                                                          For any of you with questions try this video:

                                                           

                                                          It's a bit shorter than the installation tutorial so i thought it might be useful.

                                                          • 28. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                            Mathias.D Level 1

                                                            Ok, followed the video and listened to the instructions, reinstalled GPAC and videos come out fine and lightning fast (though only through premiere pro). However, i cannot change the resolution even by a single pixel in either direction or it throws up an error.  Why is this?

                                                            • 29. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                              TFP357 Level 1

                                                              Known problems:

                                                              (Same limitations as previous versions.)

                                                               

                                                              (1) If MPE hardware-acceleration (CUDA) is enabled in Premiere Pro or Media Encoder, then nvenc_export cannot resize the source-video to a different output-size.  You must make sure the source-video size and output-video size are the same, otherwise the video-encode will fail.  (Alternatively, turn off MPE hardware-acceleration.) I suspect this is caused by Adobe's hardware MPE-renderer not supporting resize-operations on the PrPixelFormat_YUV_420_* surfaceformat, which is requested by nvenc_export.

                                                              Question already been answered. As the tutorial says read the page.

                                                              • 30. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                                Mathias.D Level 1

                                                                Figures. The one paragraph I did skip over did have the answer. Sorry about that.  I wonder if it's worth googling to find a way to either work around this road bump or getting a plugin that would allow Adobe to support resize operations with all this stuff enabled...

                                                                • 31. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                                  scooter1151 Level 1

                                                                  A little late with this post;
                                                                  To explain why your CPU is still being used 100% (or near there), it is because audio is not GPU-accelerated and is being done by the CPU. Also, some of the data still has to be processed by the CPU- the GPU is only accelerating the process through the NVENC block on your GPU; this block is actually a very small portion of your GPU and does not relate to 3D rendering, and thus your GPU reports that it is using a very small amount of its total power.

                                                                  • 32. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                                    techhelper1 Level 1

                                                                    What version of MP4Box are you using? What files did you pull out of the install folder to get it to work?

                                                                     

                                                                     

                                                                    The reason why I ask is because the files that I've been exporting are being deleted instantly after Nero does the AAC rendering.

                                                                    • 33. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                                      pre00 Level 1

                                                                      Need some help everything was working like it should but I started getting a error and mp4box stop working no mater what I do I download the dev mp4box and that did work I just don't know what to do I'm not using v106 i'm using v107

                                                                       

                                                                      adobe premiere elements 12 64bit

                                                                       

                                                                       

                                                                      mp4box.jpg

                                                                      • 34. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                                        idiosigil Level 1

                                                                        Thanks so much for making this. I'm using PP & AME CC 2014, with an i7-2600K CPU and a Nvidia GeForce 660 Ti video card.

                                                                         

                                                                        When using MainConcept, spitting out a 50mbps H.264 encode, I get a ten-minute video rendered thus:

                                                                        • Using software/CPU only: 45 minutes (all CPU cores working 100%, negligible GPU usage)
                                                                        • Using CUDA engine: 20 minutes (~60% CPU usage, and around 15% GPU usage)
                                                                        • Using nvenc_export + software/CPU mode: ~45 minutes (same as just with MainConcept). I guess this means in this instance, PP cannot feed the renderer fast enough.
                                                                        • Using nvenc_export + CUDA - cannot render -- I get the message about not being able to scale, and tells me to export to 1920x1080, but this already *is* the resolution of the source footage and Premiere sequences, so I don't know what I can do here. Any help? I have a feeling this might really speed things up beyond the 20 minutes CUDA alone takes.

                                                                         

                                                                        Thanks!

                                                                        • 35. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                                          DiKlop Level 1

                                                                          Hi! Thank you for the program. Version 1.01 works good, 1.02 too. But starting from 1.03 till 1.07 there is NO NVENC_export at the Export setting. Can you help me? Thank you.

                                                                          Premiere CS6.

                                                                          • 36. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                                            alevai68 Level 1

                                                                            Dear Sir,

                                                                            it function also with premiere pro cc 2014?

                                                                             

                                                                            Thanks for your efforts

                                                                             

                                                                            Ale

                                                                            • 37. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                                              GooGler1 Level 1

                                                                              Hi,

                                                                              I use Adobe Media Encoder and I was try install NVENC plugin to media encoder by this video tutorial.

                                                                              I have some questions now. My media encoder detect NVENC_export plugin correctly but I wanna ask you:

                                                                               

                                                                              1. How I can encode to MP4 container with Media Encoder? I know that I probably need install gpac. So I do it but what next?

                                                                              2. How I can encode audio  to AAC? I know that I probably need download Nero AAC codec. So I do it but what next?

                                                                              3. How I can set up my custom CBR rate for video and for audio?ä

                                                                              4. How I can set up my custom video resolution?

                                                                               

                                                                              Problem is that I found video tutorials only for install this plugin to Adobe Premiere Elements.

                                                                               

                                                                              Thanks for answers.

                                                                              Sorry for my not very well english.

                                                                              • 38. Re: Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                                                nvenc4everyone Level 1

                                                                                NVENC_export Version v1.08 (Sep 13, 2014) is now available -

                                                                                 

                                                                                • [1.08] Fix incompatibility with MPE hardware-acceleration - Turning on hardware-acceleration should no longer cause nvenc_export to crash. (nvenc_export doesn't follow a key minimum requirement for all plugin-exporters: at a minimum, the exporter must support PrPixelFormat RGBA32.  To get around this, nvenc_export requests Adobe to render the output in YUV420-planar format, and if that fails, falls back to a YUV422 packed-pixel format.)

                                                                                 

                                                                                • Some cosmetic changes have been made to the embedded mediaInfo string - nvenc appears to completely drop descriptions that are too long.

                                                                                 

                                                                                • For Maxwell GPUs only (Geforce GTX750TI, GTX960, GTX970, GTX980) - add support for High_Profile_444P (4:4:4 video encoding, lossless mode.) Neither of these modes are practical -- slow, and in the case of lossless mode, filesize is very large.  (Also, TS/MP4 muxing does not work correctly with this profile.)

                                                                                 

                                                                                • nvenc_export requires Geforce driver 340.52 (July 2014) or later

                                                                                 



                                                                                Download link

                                                                                NVENC_export Version v1.08 (Sep 13, 2014) - https://googledrive.com/host/0B96CRWkNxmWdODdiQ05QS1l0M0U/nvenc_export_v108.zip

                                                                                • You will also need to download and install the following item from Microsoft:

                                                                                 

                                                                                "Visual C++ Redistributable for Visual Studio 2012 Update 4"

                                                                                 

                                                                                Third party tools:

                                                                                (1) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download and install the following third-party tools:

                                                                                (2) To enable AAC-audio output, you must download and install NeroAacEnc.

                                                                                 

                                                                                 

                                                                                Known problems:(Same limitations as previous versions.)

                                                                                (1) In Adobe Premiere CC 2014 and Media Encoder CC 2014, the 'Export Audio' option is permanently enabled.  (This seems to be a problem between the Adobe CC SDK and CC2014;  it didn't happen in last-year's release.)

                                                                                (2) NVENC does not include built-in multiplexing.  If you wish to output *.TS or *.MP4 files, you must download the third-party tools mentioned above.

                                                                                (3) If encoding to interlaced-video, you must set the Field Type to Upper First. Other choices will cause the plugin to crash, or generate a bad (unusable) file.

                                                                                (4) NVENC does not support (AC3) Dolby Digital audio, only PCM.  (If you separately download and install NeroAacEnc, then AAC-audio is supported.)

                                                                                (5) When outputing video Level5 H264 video (i.e. video larger than 1920x1080), the bitrate-control modes don't work correctly, and will result in an abnormally small and bad looking video.  If this happens, to workaround it, change the rateControl setting to RC_CONSTQP. 


                                                                                (6) High_Profile_444 output can cause problems with TSMuxer and MP4Box (stuttering video, or even unreadable video.)  And not all encoder options function correctly in High_Profile_444 (some options are ignored, others cause unreadable output.)


                                                                                Source code link

                                                                                This section is only for software-developers who are interested in recompiling nvenc_export.The C++ source-code can be downloaded from the following link


                                                                                NVENC_export Version v1.08 SRC (Sep 13, 2014) - https://googledrive.com/host/0B96CRWkNxmWdODdiQ05QS1l0M0U/nvenc_export_src_v108.zip

                                                                                (nvenc_export is distributed under the LGPL license.)


                                                                                I must apologize for the condition of the source-code.  I'm not a professional software developer, so some dir/paths might not work correctly out-of-the-box.  You'll need to know your way around Windows application development to fix some basic compile environment issues (for example, "d3dx9.h missing".)


                                                                                     Also, you will need the following items (not included in the above link) to recompile NVENC_export:

                                                                                 

                                                                                • Microsoft Visual Studio 2012 Pro (with Update 4)

                                                                                This can be downloaded for free, through Microsoft's "BusinessSiteSpark" or "DreamSpark" program.


                                                                                • Microsoft DirectX SDK (June 2010)

                                                                                Download it from Microsoft

                                                                                • NVidia CUDA 6.5, NVENC 4.0, and NVAPI SDKs

                                                                                Download them from NVidia

                                                                                • Adobe Premiere CS6 SDK

                                                                                Download it from Adobe

                                                                                • 39. Re: NVidia GPU-accelerated H264-encoder plugin, ready for public testing
                                                                                  MyFutureSelfnMe Level 1

                                                                                  Hi, is there any plan to add h.265 encoding support? The NVENC in the GTX 970/980 now supports h.265 and we're anxious to start using this capability.

                                                                                   

                                                                                  Cheers

                                                                                  1 2 3 Previous Next