On Wednesday 10 October 2007 11:11:40 T. D. Ruth wrote:
> I haven't tried it yet and this suggestion is probably subject to Phil's
> comment but check out this article on Jing:
> http://www.pcworld.com/article/id,134932-page,1-c,graphicsmultimedia/articl
>e.html .

How you do video capture is very OS specific.  There was a thread on here 
earlier that went into lots of detail about how to do this on a Linux system.   
There are at least two approaches that work for Linux users.  Here is that 
thread:

Re: [Flightgear-users] record a flight session video
 From: "Hal V. Engel" <[EMAIL PROTECTED]>
 To: flightgear-users@lists.sourceforge.net

On Sunday 03 June 2007 20:46:54 Curtis Olson wrote:
> On 6/3/07, Pigeon wrote:
> >     Considering you're Linux you could also try xvidcap (which has GUI)
> > and ffmpeg (which you have to do at command line).
> >
> >
> >     But to be honest I doubt they would make huge differences from
> > Instabul or recordmydesktop.
> >
> >
> >     I often find the bottle neck on most machines is not the video/audio
> > encoding but how fast the data is being captured. For that you could try
> > capturing at a smaller resolution or slower frame rate. I also notice a
> > better display card does give a better performance, possibly related the
> > xshm implementation of the driver and other display card specifics like
> > memory bandwidth.
> >
> >
> >     And also depending on your machine and disk, you can try
> > capture+encode on the fly versus capture-into-frames (jpg/png/xwd) then
> > encode later. Though my personal experience is on slower processor they
> > yield pretty much the same performance, while on a faster processor (say
> >
> > >2GHz) it is faster to capture+encode on the fly as there is less disk
> >
> > io.
>
> Another option which I have used at my day job with excellent results is to
> get a scan converter that converts your vga signal to NTSC (or PAL) video.
> Now pipe that video output into a video capture box that is plugged into a
> second computer.  It's more expensive than an open source software package,
> but the results are full smooth frame rates since you don't have two
> applications competing for the same video/memory/disk/cpu resources.
>
> Curt.

This an old thread that I discovered when I was trying to figure out how to 
create videos of a flightgear session.  The thread was a dead end but it did 
point out somethings that do not work so that I didn't have to spend anytime 
looking at those options.  So I did a little research myself and figured out 
a way to get OK recordings.   Since it appears that no one has documented a 
way to do this I will do it now.

After doing some research I tried using yukon to do the capture and it works 
much better but it also requires more steps.  Yukon is specifically for 
recording OpenGL games and uses hand optimized assembly code at least on x86 
and x86_64 hardware.    To do this with yukon I ended up using a three step 
process.

Step 1.

Capture the FDM data for a flight using

--generic=file,out,20,<file>,playback

as part of the command you use to run FG.  <file> is the name of the output 
file that contains the FDM data.  This creates a fairly small data file (less 
than 1 meg per minute of flight time).  This step can be done using what ever 
screen resolution you want since it does not affect the final result in any 
way. In my case I have been using 3200x1200.

In the --generic parameters the 20 is the captured frame rate for the FDM.  
Depending on your hardware you might find other values that work better.  In 
addition, I do not know if this is the best value to use in my case because I 
did not try too many other settings.   Yukon seems to capture at 25FPM no 
matter what I told it to do so I think that using 25 might give the best 
overall results.

For those using fgrun you can set this up in the Advanced dialog in the 
Input/Output section.  Use the generic protocol. 

Step 2.

Play back the file created in step 1 in FG using a better video capture 
resolution such as 640x480 or 320x240 and record it with yukon using a 
command that looks like this:

yukon /usr/games/bin/fgfs --fg-root=/usr/share/games/FlightGear 
--fg-scenery=/usr/share/games/FlightGear/Scenery --aircraft=pc7 
--enable-horizon-effect --enable-game-mode --lon=-122.3590 --lat=37.6157 
--altitude=0 --heading=120 --geometry=640x520 --bpp=32 --fov=90 
--generic=file,in,20,<file>,playback --fdm=external

