[FFmpeg-devel] [PATCH] Add NVENC encoder

Philip Langdale philipl at overt.org
Sat Nov 29 01:15:35 CET 2014

On Sat, 29 Nov 2014 00:51:21 +0100
Michael Niedermayer <michaelni at gmx.at> wrote:

> > 
> > For what it's worth, some engineers at Nvidia are also working on an
> > nvenc implementation for ffmpeg. That initial work is here:
> > 
> > https://github.com/agathah/ffmpeg_libnvenc
> whats the difference in features between the 2 implementations ?

I've spent a lot more time looking at the nvidia patch, but from a
quick look through Timo's version, I'd say the following:

* Timo's is more concise but not as feature complete.
* nvidia one has windows support
* The nvidia patch doesn't handle b-frames correctly, but I wrote a
  fix patch for them. I'm not sure whether Timo's works correctly
* Timo's looks like it will handle interlaced input correctly. Nvidia
  definitely does not.
* nvidia one implements argument compatibility with x264 - so it uses
  the same args as much as possible - it even does preset/tune mapping.
  I think this is pretty nice.

The main issue with the nvidia patch, as it exists today, is that they
have not put any licence header on the files at all - but I've told
them they need to do that, and asked Stephen Warren if he can help them
out. The other slight complexity is that it requires cuda.h (Timo seems
to have avoided that by independently defining the necessary constants
but you need even more of cuda.h for the windows support). But
nvEncoderAPI.h is already so awkward (restrictive license, not properly
distributed) that an extra header isn't any more inconvenient.


More information about the ffmpeg-devel mailing list