I have tried
- GDI approach which takes 75 ms to capture 1920x1080 screen. 
- DirectX front buffer approach which takes 84 ms to capture 1920x1080 screen. 
- Desktop Duplication API which is very fast when videos are being played takes 9 ms per capture but when the screen is idle/less changes, the capture time increases to 300 ms or more. 
- Tried windows media encoder approach but could not find windows media encoder sdk. 
Are there any other ways to do the same with the capability of 60 fps? I recently got to know that software like Microsoft Expression encoder can capture 60 fps. I'm wondering which api is being used!
Any directions would be appreciated. Thanks in Advance. I am using C++. Does the possible duplicate answer about microsoft expression?