How can I record an OpenGL game in Ubuntu?

14,137

Solution 1

GLC is well-suited for this purpose. Unfortunately it is not packaged in the archives. However, I have put it (and its dependencies) in a PPA:

ppa:george-edison55/glc Launchpad logo (Click here for instructions on using PPAs.)

You can add the PPA to your system using the following commands:

sudo apt-add-repository ppa:george-edison55/glc
sudo apt-get update

Then you can install GLC with:

sudo apt-get install glc

Once the tool is installed, you can begin recording an application by running:

glc-capture -o /tmp/capture.glc <application>

This will immediately start the application. You can start and stop the recording in-game by pressing the keyboard shortcut Shift + F8.

When you are done, you will end up with a file /tmp/capture.glc that contains the data captured by the tool. You can immediately playback the recording with:

glc-play /tmp/capture.glc

If you wish to convert the recording to a video, you can do so with:

glc-play /tmp/capture.glc -y 1 -o - | mencoder -demuxer y4m - \
    -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=3000 -o /tmp/capture.avi

This will create an MP4 file named /tmp/capture.avi with a bitrate of 3,000 Kbps.


Sources:

Solution 2

I'm using SimpleScreenRecorder to record my Minecraft gameplay. It required a few tweaks to get the sound working but nearly everything you need for recording Minecraft should be in the site (under "Recording game audio"). It has a GUI and, despite the name, has quite a lot of settings that you can tweak to get a video to suit your needs (e.g. quality vs file size). Install instructions are here. For Ubuntu, you'll need to add a ppa repository:

sudo add-apt-repository ppa:maarten-baert/simplescreenrecorder
sudo apt-get update
sudo apt-get install simplescreenrecorder
# if you want to record 32-bit OpenGL applications on a 64-bit system:
sudo apt-get install simplescreenrecorder-lib:i386

To record Minecraft with it, make sure video input is set to "Record OpenGL", click OpenGL settings and put the Java command to open your Minecraft launcher in "Command": java -jar /path/to/launcher/Minecraft.jar. Make sure "Start the OpenGL application automatically" is checked.This should make your Minecraft launcher open you when continue to the recording window. Just log in, click play and press Ctrl + R (configurable to use other combinations) to start/stop recording (alternatively, you can use the buttons).

glc is another tool that does the same thing, but I haven't used it yet and don't know what it's like. Feel free to try it though.

Solution 3

There are plenty of programs that screen capture from the X buffer, but that is very processor-intensive and slow. However, I did find one option that actually captures directly from the graphics card: Yukon

Another one is glc. glc is an ALSA & OpenGL capture tool for Linux. It consists of a generic video capture, playback and processing library and a set of tools built around that library. glc should be able to capture any application that uses ALSA for sound and OpenGL for drawing. It is still a relatively new project but already has a long list of features.

Share:
14,137

Related videos on Youtube

Tamás Szelei
Author by

Tamás Szelei

http://szelei.me

Updated on September 18, 2022

Comments

  • Tamás Szelei
    Tamás Szelei over 1 year

    I would like to create a short clip of me playing Minecraft, an OpenGL game. The usual screencast recorders do not properly record OpenGL.

    What kind of software is available for this purpose?

    My experience with the software in the similar (but no longer duplicate) question:

    1. kazam: very low framerate despite setting to 60 FPS, no sound, unity menubar constantly flashing through the fullscreen window.
    2. RecordMyDesktop: max framerate setting is 50 FPS, but the video becomes extremely fast if not using the default 15 FPS.
    3. xvidcap: not available on 12.04
    4. tibesti: not available on 12.04
    5. wink: does not run
    6. ffmpeg: very low quality video and no sound with the recommended settings, might be tunable though (no gui unfortunately).
    7. kdenlive: uses recordmydesktop, and the recorded clip becomes corrupted
    8. aconv: video sped up, often broken image, no sound
    • Tamás Szelei
      Tamás Szelei over 11 years
      Are you sure that those programs work correctly with an opengl game? Last time I checked they had lots of issues with that.
    • Sanam Patel
      Sanam Patel over 11 years
      Don't know, that is a good point. You should edit your original to 'How can I record an OpenGL game in Ubuntu' maybe?
    • Sanam Patel
      Sanam Patel over 11 years
      The original was a dupe but now this edited question should remain open, especially with all the edits and efforts made to improve it. I see no way to cancel my earlier close vote, so I'll just delete my first comment and upvote.
    • lurscher
      lurscher over 11 years
      this is a joke right? that question is not a duplicate - those screencast recorder apps are limited to stuff being rendered off the hardware. opengl in gpu rendering requires specialized tools, due to the severe brokenness of the X11 architecture. This question must be reopened
    • Admin
      Admin over 11 years
      See this question, where I discuss glc in detail with reference to recording opengl games: askubuntu.com/questions/100053/fraps-like-programs-for-ubunt‌​u
  • lurscher
    lurscher over 11 years
    there is a follow up for Yukon called glc: github.com/nullkey/glc
  • phil294
    phil294 almost 8 years
    sound doesn't seem to be recorded by this. Also, output to avi only possible with the whole glc. thus, for split videos, you'd have to restart the whole game. Other than that, flawless.