We have a project in which 4 streams obtained from a capture card in YUV format should be encoded by using H264 all in D1 resolution. Meanwhile two 1080p videos compressed by H264 needs to be decoded. All these should be performed on a Linux distribution. To achieve this, we think on the following solution: Use Intel's EMGD driver and vaapi gstreamer plugins on an E3845 processor and to perform all those encodes and decodes expose GPU features of this processor. However, while researching on this solution, I note that some posts in related Intel forums and whitepapers imply that Intel Media SDK should be used above EMGD driver. While researching on Media SDK it is found that there are two different versions, Client and Server. Client is not distributed for Linux but Server is. However, documentation for Server is too fair and I cannot learn anything useful how these two different version seperate. Using Intel Media SDK is mandatory for a task like this.
To summarize I have following questions&requests:
1.Could you please assist me on which techniques and libraries should be used for a task similar to this?
2.Which Linux distribution should be used? Intel EMGD can be used on a Fedora and Yocto Project build. Is there any different possibilities?
3.Is Multi-threaded access possible to driver for all these encode and decode processes, ie. multiple gstreamer pipelines?
4. What is capabilities of Media SDK? It seems, it has sources, sinks, and filters like gstreamer but it is specialized for Intel's hardware. Is using Media SDK for such a scenario mandatory?