I am currently working on Quick Sync based stream solution, ffmpeg is a very good open source software, so our product is based on ffmpeg, and also ffmpeg has supported the Quick Sync technology. here is the hardware details(CPU I3-6100, Memory 2 x 8G DDR4 2133 card).
I have built the ffmpeg with quick sync supports successfully, the performance is very good, encoding 8 1080p@30fps live channels at same time is not problem. but our final target is to encoding 8 1080p@50/60fps live channels. so I want to know is it possible?
The current version ffmpeg can only encoding 8 1080p channels with maximum 40 fps. I am seeking a way to achieve our target. I read this pdf document(https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/cloud-computing-quicksync-...), and at the last page, it says following steps may increase the quick sync performance.
Intel *_qsv codecs present compelling performance, quality, and TCO opportunities and will continue to improve. However, especially for h264_qsv and mpeg2_qsv, significant additional performance is possible via: – Use of video instead of system memory – Implementing gpu-only pipelines with multiple decode, frame processing (i.e. resize), and encode executing asynchronously – Removing redundant synchronization
I haven't deep into the quick sync implementation of ffmpeg yet, but I want to know above optimization is possible to encoding 8 1080p@50/60fps channels at same time?
There is an article https://software.intel.com/en-us/articles/aync-and-join-operation-in-media-sdk-multi-transcoding
may help you to understand async and join.
Hi Yang Z.,
You can try these GStreamer plugins:
These plugins should be able to meet your performance requirements as they have already addressed the issues listed for FFMPEG QSV (full video memory support, asynchronous task sharing, zero-copy, etc.). They should be considerably faster than FFMPEG QSV, and with a lot more options, the gst-mfx plugin performance should be able to match the reference sample MSDK apps.