1

I'm researching the various ways of recording videos of desktop applications, specifically video games.

My first thought is something more lower level, like on the DirectX front - perhaps hook some DirectX method and record that way. I was hoping there would be a toolkit or full-blown framework for making this easier.

My goal is to stream video capture data to my server.

Does anyone know if there are any tools for helping me with this? Language really doesn't matter to me, to be honest.

Brian
  • 4,974
  • 2
  • 28
  • 30
Ryan
  • 7,733
  • 10
  • 61
  • 106

2 Answers2

2

Alternatively use VLC (VideoLan) and bundle this with your application.

http://wiki.videolan.org/C_Sharp

Beware license restraints though... I'm not sure what license VLC uses.

Darbio
  • 11,286
  • 12
  • 60
  • 100
  • VLC media player has the option to stream video over UDP, as well as transcode the video, client-side, before sending it over the wire. Pretty handy stuff. Sadly, their WebM transcoder is terribly slow and isn't support for streaming I don't think. :( – Ryan Jun 16 '11 at 05:56
1

Maybe not the easiest, but I remember this question: Record Video of Screen using .NET technologies

Basically you don't need any third party apps/libs as the .NET BCL can handle screen capture, but you will need something to stitch them together.

You take screen captures, composite your images and compile into a video using a Splicer such as http://splicer.codeplex.com/

e.g.

private Image CaptureScreen()
{
    Rectangle screenSize = Screen.PrimaryScreen.Bounds;
    Bitmap target = new Bitmap(screenSize.Width,screenSize.Height);
    using(Graphics g = Graphics.FromImage(target))
    {
        g.CopyFromScreen(0,0,0,0,new Size(screenSize.Width,screenSize.Height));
    }
    return target;
}

Loop through this method for as long as you need.

List<Image> images;
while (stillAlive){
    images.Add(CaptureScreen());
}

Then combine using Splicer:

enter image description here

Community
  • 1
  • 1
Darbio
  • 11,286
  • 12
  • 60
  • 100
  • 1
    Does `CopyFromScreen` handle DirectX and OpenGL windows? I thought it wouldn't. – Ben Voigt May 29 '11 at 04:23
  • Aha... No, as CopyFromScreen does the same as PrintScreen, which will not copy images from DirectX/OpenGL surfaces. OP will have to use the Direct3D API to do this: http://www.mvps.org/vbdx/articles/screenshot/index.html in vb, but shows the concept – Darbio May 29 '11 at 05:28
  • and using camtasia: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/39c8a04a-d3f8-41db-a74a-5e49a548acf0/ – Darbio May 29 '11 at 05:30