[FFmpeg-devel] [PATCH] Add NVENC encoder

Michael Niedermayer michaelni at gmx.at
Sat Nov 29 15:31:18 CET 2014


On Sat, Nov 29, 2014 at 12:13:18PM +0100, Timo Rothenpieler wrote:
> > 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.
> 
> My implementation also works fine on Windows. (Tested is with MSVC,
> MinGW and Cygwin)
> The required functions from CUDA are minimal, and i just dynamicaly load
> them, avoiding any (linked) external dependencies except the nvEncodeAPI.h
> 
> The main difference is that they support way more features, but they
> seem to need an intermediate library, while mine is now just a single
> new C file, which needs one header from the nvenc SDK.

does supporting these additional features need the extra complexity
that the nvidia version has ?
or could these features be added into your version while keeping its
simplicity ? (note do not copy any code from the nvidia one as its
not redistriutable nor *GPL compatible with the current license
headers)

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

During times of universal deceit, telling the truth becomes a
revolutionary act. -- George Orwell
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141129/04ee4379/attachment.asc>


More information about the ffmpeg-devel mailing list