Loading... |
*h.264 FPS Based on 1080p@20MBPS YUV 4:2:0 8-bit. HEVC (h.265) FPS based on 1080p@20MBPS 8-bit
*VRAM listed are common sizes.
*NVENC FPS based on Single Pass quality profile. (High Quality – High Performance)
*VDPAU nVidia PureVideo Information [https://en.wikipedia.org/wiki/Nvidia_PureVideo#Nvidia_VDPAU_Feature_Sets]
Move the “Transcoder temporary directory” to a RAM disk using the Linux default: “/dev/shm” /dev/shm allows by default 50% of RAM to be used as cache You will need about 1GB per 1080p stream for a 900 sec “Transcoder default throttle buffer”.
VRAM Bandwidth
Preliminary testing sees a single NVDEC job on a 128Bit GTX 1050 Ti 4GB (Pascal) unable to use more than 30% (112 FPS) of the NVDEC. Two streams hold about 50%, Three about 80% and more than four streams to reach 100% NVDEC saturation. A 256Bit GTX 970 4GB (Maxwell 2nd Gen) can hit 100% NVDEC saturation (376FPS) with a single stream.
- Download Super Audio CD Decoder for free. Super Audio CD Decoder input plugin for foobar2000. Decoder is capable of playing back Super Audio CD ISO images, DSDIFF, DSF and DSD WavPack files.
- You’re still looking for an app to easily record voice messages on your device? Look no further, come and try Super Voice Recorder! Compared to other apps, Super Voice Recorder has the following advantages: 1. Easy to use, start recording on the press of a button. You can pause and continue the recording when you want. After finished recording, you can easily use the built-in player to play.
- SUPER © is a free enhanced 3D video converter encoder player recorder. It has built in all the required video codecs and audio codecs to encode from and into any possible multimedia format in 2D or in 3D. Rendered output files for PC, iPhone, Xbox, Android, PS3.
- Download apps by Super Jump Pty Ltd, including Super Transcoder.
The difference between the 128Bit, 192Bit and 256Bit Memory bandwidth needs further testing. It looks like a 128Bit memory bus will not cause performance issues with multiple transcodes but will see Plex offline “Sync” jobs only able to use 30% of the NVDEC chip.
VRAM Stream Card Load
Card load is calculated from the smallest of the “NVENC FPS” and “NVDEC FPS” then divided by “Streams for VRAM” combined FPS to provide card. For example; Quadro K2200 4GB model can NVDEC 1080p@376 FPS and NVENC 720p@502 FPS and fit a maximum 16 transcodes in its 4GB VRAM. NVDEC being the smaller FPS we take 16x h.264.1080p@30 FPS equals 480 FPS, more than the NVDEC can process. This card will be under 128% Load to deliver 16 streams causing buffering but could deliver 12 streams at 96% load. See “Recommended Plex Streams” for more information.
Exceeding VRAM
Exceeding the VRAM usage will cause new transcodes to buffer indefinitely, even once VRAM has dropped below the maximum. The Plex Client will need to stop the play request and request it again once VRAM usage has dropped. Choose a card with enough VRAM to avoid this.
Streams for VRAM
“Streams for VRAM” is how many Plex Streams will fit in VRAM at any one time, this figure is based on 1080p@15MBPS to 720p@4MBPS per stream.
See “Recommended Plex Streams” and “Exceeding VRAM” for stream buffering issues.
Kepler | Maxwell 1st Gen | Maxwell 2nd GEN | Pascal & VOLTA |
720p@3Mbit to SD 2Mbit | 102MB | 207MB | 190MB |
720p@3Mbps to 720p 2Mbps | 104MB | 190MB | 195MB |
720p@6Mbps to 720p@2Mbps | 98MB | 218MB | 170MB |
720p@6Mbps to 720p@4Mbps | 108MB | 229MB | 190MB |
1080p@15Mbps to 720p@2Mbps | 122MB | 231MB | 280MB |
1080p@15Mbps to 720p@4Mbps | 133MB | 248MB | 300MB |
1080p@15Mbps to 1080p@8Mbps | 142MB | 250MB | 320MB |
4K@68MBPS to 720p@4MBPS | - | - | 1220MB |
4K@68MBPS to 1080p@8MBPS | - | - | 1290MB |
Recommended Plex Streams
Maximum 1080p@15Mbps streams to maintain live streams without buffering pauses based on FPS of chipset and VRAM available. This calculation is based on 1080p@15MBPS to 720p@4MBPS per stream. See “Streams for VRAM” for more precise usage.
Multiple NVENC Chips
Some cards have either multiple NVENC chips or multiple Graphics chips each containing an NVENC chip.
Taking into account that you need to decode the same FPS as you encode let’s look at the GTX 1070; It supports NVENC h.264@1262 FPS but only NVDEC h.264@658 FPS, this would mean 658 FPS@1080p is the maximum throughput with a “single pass” encoding profile, not the full 1262 FPS.
Using a “high quality” profile the GTX 1070 supports NVENC h.264@776 FPS, you will see improved image quality and smaller encoded streams while still reaching the 658 FPS@1080p throughput. Input streams lower than 1080p or that do not use NVDEC (eg. Unsupported CODEC) can allow this card to NVENC over the NVDEC limit. HEVC NVDEC on this card supports 720FPS meaning a HEVC to h.264 workload would yield a transcode of 720FPS, 60FPS better than h.264 to h.264.
GPU Power Usage
Without an attached monitor, a GTX 970 with a max draw of 145w will draw about 80w with 100% NVDEC to NVENC transcoding.
Microsoft Windows
Session Limits can be overridden in Windows [https://github.com/keylase/nvidia-patch/tree/master/win]. This can be a tricky setup, a more sturdy option choose a Quadro Card with no session limits.
Linux
Session Limits can be overridden on GeForce and Quadro Cards [https://github.com/keylase/nvidia-patch] Please make sure the card has enough VRAM for this.
NVDEC for Linux needs v1.15.1.791 or newer and a patch. [https://github.com/revr3nd/plex-nvdec] Please make sure the card has enough VRAM for this.
Super Transcendent Down Hooded Jacket
Linux NVENC / NVDEC Monitoring
Live usage stats:
watch -n 2 'nvidia-smi -q -d UTILIZATION'
Super Transcript
Usage Report:
nvidia-smi
Plex Media Server Optimisation
- Run Plex Library from an SSD (NVMe SSD for best performance) by making a symlink in Linux
sudo ln -s '/SSD/Plex Media Server' '/var/lib/plexmediaserver/Library/Application Support/Plex Media Server'
- Move the “Transcoder temporary directory” to a RAM disk using the Linux default: “/dev/shm”
/dev/shm allows by default 50% of RAM to be used as cache
You will need about 1GB per 1080p stream for a 900 sec “Transcoder default throttle buffer”
VDPAU Reference
VP4 | C | Mar-11 | Supports complete acceleration for MPEG-1, MPEG-2, MPEG-4 Part 2 (a.k.a. MPEG-4 ASP), VC-1/WMV9 and H.264. Global motion compensation and Data Partitioning are not supported for MPEG-4 Part 2. |
VP5 | D | Apr-11 | Similar to feature set C but added support for decoding H.264 with a resolution of up to 4032×4080 and MPEG-1/MPEG-2 with a resolution of up to 4032×4048 pixels. |
VP6 | E | Feb-14 | Similar to feature set D but added support for decoding H.264 with a resolution of up to 4096×4096 and MPEG-1/MPEG-2 with a resolution of up to 4080×4080 pixels. GPUs with VDPAU feature set E support an enhanced error concealment mode which provides more robust error handling when decoding corrupted video streams. Cards with this feature set use a combination of the PureVideo hardware and software running on the shader array to decode HEVC (H.265) as partial/hybrid hardware video decoding. |
VP7 | F | Jan-15 | Introduced dedicated HEVC Main (8-bit) & Main 10 (10-bit) and VP9 hardware decoding video decoding up to 4096 × 2304 pixels resolution. |
G | Introduced dedicated hardware video decoding of HEVC Main 12 (12-bit) up to 4096 × 2304 pixels resolution. | ||
VP8 | H | May-16 | Feature Set H are capable of hardware-accelerated decoding of 8192x8192 (8k resolution) H.265/HEVC video streams. |
VP9 | I | Nov-17 | |
VP10 | J | Apr-19 |
Sources
https://en.wikipedia.org/wiki/Nvidia_PureVideo#Nvidia_VDPAU_Feature_Set
https://developer.nvidia.com/video-encode-decode-gpu-support-matrix
https://developer.nvidia.com/nvidia-video-codec-sdk#NVENCFeatures
http://developer.download.nvidia.com/assets/cuda/files/NVENC_DA-06209-001_v07.pdf (720p FPS Kepler to Maxwell 2nd Gen)
https://github.com/MarkRepo/NvencEncoder/blob/master/doc/NVDEC_DA-06209-001_v08.pdf (NVENC_DA-06209-001_v08 1080p FPS Kepler to Pascal)
https://github.com/MarkRepo/NvencEncoder/blob/master/doc/NVENC_DA-06209-001_v08.pdf (NVDEC_DA-06209-001_v08 1080p FPS Kepler to Pascal)