The biggest problem is your "24 frames per second" requirement. Windows is not a real-time system, so, with some probability, you may fail to deliver exact frame rate; some delays will be possible. You can use multimedia-system timer to improve the reliability if it, but it will require P/Invoke or C++/CLI (mixed, managed+unmanaged mode). You can start here:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd757634%28v=vs.85%29.aspx[
^],
http://www.pinvoke.net/default.aspx/winmm/timesetevent.html?diff=y[
^] (P/Invoke already done for you).
Perhaps you may not be so strict about your timing (considering your purpose), the you can use one of .NET timers:
http://msdn.microsoft.com/en-us/library/system.threading.timer%28v=vs.110%29.aspx[
^],
http://msdn.microsoft.com/en-us/library/system.timers.timer%28v=vs.110%29.aspx[
^],
http://msdn.microsoft.com/en-us/library/system.windows.forms.timer%28v=vs.110%29.aspx[^] — never ever try to use this timer for anything which require any accuracy at all, anything supposed to be even approximately periodic,
http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatchertimer%28v=vs.110%29.aspx[
^] (specific mostly to WPF, can only be suitable if your application also uses WPF UI).
Screen capture is possible in WPF or
System.Windows.Forms
and is trivial. Hope you will find out how to do it yourself, depending on your settings:
http://bit.ly/1p36knv[
^].
It leave for more difficult part: the use of RTMP protocol:
http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol[
^].
I would look at the library LibRTMP.NET.Windows released under Google Code, supplied with rtmp-mediaplayer:
https://code.google.com/p/rtmp-mediaplayer[
^].
—SA