I have a desktop application that captures the content of the screen. The result are DirectX 11 2D textures with RGBA8 format.
My goal is to stream that captured content to a mobile device with Android OS (let's say, at least 7.0). I noticed Android supports H.264 decoder (and even H.265 if I'm not mistaken) out of the box, so having bandwidth and latency in mind, I'll go with that.
To achieve the maximum performance, I want to used dedicated media SDKs for GPU-based encoding (Codec SDK from NVidia and AMD's AMF). I have a few questions about what should I do to properly approach that task.
(1) What is the best (in terms of encoding performance) format of data I should supply to the encoder? I'm asking about the pixel format, colorspace, etc.
(2) I remember, that H.264 is about analysing group of frames to achieve best compression results. Will encoding single frames be efficient enough?
(3) And lastly - any ideas/comments/samples/suggestions on how to properly use these encoders in a per-frame basis?
Thank you for your time!