Where <file> is the file created in step 1.  Use F8 to start and stop recoding 
by yukon.  It is important that the air craft and starting position used in 
the above command are the same as when the FDM output file was created in 
step 1. Be sure that yukon is configured correctly and is working before 
doing this. Warning - the file created by yukon is uncompressed raw video and 
is very large. You can find info about yukon here:

http://neopsis.com/projects/yukon/wiki

For Gentoo users there is are ebuilds for seom and yukon in the sunrise 
overlay.  You need to have seom installed to build and run yukon.  

Step 3.

At this point you have a very large raw video file and you will need to do 
additional processing to make it usable.

So do something like:

seom-filter yukon.seom | mencoder - -ovc xvid -xvidencopts bitrate=512 -o 
myvideo.avi

mencoder is part of mplayer.  You can change the bitrate to get higher quality 
(but also larger files) or lower quality (smaller files) video. Setting 
bitrate to 512 did have noticeable artifacts in the resulting video captured 
at 640x480. You may want to try higher values.  You can also do a two pass 
conversion with mencoder to get higher quality video at a given bitrate.

Using the above techniques I have made a 8 minute 47 second video and a 5 
minute 20 second video.  Again captured at 640x480.  The output from yukon on 
the longer video was almost 4 gigabytes and the resulting avi file using a 
512 bitrate was 32.4 megabytes. The shorter video had 2.1 gigabyte and 19.8 
megabyte files respectively.

Both of these videos played back fine using xine and mplayer.  But I was not 
able to get either to work when uploaded to youtube.   I don't know why.

Now I have a question.  I would like to be able to pan and zoom in the 
recoding session (IE. during step 2).  Zooming is easy since I can us the x 
and X keys.  But panning is problematic since right clicking the mouse to use 
it for panning results in a big ugly cursor in the middle of the recording.  
If the cursor was not visible this would work great.  Is there anyway to 
prevent that cursor from appearing? 

Hal

Re: [Flightgear-users] record a flight session video
 From: Pigeon <[EMAIL PROTECTED]>
 To: flightgear-users@lists.sourceforge.net
 
> Step 2.
> 
> Play back the file created in step 1 in FG using a better video capture 
> resolution such as 640x480 or 320x240 and record it with yukon using a 
> command that looks like this:


    While we're experimenting with video capturing, if anyone here is
comfortable with patching and building your own FG, I invite you to have
a try with my screen streamer patch, which allows you to capture FG's
screen directly, without using an external program.


    I'd like to know how much better/worse this streamer performs
comparing to things like xvidcap and yukon.


    http://pigeond.net/~pigeon/fgfs.osg-plib.ss.20070820.patch

    Please make sure you read the header of the screenstreamer.cxx file.


    In short, you run fgfs with an extra argument, like:
--screenstreamer=localhost,20000
    
    Then you can capture FG and transcode into a video on the fly, say
with mencoder, by doing:

    mencoder -nocache -demuxer rawvideo
      -rawvideo w=640:h=480:fps=25:format=rgb24
      -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=480
      -o output.avi -ffourcc DIVX
      "http://localhost:20000/?fps=25";

    A lot more details and examples can be found in the
screenstreamer.cxx file.


    Any feedback would be much appreciated.


    And just recently I have setup an experimental live "mpcam" on the
mpmap. My originally e-mail to the devel list:

    
http://www.mail-archive.com/[EMAIL PROTECTED]/msg12262.html

    So you can see the screen streamer in live action.


Pigeon.

Re: [Flightgear-users] record a flight session video
 From: "Hal V. Engel" <[EMAIL PROTECTED]>
 To: flightgear-users@lists.sourceforge.net
 
On Sunday 26 August 2007 16:46:20 Pigeon wrote:
snip
>     I'd like to know how much better/worse this streamer performs
> comparing to things like xvidcap and yukon.

I have not tried your patch yet but I can tell you that I found xvidcap 
totally unusable for capturing FlightGear.  It only captured the first frame 
and then the only thing that "moved" in the video was the blinking cursor.  I 
think xvidcap is more for making training videos and is not well suited for 
capturing things like games and simulations. 

I will try your patch but it may take a few days.  Can I use the patch with 
0.9.11-rc1?

