[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