Encoding changed from GPU to CPU on PLAY
paveltonev opened this issue · comments
Hi,
I am running casparcg/server from docker on ubuntu 22.04 host using FFmpeg with NVIDIA GPU hardware acceleration support on NVIDIA RTX A6000 and NVIDIA GeForce GT 1030 cards.
Following consecutive actions were done:
- ADD 1 STREAM udp://192.168.0.24:9876?pkt_size=1316&bitrate=8000000&overrun_nonfatal=1&fifo_size=300000&buffer_size=130000&localaddr=172.18.0.11 -format mpegts -codec:v h264_nvenc -codec:a aac
- PLAY 1-10 "Clip.mp4" CUT 0 Linear RIGHT LOOP
As a result the clip can be seen on the host machine, GPU is doing the hardware encoding and everything works fine and perfect!
Now I am trying to apply the same scenario listed above, on a server machine with two sockets and two Quadro M4000 cards.
As a result when the clip is played, hardware encoding stops, i.e. GPU is not used anymore for encoding and all CPUs usage increased immediately close to 100%, I think doing software encoding.
Can you guess what could be the reason for this behavior and/or how this can be worked out or fixed ?
Thank you!
You might have better luck getting input on this on the forum https://casparcgforum.org/
I've never tried using nvenc with casparcg, so I don't have any useful suggestions. I do find it odd that it would change what is doing the encoding when playing a clip, the consumer is completely unaware of the producers. So my only guess is that the nvenc encoder crashed and ffmpeg seamlessy fell back to doing it in software?