One of the things that I think is useful about the way I am doing this with 
yukon is that I can focus on flying during the FDM capture session without 
having to think about things like camera angels and zoom.  Then when playing 
back the session during capture I can forget about the actual flying and 
focus on things related to the composition (camera angle, zoom...).  In other 
words it cleanly separates the pilot and camera man functions.  Of course 
this should be possible with your patch as well.  Question - when your patch 
is doing the capture does it also capture the cursor and menu?

Siegfried has placed one of my yukon captured videos on the home page of the 
FlightGear Fan Portal http://flightgearfan.6x.to/ if anyone is interested in 
seeing the results.  This video is mostly a proof of concept and it not at 
all polished.  There is no sound since the version of yukon I was using does 
not capture sound (it will be in the next release).  This video is about 6:47 
minutes and consists of an aerobatics flight over KSFO that starts with 
taxing for take off and ends with a landing on 28R.  The aircraft is a PC-7.  
It was captured at 320x240 and is hosted on youtube.  I have not been able to 
playback the youtube video on my machine because I am running gnash on my 
system and right now gnash works with most but not all of the videos on 
youtube.  

Since it is still alpha level code gnash also does not currently work with the 
mpcam either.  But I like the idea behind mpcam since it would allow for a 
pilot to take someone in another location for a "ride" in their airplane.

Hal

Re: [Flightgear-users] record a flight session video
 From: Pigeon <[EMAIL PROTECTED]>
 To: flightgear-users@lists.sourceforge.net
 
> I will try your patch but it may take a few days.  Can I use the patch with 
> 0.9.11-rc1?


    I've just reorganized my patch now, it's now split into two:

    http://pigeond.net/~pigeon/fgfs.plib.ss.20070828.patch                      
                                                                                
    http://pigeond.net/~pigeon/fgfs.osg.ss.20070828.patch               


    The plib one should work with 0.9.11-rc1


> One of the things that I think is useful about the way I am doing this with 
> yukon is that I can focus on flying during the FDM capture session without 
> having to think about things like camera angels and zoom.  Then when playing 
> back the session during capture I can forget about the actual flying and 
> focus on things related to the composition (camera angle, zoom...).  In 
other 
> words it cleanly separates the pilot and camera man functions.  Of course 
> this should be possible with your patch as well.

    Indeed. Your approach is good in many ways, and it should work with
any mean of capturing.



> Question - when your patch 
> is doing the capture does it also capture the cursor and menu?

    At the moment, the plib version captures menus and dialogs, but not
the cursor. The current osg version, which I've used render-to-texture
to capture, only captures what's in the scene graph, which means it does
not capture the menu. In theory I could also implement a RTT version for
the plib branch as well.


> There is no sound since the version of yukon I was using does 
> not capture sound (it will be in the next release).

    That would be an advantage of (future) yukon to capture audio as
well. Of course I could also implement that if it is worthwhile.


    I've also tested the streamer under windows and it works pretty well
too. I believe I would not be straight forward to get yukon on windows,
but then I don't know.

    The original intention of my streamer is to provide an easy and in
theory efficient way to capture video of FG, comparing to using any
external on-screen-capture tool. I know a few people was using FG's
jpg-httpd for capturing and making video, which is IMHO insanely
inefficient.

    I have not tried yukon myself yet, but with the way it works it
should be very fast as well.


Pigeon.

Re: [Flightgear-users] record a flight session video
 From: "Hal V. Engel" <[EMAIL PROTECTED]>
 To: flightgear-users@lists.sourceforge.net
 
On Monday 27 August 2007 16:49:17 Pigeon wrote:
> > I will try your patch but it may take a few days.  Can I use the patch
> > with 0.9.11-rc1?
>
>     I've just reorganized my patch now, it's now split into two:
>
>     http://pigeond.net/~pigeon/fgfs.plib.ss.20070828.patch
>
>     http://pigeond.net/~pigeon/fgfs.osg.ss.20070828.patch
>
>
>     The plib one should work with 0.9.11-rc1

I was able to get the old patch (with some minor tweaks) to work with 
0.9.11-pre1.  I also did some testing.  This would be a real nice addition to 
FlightGear and I would like to see it become part of the next release.

