vexorian / dizquetv

Create live TV channels from your own media. Access the streams using the simulated HDHomerun tuner or the generated M3U URl.
zlib License
1.44k stars 92 forks source link

Nvidia HEVC Encoding error #329

Open DrShepard4815 opened 3 years ago

DrShepard4815 commented 3 years ago

Is there any tutorial or additional help on getting h264_nvenc fully operational in dizquetv? h264 files transcode normally with h264_nvenc in ffmpeg, but HEVC files fail and ffmpeg log reports "10 bit encoding no supported" and "No capable devices found".

GPU is PNY Quadro P2200. Latest-nvidia (1.4.3) running in Docker on an Unraid 6.9.2 server.

edwardscaleb9 commented 3 years ago

Same issue here with a P2000 running in Docker on a Ubuntu 20.04 host. Is there a way to enable debug logging for ffmpeg in the dizquetv docker image? Maybe that'll help us out a bit.

vexorian commented 3 years ago

I think hevc transcoding is a more premium feature not supported in some nvidia cards.

Also you have to enable nvidia runtime in docker.

edwardscaleb9 commented 3 years ago

I think hevc transcoding is a more premium feature not supported in some nvidia cards.

Also you have to enable nvidia runtime in docker.

According to Nvidia documentation, the P2000 and P2200 should be able to encode/decode HEVC 10 bit unless I'm reading that wrong. I've got "runtime: nvidia" in my docker-compose file, and I can transcode h264 content via hardware acceleration just fine. It's almost like the GPU isn't showing up correctly to ffmpeg inside docker?

DrShepard4815 commented 3 years ago

According to Nvidia documentation, the P2000 and P2200 should be able to encode/decode HEVC 10 bit unless I'm reading that wrong. I've got "runtime: nvidia" in my docker-compose file, and I can transcode h264 content via hardware acceleration just fine.

The Plex docker on unraid words perfectly with the p2200; it transcodes HEVC 10 bit with no problem. I followed all available instructions for getting a nvidia GPU working in docker (including runtime=nvidia).

It's almost like the GPU isn't showing up correctly to ffmpeg inside docker?

This looks like the case for me. ffmpeg log in dizquetv reports "10 bit encoding not supported" and "No capable devices found".

jasongdove commented 1 year ago

I think the error message is being misinterpreted. When you use the encoder h264_nvenc and the message says 10 bit encoding no supported it is saying that the h264 encoder does not support encoding 10-bit content, which is true for all hardware encoders; only software encoders support 10-bit h264. Simply changing to hevc_nvenc should get it going, as the P2000 supports HEVC 10-bit encoding according to https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new