0

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://224.0.0.1: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://239.0.0.1:11001?pkt_size=1316&fifo_size=1000000&bitrate=5000000'

1 Answer 1

1

It depends on a lot of factors, but mainly the codec, bitrate and resolution of the source and output files. Unfortunately, I don't know of any websites that catalog the performance of quicksync, but you'll find a lot of user experiences when searching "plex quicksync (CPU model) max streams". Plex is a media player that uses a slightly modified version of ffmpeg to transcode media so it's compatible on client devices.

For instance, this user was able to get 24 1080p to 720p transcodes (mix of H264 and some HEVC) at 1.12x using a 9600k. There's another discussion that's in line with what you're requesting but unfortunately, it doesn't exist or no one has been able to find the data.

The performance will be limited by the iGPUs "Graphics Max Dynamic Frequency", which in the case of the 12900k has a base clock of 300MHz and a max of 1.55GHz. But as you know that doesn't exactly translate to real-world performance.

1
  • Thanks! The info from u/r34p3rex is quite promising. The search term is promising. I'll post back here anything I find.
    – Danny
    May 25 at 10:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.