I'm using Intel QuickSync to lower CPU loading of real time video transcode with FFmpeg.
Specifically, qsv is used to deinterlace and decode the input video. A special HW module is used for the encoding side. It works very well, but I'd like to do many streams in parallel (ie, launch multiple FFmpeg processes each transcoding different streams)
My question is: what is the capacity limit of quick sync? What is it limited by?
The Intel documentation is not very clear other than it uses the internal GPU within the CPU, but not much more.
For example, picking a random i9 CPU from Intel's website says it:
- supports QuickSync
- has Intel® UHD Graphics 770
But that's about all. Searching for specs on UHD Graphics 770 only gives a list of CPUs which support it but does not explain anything about the quick sync capabilities.
So, other than trial and error, how would I calculate how many streams are possible with QuickSync on a given CPU?
FFmpeg command line something like:
ffmpeg -loglevel info \ -hwaccel qsv -c:v h264_qsv \ -i udp://220.127.116.11:10001?fifo_size=1000000 -map 0:p:72 \ -c:a aac -b:a 64k \ -c:s copy \ -c:v special_hw_encoder \ -b:v 4M \ -filter_complex [v:0]deinterlace_qsv,scale_qsv=w=1280:h=720:format=rgb32:mode=hq,hwdownload,format=rgb32,format=yuv420p \ -flush_packets 0 \ -f mpegts \ -mpegts_copyts 1 \ -mpegts_flags initial_discontinuity \ -muxrate 5M \ 'udp://18.104.22.168:11001?pkt_size=1316&fifo_size=1000000&bitrate=5000000'