is to periodically take the screenshot of the entire desktop, and then extract a particular region associated with the game screen. The second mechanism opportunistically reads the video frame data from the graphic rendering buffer. As this mechanism is implemented by hooking the DirectX APIs, it supports only DirectDraw and Direct3D games running on Windows. Respectively, capturing the game sound for audio frames is accomplished by using the ALSA library and Windows Audio Session API (WASAPI) for Linux and Windows. Once both the audio and video frames are obtained by the server, they are encoded by using the libavcodec library. After this, the server streams the encoded data flow stream to the client side.