>
> > One of the things that I think is useful about the way I am doing this
> > with yukon is that I can focus on flying during the FDM capture session
> > without having to think about things like camera angels and zoom.  Then
> > when playing back the session during capture I can forget about the
> > actual flying and focus on things related to the composition (camera
> > angle, zoom...).  In other words it cleanly separates the pilot and
> > camera man functions.  Of course this should be possible with your patch
> > as well.
>
>     Indeed. Your approach is good in many ways, and it should work with
> any mean of capturing.

There are both advantages and disadvantages:

Pluses.

1. Better control over composition while recording.

2. No distractions related to the recording process while piloting the 
aircraft.

3. Since you can run the record playback session at lower resolutions than you 
would normally run FG while flying you can crank up the OpenGL quality 
parameters while recording.

Minuses

1. Sounds do not playback very well using this method.  The engine/prop  sound 
does not change like it does normally.  Wind noises from lowering the landing 
gear are not present.

2.  At least with the PC-7 none of the engine gages work while using an 
external FDM.  Perhaps this is related to #1.  Is this a PC-7 issue or does 
this happen with all aircraft?

3. Does not allow you to record other aircraft that may have been present 
during the session when you recorded the FDM.  So this will not work if you 
want to create a video of a formation flight for example.

4. During FDM play back movements of the controls are jerky and do not 
completely reflect what happened when the FDM was recorded.

Hopefully #1, #2 and #4 will be fixed at some point.

>
> > Question - when your patch
> > is doing the capture does it also capture the cursor and menu?
>
>     At the moment, the plib version captures menus and dialogs, but not
> the cursor. The current osg version, which I've used render-to-texture
> to capture, only captures what's in the scene graph, which means it does
> not capture the menu. In theory I could also implement a RTT version for
> the plib branch as well.

With yukon it is fairly simple to avoid recording the menus since you can tell 
it to ignore parts of the application window it is recording.  But I think 
that your code should be designed to prevent things like menus from being 
captured and it looks like you are already there with OSG.  Not recording the 
cursor is a good feature and a definite plus compared to yukon.  

>
> > There is no sound since the version of yukon I was using does
> > not capture sound (it will be in the next release).
>
>     That would be an advantage of (future) yukon to capture audio as
> well. Of course I could also implement that if it is worthwhile.
>

Sound would be a plus but I don't think it is a big deal at this point.  Focus 
on getting video capture working as well as possible before worrying about 
sound. 

>
>     I've also tested the streamer under windows and it works pretty well
> too. I believe I would not be straight forward to get yukon on windows,
> but then I don't know.

I believe that yukon is X11 and x86 or x86_64 only at this point.  I would 
expect that we will see it for other architectures on X11 before we see it on 
Windows.  But I believe that there are currently other viable options for 
Windows for those who want to capture videos of games and sims.  For X11 
users I get the impression that yukon is about the only viable option.  At 
least that is what users on the gentoo forums are saying.

>
>     The original intention of my streamer is to provide an easy and in
> theory efficient way to capture video of FG, comparing to using any
> external on-screen-capture tool. I know a few people was using FG's
> jpg-httpd for capturing and making video, which is IMHO insanely
> inefficient.
>
>     I have not tried yukon myself yet, but with the way it works it
> should be very fast as well.

Yes yukon is fast and it has fairly low CPU overhead.  It is actually a good 
general purpose OpenGL video capture tool considering how young it is.  But 
at higher resolutions it starts to become IO bound because of the size of 
it's output files.  It also needs a huge amount of disk space - a 640x480 
capture uses about a half gigabyte per minute of recording.  The advantage 
however is that you can do things like two pass processing, for better 
quality at a given compression level, that would be at best difficult using 
your patched FG code. 

Another plus for yukon is that you can start/stop recording by pressing F8 
(this is the default key but it can be changed).  For example, you may want 
to only record a few segments of a flight and yukon will let you do that.

One other thing that may be an issue.  I like to run FG in game mode across 
both of my monitors.  This means that if I wanted to capture a live session 
(IE. not using a recorded external FDM) there would be no way to start 
mencoder after FG was running.  And as you know starting mencoder before FG 
is running does not work.

I hope this was helpful.

Hal

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Flightgear-users mailing list
Flightgear-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-users

Reply via email to