[FFmpeg-user] nvenc h264 encoding

Sven C. Dack sven.c.dack at sky.com
Fri Oct 14 16:35:33 EEST 2016


On 13/10/16 14:01, tyt xtreme wrote:
> And what can i do on Windows to check these capabilities?
> Btw the GPU is a Gainward 6 Gb nVidia GTX 980 Ti so i think this should
> support the above formats.
>>> Any idea why this encoding doesn't work?
>>>
>>> $ ffmpeg -i perspective.mp4 -c:v h264_nvenc -profile:v high444p
>>> -pixel_format yuv444p -preset default perspective_out.mp4
>>>
>>> ...
>>> [h264_nvenc @ 0000000001d84640] No free surfaces
>>> Video encoding failed
>>> Conversion failed!
>>>
I've now tried it on a GTX 960 (Maxwell GM 206) and there you can encode with 
yuv444p. The chip was the last of the Maxwell-series iirc and doesn't support 
10-bit depth. So either they snuck it in at the very last or it's an issue with 
the driver or libraries. This is with Video SDK 7.0.1 and CUDA 8.0. You can try 
to update the Nvidia driver and libraries and see if this changes anything.

$ ffmpeg -i 
../U-HD-Test-Videos/Harmonic_Snow_Monkeys_4k_\(Ultra_HD\)_-_DASH.webm -c:v 
h264_nvenc -pix_fmt:v yuv444p -profile:v high444p -preset:v default out5.mp4
ffmpeg version N-81995-ge62165b Copyright (c) 2000-2016 the FFmpeg developers
   built with gcc 6.2.1 (GCC) 20161013
   configuration: --prefix=/home/sven/av --enable-gpl --enable-version3 
--enable-nonfree --arch=x86_64 --cpu=native --enable-debug --enable-shared 
--enable-static --enable-libvorbis --enable-libopus --enable-libx264 
--enable-libx265 --enable-opengl --enable-opencl --enable-vaapi --enable-vdpau 
--enable-cuda --enable-cuvid --enable-nvenc --enable-libnpp 
--extra-cflags='-I/home/sven/av/include -I/usr/local/cuda/include 
-I/usr/local/Video_Codec_SDK_7.0.1/Samples/common/inc' 
--extra-ldflags='-L/home/sven/av/lib -L/usr/local/cuda/lib64' --ar=gcc-ar 
--nm=gcc-nm --ranlib=true
   libavutil      55. 32.100 / 55. 32.100
   libavcodec     57. 61.103 / 57. 61.103
   libavformat    57. 52.100 / 57. 52.100
   libavdevice    57.  0.102 / 57.  0.102
   libavfilter     6. 64.100 /  6. 64.100
   libswscale      4.  1.100 /  4.  1.100
   libswresample   2.  2.100 /  2.  2.100
   libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from 
'../U-HD-Test-Videos/Harmonic_Snow_Monkeys_4k_(Ultra_HD)_-_DASH.webm':
   Metadata:
     encoder         : google
   Duration: 00:01:00.04, start: 0.000000, bitrate: 25305 kb/s
     Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, 
bt709/unknown/unknown), 3840x2160, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 1k 
tbn, 1k tbc (default)
File 'out5.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'out5.mp4':
   Metadata:
     encoder         : Lavf57.52.100
     Stream #0:0(eng): Video: h264 (*h264_nvenc*) (*High 4:4:4 Predictive*) 
([33][0][0][0] / 0x0021), *yuv444p*, 3840x2160 [SAR 1:1 DAR 16:9], q=-1--1, 2000 
kb/s, 59.94 fps, 19001 tbn, 59.94 tbc (default)
     Metadata:
       encoder         : Lavc57.61.103 h264_nvenc
     Side data:
       cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000 vbv_delay: -1
Stream mapping:
   Stream #0:0 -> #0:0 (vp9 (native) -> h264 (h264_nvenc))
Press [q] to stop, [?] for help




More information about the ffmpeg-user mailing list