nVidia GPU acceleration

Create issue
Issue #1153 new
Former user created an issue

Peter,

Issue #930 (now resolved) was once opened to request the capability of utilizing the Intel Quick Sync Video hardware acceleration for transcoding tasks in Serviio.

Zeranoe provides static builds for FFmpeg. Version 4.3.1 seems to be one of the most recent release builds. I have replaced the executable provided by the Serviio installer with this release. Querying the available codecs shows that both encode and decode options are available for use with the nVidia accelerated hardware (NVENC/NVDEC).

I would find it very useful to be able to leverage these GPU accelerated codecs. I am quite interested in allowing NVDEC to decode h.265 media (hevc_cuvid), and NVENC to transcode it to h.264 format(h264_nvenc). This would be particularly advantageous with some of my older tablet hardware which does not natively support h.265, but does offer hardware accelerated rendering for h.264.

I understand the option, serviio.useQSVAcceleration, was added as a result of Issue #930. The related forum post indicated that adding such an option "should not be too difficult". I'm hoping that support for nVidia GPU acceleration might also be added with similar ease.

C:\Program Files\Serviio\lib>ffmpeg.exe -codecs ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 10.2.1 (GCC) 20200726 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --enable-librav1e --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 Codecs: D..... = Decoding supported .E.... = Encoding supported ..V... = Video codec ..A... = Audio codec ..S... = Subtitle codec ...I.. = Intra frame-only codec ....L. = Lossy compression .....S = Lossless compression


<snip> DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv h264_cuvid ) (encoders: libx264 libx264rgb h264_amf h264_mf h264_nvenc h264_qsv nvenc nvenc_h264 )

DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_qsv hevc_cuvid ) (encoders: libx265 nvenc_hevc hevc_amf hevc_mf hevc_nvenc hevc_qsv ) <snip>