hi Jack,
I am by no means an expert but here is my experience. After Flole published on github the modifications to allow for nvidia transcoding (although I think it is only for decoding, so please correct me if I am wrong) I am using that build. Now transcoding works well, the CPU usage is still high-ish...but not as high as you describe. Steps I did:
1. make sure you have the full drivers installed and especially libnpp (sudo apt install -y libnpp*)
2. i am using a build script for tvheadend with ffmpeg internal as per the directions in the manual build described by saen acro
here is the script for your convenience. Also always remove the tvheadend folder created by the github clone before running the command.
#!/bin/bash
BASE=$(dirname "$0")
(
if [ -d "$BASE/tvheadend" ]; then
cd "$BASE/tvheadend"
git pull
else
cd "$BASE"
git clone https://github.com/tvheadend/tvheadend.git tvheadend # --depth=5 (need version tag workaround else 0.0.0 version)
cd "$BASE/tvheadend"
fi
time AUTOBUILD_CONFIGURE_EXTRA="--disable-bintray_cache --enable-vaapi --enable-nvenc" ./Autobuild.sh -j$(nproc) # edit only betwin "quotation marks"
) | tee "$BASE/build.log"
Also make sure to:
1. check this post for any additional packages you might miss:
https://tvheadend.org/d/4492-manual-building-deb-packages-on-clean-ubuntu-or-other-debian-distros
2. apply the nvidia-patch to not be restricted at 2 streams
3. if you use Kodi, in thePVR settings enable http, otherwise you will get a stuck stream in nvidia.
the transcoding streaming profile is set like this:
!chrome_EEhOWpfQwu.png!
the codec profile would be like this:
!chrome_H3Q1MQ42MR.png!
I won't be able to give you more details than this, as mileage varies between systems, but i hope it helps.