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:
no AAC or Dolby-Digital
no MPEG-4 muxing (*.MP4)
(To fix: Select a different codec, then re-select NVENC_export.)
Sorry, NVENC hardware was introduced with NVidia's Kepler family (2012) Anything older than that will NOT work with the plugin.
Copy link to clipboard
Copied
NVENC_export Version v1.09 (Feb 2, 2015) is now available -
Download link
NVENC_export Version v1.09 (Feb 2, 2015) - https://drive.google.com/uc?export=download&id=0B96CRWkNxmWda3B4RnA0MlRWMDQ
"Visual C++ Redistributable for Visual Studio 2013 Update 4"
(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) 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.09 SRC (Feb 2, 2015) - https://drive.google.com/uc?export=download&id=0B96CRWkNxmWdSGxXX1pudTEwNzQ
(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:
This can be downloaded for free, through Microsoft's "BusinessSiteSpark" program.
Download it from Microsoft
Download them from NVidia
Download it from Adobe
(edit fix formatting)
Copy link to clipboard
Copied
When I install the new version, Nvenc_export does not show up in presets, but when I restore the old version it shows back up on premiere export options.
Any ideas how I can make the new one show up right?
(edit, fixed by reinstalling vcredist.)
More edit:
Apparently selecting Mkv in premiere and AME do not bring up the proper look for path to mkv program button. Therefore I cannot properly select MKV for multiplexing.
Copy link to clipboard
Copied
I am stuck.
I have downloaded the v1.09 of the nvenc export plugin, but it isn't showing up in my Premiere. I installed the Visual C++ Redistributable, and moved the plugin into my Premiere folder, but it isn't showing up when I go to export!
System Specs:
Intel i5 4670 CPU
MSi GTX 760 GPU
8GB RAM
Premiere Pro CS6
Any way you can help?
Copy link to clipboard
Copied
Just install the previous version.
Copy link to clipboard
Copied
I tried installing the new preset, (the one that's supposed to fix the problem with not calling up MP4Box after the encode), but after restarting Premiere Pro, it no longer shows up on the export menu. The previous version showed up, but couldn't MUX and the version that supposedly fixes that doesn't even load.
Copy link to clipboard
Copied
NVENC_export do not export black video
Copy link to clipboard
Copied
About black video export.
Generally it is ignored, unlike audio which export is correct without cutting.
Solution:
If I insert at least 1 null frame at the timeline's beginning (i.e. I shift the first video on a 1-frame-position to the right) then further empty intervals between shots are exported correctly.
But Premiere's object 'Black video' exports with error mess and stoping in this case.
Copy link to clipboard
Copied
NVENC_export Version v1.11 (Dec 20, 2015) is now available -
Download link
NVENC_export Version v1.11 (Dec 20, 2015) - https://drive.google.com/uc?export=download&id=0B96CRWkNxmWdNDVucHU5QkhMWjg
1. You will also need to download and install the following item from Microsoft:
"Visual C++ Redistributable for Visual Studio 2013 Update 5"
2. To enable stream multiplexing, you must download these third-party tools:
3. To enable AAC-audio output, you must download and install NeroAacEnc.
Known problems:
(Same limitations as previous versions.)
(1) Since 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 muxed files (TS/MP4/MKV), 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) 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.)
(6) The user-sei field isn't inserted properly; sometimes it's there, sometimes it's not.
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.11 SRC (Dec 20, 2015) - https://drive.google.com/uc?export=download&id=0B96CRWkNxmWdUXRHQWNUclZoS0E
(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:
For students attending a participating school, this is a free download. (Others can get it through Microsoft's "BusinessSiteSpark" program.)
Download it from Microsoft
Download them from NVidia
Download it from Adobe
[edit] Change links to direct *.zip download.
Copy link to clipboard
Copied
THAT DID THE TRICK!! (Aka the nvenc_export dialog error won't appear)...HOWEVER, whenever the neroaanc thing ends while exporting, an error pops up related to mp4box...
Nombre del evento de problema: APPCRASH
Nombre de la aplicación: mp4box.exe
Versión de la aplicación: 0.0.0.0
Marca de tiempo de la aplicación: 56704de6
Nombre del módulo con errores: StackHash_6999
Versión del módulo con errores: 6.1.7601.19045
Marca de tiempo del módulo con errores: 56259295
Código de excepción: c0000374
Desplazamiento de excepción: 00000000000bffc2
Versión del sistema operativo: 6.1.7601.2.1.0.768.3
Id. de configuración regional: 3082
Información adicional 1: 6999
Información adicional 2: 6999a9797f3b2d2306fa0c5b20cb87ce
Información adicional 3: 2ae0
Información adicional 4: 2ae08980ecb38c0aeda78fd23b7eb192
Lea nuestra declaración de privacidad en línea:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0c0a
Si la declaración de privacidad en línea no está disponible, lea la declaración de privacidad sin conexión:
C:\Windows\system32\es-ES\erofflps.txt
-----
That's the error shown.
Any suggestions?. Also the VisualStudio update says that "Update 5 does not apply, or is blockedby another condition in your computer" ??...
Copy link to clipboard
Copied
GTX680
Loading C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\nvenc_export.prm
The modification date has changed so the plugin will be loaded from disk.
Loading from disk...
The library could not be loaded.
Copy link to clipboard
Copied
I've tried to use the MKV thing ZiggyGG mentioned, but the thing is that it ONLY exports as MKV (And works btw).. What i want is MP4 to upload stuff on Youtube..And i think MKV is NOT supported on Youtube.
Is there any solution to the Above MP4BOX error?...
Copy link to clipboard
Copied
What I do with the MP4Box is just choose the MP4Box.exe in Multiplexer tab and choose MP4 there.
Next I choose my settings and it works. Nothing extra. No Magic. Plain and simple.
Don't know why exactly same files I use don't work for others.
Copy link to clipboard
Copied
The question is...Is your GPAC / Mp4box the 32 or 64bits version..?
Copy link to clipboard
Copied
I can't find 'Visual C++ Redistributable 2013 update 5' too. There is Update 5 for Visual Studio 2013 that gives an error during installation.
Copy link to clipboard
Copied
AFAIK, the "Update 5 for Visual Studio 2013" is the full visual basic software which as i understand is not required,
what is required is "Redistributable" files that are much smaller install and just allow software created with visual basic to run on other computers,
i've actually installed the full (non-redistributable) visual basic 2013, and afterwards you can install the update 5 for the visual basic, but it did not help (and i dont think thats what the developer intended us to install)
Copy link to clipboard
Copied
Hi.
"Visual C++ Redistributable for Visual Studio 2013" haven't any numeric updates. It's address is Download Visual C++ Redistributable Packages for Visual Studio 2013 from Official Microsoft Download...
It's single version. I downloaded it for NVENC_export Version v1.09
Maybe "Update5" it is Download Microsoft Visual Studio 2013 Update 5 from Official Microsoft Download Center
Some our theme participants downloaded it as they sayed in the previous posts. But it is the soft for Visual Studio and only for this.
It difficult to invent something else. But NVENC_export Version v1.11 unavailable in Premiere's menu
Maybe another reason exists for this?
Copy link to clipboard
Copied
1.09 appears in the list of formats without installed Visual Studio packages
Copy link to clipboard
Copied
All is well!!!
But! After rendering in a folder with a prepared video file type appears "0000000002717D00_isotmp", about the same volume as processed video. What is the reason?
Installed:
MP4Box.ehe (gpac-0.6.2-DEV-rev69-gfe38ed8-master-x64)
NeroAACCodec-1.5.1
NVENC_export Version v1.11
Nvidia Driver 364.51
GeForce GTX760
Copy link to clipboard
Copied
Just started testing this CODEC tonight with a GTX680. Very impressive speeds, but the quality at 25mbps is temporally disturbing. I rendered two copies of a concert, just 1 minute excerpts, and brought them into Encore with separate timelines. I played each one and observed the look. The AME encoded clip looks normal, but the NVENC clip has this odd moire of noise that wipes over the entire image as the camera pans over the orchestra. If I stop and view and compare still frames, both clips look similar, with flat areas being cleaner looking with the AME clip. The NVENC clip has more noise in the flat areas.
I'll have to burn a BD-R disc and watch this on a projection screen to really get a sense of the look at 25/40mbps setting used in the preset. It's a nail biter, because 2X realtime render outs is VERY attractive. I remember 12-16 hour renders for my 100-minute concert video BDs under CS3 and this would make it a 45 minute render.
I also have a question about rendering for other targets, like online videos. What settings are used to create a video that is compatible with Youtube, Vimeo, etc.? The video that NVENC outputs won't play in VLC Media Player (just a black screen and the app hangs). In AME, I just choose h.264 (not Blu-ray) and I can get a compatible file output, but I don't know how to do that in NVENC.
Generally speaking, it works well for experimental software. The artifacts I see are consistent with realtime hardware encoders I dealt with in VHS to DVD copy machines, which is an area with room for improvement. I don't know it that's possible, or a limitation of GPU rendering, but waves of smokey noise moire are noticeable to my eye. If the quality were there, I would be as happy as a clam.
Copy link to clipboard
Copied
I just followed the author's instructions for installing the external utilities for making transport streams like MP4 and TS that can be played in VLC and uploaded to Youtube or Vimeo. The AAC encoding goes fine after the main h.264 encoding finishes, but then both files get deleted and MP4Box never launches. So the end result is no file.
I watched the author's install videos and I see he's testing on Premiere Elements, whereas I'm on Premiere Pro CS6. Maybe the code that calls up MP4Box breaks on PPro? I noticed another comment on the Youtube video where someone a year ago had the same exact result as I did. I double checked the export settings to confirm that MP4Box.exe was selected, did another export, but the two temp files get deleted after AACencode does its thing. Puzzled.
Copy link to clipboard
Copied
Hi! I just found this thread. any plans on supporting h265?
Copy link to clipboard
Copied
CUDA accelerated + NVENC not work? http://translate.google.com/translate?sl=ru&tl=en&prev=_t&hl=en&ie=UTF-8&u=http://www.efxi.ru/more/p...
Copy link to clipboard
Copied
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!
Copy link to clipboard
Copied
Thanks, any chance for a mac version?
Copy link to clipboard
Copied
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.