[FFmpeg-user] HDR video transcode with cuvid, swcale_npp, tonemap_opencl and nvenc

Sergei Matsukov kliff at tut.by
Sat Mar 16 13:55:44 EET 2019


I am trying to quickly convert 10 bit HDR video to 8 bit SDR video.

In software mode I'm using command:

ffmpeg -i sony_pictures_4k_ultra_hd_movies_1-DWEU.mkv -map 0:0 -vf 
scale=w=1920:h=1080:flags=lanczos,zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:r=tv,format=yuv420p 
-c:v libx264 -crf 19 test.mkv

But the conversion speed is rather low.

How can I use ffmpeg for fast hardware transcode with hwaccel 
hevc_cuvid, scale_npp and tonemap_opencl filters, h264_nvenc encoder?

I tried to use the following command, but got an error:

ffmpeg -loglevel verbose -hwaccel_device 0 -hwaccel cuvid -c:v 
hevc_cuvid -i sony_pictures_4k_ultra_hd_movies_1-DWEU.mkv -map 0:0 
-filter:v 
scale_npp=w=1920:h=1080:format=p010le:interp_algo=lanczos,tonemap_opencl=tonemap=hable:t=bt709:m=bt709:p=bt709:r=tv:format=yuv420p 
-c:v h264_nvenc -profile:v high -preset slow -rc vbr_hq -b:v 7000k test.mkv

ffmpeg version N-93387-gdef18ac43b Copyright (c) 2000-2019 the FFmpeg 
developers
   built with gcc 8.3.0 (Rev2, Built by MSYS2 project)
   configuration:  --enable-nonfree --enable-amf --enable-cuda 
--enable-cuvid --enable-d3d11va --enable-dxva2 --enable-iconv 
--enable-lzma --enable-nvenc --enable-zlib --enable-sdl2 --disable-debug 
--enable-ffnvcodec --enable-nvdec --enable-gmp --enable-libmp3lame 
--enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 
--enable-libx265 --enable-libdav1d --enable-fontconfig --enable-libass 
--enable-libbluray --enable-libfreetype --enable-libmfx 
--enable-libopencore-amrnb --enable-libopencore-amrwb 
--enable-libopenjpeg --enable-libsnappy --enable-libsoxr 
--enable-libspeex --enable-libtheora --enable-libtwolame 
--enable-libvidstab --enable-libvo-amrwbenc --enable-libwavpack 
--enable-libwebp --enable-libxml2 --enable-libzimg --enable-libshine 
--enable-gpl --enable-avisynth --enable-libaom --enable-version3 
--enable-gcrypt --enable-cuda-nvcc --enable-libfdk-aac 
--enable-libfribidi --enable-libkvazaar --enable-libnpp 
--enable-libopenmpt --enable-libxavs --enable-opencl --enable-opengl 
--cpu=native --enable-gnutls --extra-cflags=-DLIBTWOLAME_STATIC 
--extra-libs=-lstdc++ --extra-cflags=-DLIBXML_STATIC 
--extra-cflags=-DKVZ_STATIC_LIB 
--extra-cflags='-IC:/PROGRA~1/NVIDIA~2/CUDA/v10.1/include' 
--extra-ldflags='-LC:/PROGRA~1/NVIDIA~2/CUDA/v10.1/lib/x64'
   libavutil      56. 26.100 / 56. 26.100
   libavcodec     58. 47.103 / 58. 47.103
   libavformat    58. 26.101 / 58. 26.101
   libavdevice    58.  6.101 / 58.  6.101
   libavfilter     7. 48.100 /  7. 48.100
   libswscale      5.  4.100 /  5.  4.100
   libswresample   3.  4.100 /  3.  4.100
   libpostproc    55.  4.100 / 55.  4.100
Input #0, matroska,webm, from 'sony_pictures_4k_ultra_hd_movies_1-DWEU.mkv':
   Metadata:
     encoder         : libebml v1.3.5 + libmatroska v1.4.8
     creation_time   : 2018-01-28T08:05:04.000000Z
   Duration: 00:01:03.23, start: 0.000000, bitrate: 43628 kb/s
     Stream #0:0: Video: hevc (Main 10), 1 reference frame, 
yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 
16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
     Metadata:
       BPS             : 42986148
       BPS-eng         : 42986148
       DURATION        : 00:01:03.230000000
       DURATION-eng    : 00:01:03.230000000
       NUMBER_OF_FRAMES: 1516
       NUMBER_OF_FRAMES-eng: 1516
       NUMBER_OF_BYTES : 339751771
       NUMBER_OF_BYTES-eng: 339751771
       _STATISTICS_WRITING_APP: mkvmerge v20.0.0 ('I Am The Sun') 64-bit
       _STATISTICS_WRITING_APP-eng: mkvmerge v20.0.0 ('I Am The Sun') 64-bit
       _STATISTICS_WRITING_DATE_UTC: 2018-01-28 08:05:04
       _STATISTICS_WRITING_DATE_UTC-eng: 2018-01-28 08:05:04
       _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
     Stream #0:1: Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
     Metadata:
       BPS             : 640000
       BPS-eng         : 640000
       DURATION        : 00:01:03.232000000
       DURATION-eng    : 00:01:03.232000000
       NUMBER_OF_FRAMES: 1976
       NUMBER_OF_FRAMES-eng: 1976
       NUMBER_OF_BYTES : 5058560
       NUMBER_OF_BYTES-eng: 5058560
       _STATISTICS_WRITING_APP: mkvmerge v20.0.0 ('I Am The Sun') 64-bit
       _STATISTICS_WRITING_APP-eng: mkvmerge v20.0.0 ('I Am The Sun') 64-bit
       _STATISTICS_WRITING_DATE_UTC: 2018-01-28 08:05:04
       _STATISTICS_WRITING_DATE_UTC-eng: 2018-01-28 08:05:04
       _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
[hevc_cuvid @ 0000018208ddd4c0] Initializing cuvid hwaccel
[hevc_cuvid @ 0000018208ddd4c0] CUVID capabilities for hevc_cuvid:
[hevc_cuvid @ 0000018208ddd4c0] 8 bit: supported: 1, min_width: 144, 
max_width: 8192, min_height: 144, max_height: 8192
[hevc_cuvid @ 0000018208ddd4c0] 10 bit: supported: 1, min_width: 144, 
max_width: 8192, min_height: 144, max_height: 8192
[hevc_cuvid @ 0000018208ddd4c0] 12 bit: supported: 1, min_width: 144, 
max_width: 8192, min_height: 144, max_height: 8192
Stream mapping:
   Stream #0:0 -> #0:0 (hevc (hevc_cuvid) -> h264 (h264_nvenc))
Press [q] to stop, [?] for help
[hevc_cuvid @ 0000018208ddd4c0] Initializing cuvid hwaccel
[hevc_cuvid @ 0000018208ddd4c0] Formats: Original: cuda | HW: cuda | SW: 
p010le
[graph 0 input from stream 0:0 @ 0000018208d71d40] w:3840 h:2160 
pixfmt:cuda tb:1/1000 fr:24000/1001 sar:1/1 sws_param:flags=2
[auto_scaler_0 @ 0000018208d71b40] w:iw h:ih flags:'bicubic' interl:0
[Parsed_tonemap_opencl_1 @ 0000018208d72540] auto-inserting filter 
'auto_scaler_0' between the filter 'Parsed_scale_npp_0' and the filter 
'Parsed_tonemap_opencl_1'
Impossible to convert between the formats supported by the filter 
'Parsed_scale_npp_0' and the filter 'auto_scaler_0'
Error reinitializing filters!
Failed to inject frame into filter network: Function not implemented
Error while processing the decoded data for stream #0:0
[AVIOContext @ 0000018208df8e40] Statistics: 0 seeks, 0 writeouts
[AVIOContext @ 0000018208d650c0] Statistics: 66368 bytes read, 2 seeks
Conversion failed!






More information about the ffmpeg-user mailing list