Record OGRE screen output
-
- Halfling
- Posts: 43
- Joined: Fri Jun 20, 2014 7:05 pm
Record OGRE screen output
Is there any way to record OGRE window output as a video?
- c6burns
- Beholder
- Posts: 1512
- Joined: Fri Feb 22, 2013 4:44 am
- Location: Deep behind enemy lines
- x 138
Re: Record OGRE screen output
RenderWindow inherits RenderTarget::writeContentsToFile and writeContentsToTimestampedFile:
http://www.ogre3d.org/docs/api/1.9/clas ... dc6e7d2c1d
So you can use that to create a series of images and assemble them into a video (eg. using ffmpeg). Or you could use something like fraps, which I assume works using a dx interceptor to write individual frames into a video for you.
http://www.ogre3d.org/docs/api/1.9/clas ... dc6e7d2c1d
So you can use that to create a series of images and assemble them into a video (eg. using ffmpeg). Or you could use something like fraps, which I assume works using a dx interceptor to write individual frames into a video for you.
- cybereality
- Hobgoblin
- Posts: 563
- Joined: Wed Jul 12, 2006 5:40 pm
- x 12
Re: Record OGRE screen output
FRAPS is a pretty good option if you want to pay a few bucks.
Also I believe Nvidia and AMD offer free software that can screen capture full-screen games.
Also I believe Nvidia and AMD offer free software that can screen capture full-screen games.
- syedhs
- Silver Sponsor
- Posts: 2703
- Joined: Mon Aug 29, 2005 3:24 pm
- Location: Kuala Lumpur, Malaysia
- x 51
Re: Record OGRE screen output
Programmatically, I have done something similar and it can be done quite fast (FPS drop is unnoticable):-
1) First, blit the content into Ogre::PixelBox eg
2) And then use different thread to pickup this PixelBox, and write this bits (from PixelBox) into the corresponding file format (BMP is among the fastest). This bmp is saved as a sequence of files eg file001.bmp, file002.bmp,...
3) Once all frames are recorded, then use ffpmpeg with proper command line to record into video with preferred quality & format.
1) First, blit the content into Ogre::PixelBox eg
Code: Select all
PixelBox* pb;
...
...
HardwarePixelBufferSharedPtr ptr = mVideoRTT->getBuffer();
ptr->blitToMemory(*pb);
3) Once all frames are recorded, then use ffpmpeg with proper command line to record into video with preferred quality & format.
A willow deeply scarred, somebody's broken heart
And a washed-out dream
They follow the pattern of the wind, ya' see
Cause they got no place to be
That's why I'm starting with me
And a washed-out dream
They follow the pattern of the wind, ya' see
Cause they got no place to be
That's why I'm starting with me