Hello, I am the developer of a video surveillance company and I am incorporating Intel QSV technology into our products.
Basically in the decoding part beginning with h264 and future mpeg and h265.
I've already made it work.
However I have many problems of code explosions. The code is very unstable.
Generally it explodes when closing the session of video, after to have done all the decoding.
Direct work from the cameras and I have to simulate the "bitstream" I do not know if there is a more appropriate method to take the flow of the cameras and decode it?
I would appreciate some advice.
I work in windows 10 environment with visual studio 2015/2017 and I have the last sdk.
If they have functional examples they are of great help.
My work environment is very complex and involves about 120 streams of cameras concurrently.
Could you describe more about the failure condition?
In your title, it says "multi session", but I don't read any description about it. Did you mean "multi-threading"?
I think your problem might be related to the memory release, you might be missing some steps to release the memory; I suggest you create a solid scenario to reproduce the problem, this way, it would be easier to identify the bug.
Hi Mark, thanks for your time.
I will try to expand the explanation ...
I say multisession by having concurrently n video sources (N IP Cameras) every RTSP session with cameras is serviced from a thread.
At this time and with the latest examples I have achieved a stable model that I am adjusting.
My main problem is that all the examples start from h264 RAW files. In my case I receive the data from a connection RTSP 1 frame at a time.
I would actually need a DecodeFrame function instead of DecodeFrameAsync.
Our API is always an asnyc call because this is the better way to use the hardware, if we use a sync like DecodeFrame() it could cause the wait for the hardware for each frame, this is not efficient for the hardware.
But what is your question now? I really want to help you although you said "achieved a stable model", do you still have the code crash when you close the video session?
I understand a little bit more of your project, it looks like multiple RSTP streams, did you have multiple threads and each for one RSTP stream?
Hi Mark, thanks for your time.
At this time and using the examples of release 3 R3, I have achieved a stable, stable work model.
Now the problem is performance. I do not get a performance similar to the paper "Milestone Leverages Intel Processors with Intel Quick Sync Video to create Breakthrough Capabilities for video surveillance and monitoring", basically the point of 25 fullhd h264 camera decoders / 49 720p h264 cameras decoders, (for live view ). I'm working with processors similar to those used by Milestone (tm) i7-4790K
I'm sure there's something I'm doing wrong since I get better perfomance when I use the system memory configuration instead of 9/11 directx memory.
This lack of perfomance is leading me to try a solution based on ffmpeg, but I can not find an example of using qsv with the windows libraries and libraries of ffmpeg (Zeranoe builds).
If necessary I can share the basics of my sources in c ++, and my c # (wpf) / c ++
I am working very hard on this project, proof of it is that it has achieved a stable and functional model since the examples of R3, now my theme is perfomance.
I would appreciate any kind of help, thank you very much.