Capturing game footage
This is an overview of the different software available for recording game footage in Windows and on Macs. Although it's written with Oni in mind, the various instructions below should apply to any game. Of course, the most reliable method for high-performance video recording is to connect your PC to a video capture device, offered by companies such as Roxio, Elgato, and Blackmagicdesign, but these devices are also more expensive than any of the software options below.
Windows
Codecs
The most popular by far remains the so-called MPEG-4 and DivX/XviD/3ivX/whatever series. There are also a few decent Microsoft codecs, either preinstalled or coming with Windows Media Player updates (also using the AVI wrapper). WMV is produced by Windows Movie Maker: the "superior quality" setting can have lousy anti-aliasing for titles, but for raw in-game footage it's mostly OK, and it has a very convenient compression ratio. Apart from those, there is a "countable infinity" of 3rd-party codecs, more or less compatible with cross-platform editing of the recorded footage.
FRAPS
- Pros
- The main limitations for writing uncompressed video at large resolutions are CPU and HDD usage, and FRAPS somehow manages to get fast enough HDD access and doesn't steal much CPU time from Oni either (of course this depends on your CPU and HDD).
- Cons
- FRAPS is shareware: the demo version displays a watermark and stops recording after 30 seconds.
- The FRAPS codec is proprietary and Windows-only, so one can't play back the video in Mac OS without having installed Perian. (This codec extension is still buggy in its ability to handle FRAPS video due to a glitch in the underlying libraries, but it may be fixed soon.)
Taksi
A freeware, open-source counterpart to FRAPS
- Pros
- Freeware: no watermark, unlimited recording length, compatibility with every video codec installed
- Cons
- Doesn't record sound (but this isn't all that relevant for elaborate music videos anyway)
- May create "empty" ranges at the start of the video, if the recording is not the first in the Taksi session.
- Doesn't reliably detect Oni as an application window. This is fixed by using Rossy's OniUSB.
CamStudio
This is actually a tool intended for capturing video tutorials, not specifically tailored for video games, but it can yield decent results (depending on the codec, HDD and CPU of course). Like Taksi, is can use pretty much every video codec available system-wide. Unlike Taksi or FRAPS, it can't hook a specific application, and instead records a specific portion of the desktop. Unlike Taksi, it can record sound.
Mac A/V recording
These programs will automatically record Oni's sound and video at the same time. Just make sure to close any other applications that play sounds before you record Oni, unless you're using Audio Hijack (see "Mac audio-only recording"). If you don't want to pay for an A/V capture solution, the free alternative is OBS Studio or QuickTime Player (see the "video-only" section) used alongside Soundflower (see the "audio-only" section).
ScreenFlow
$99, http://www.telestream.net/screenflow/overview.htm
As of version 6, ScreenFlow can now capture regions of the screen, useful when playing Oni in windowed mode. System audio is captured by the Telestream Audio extension which the program offers to easily install for you.
A couple tips on preferences before starting a recording:
1. Under Advanced, choose "Lossless" compression or you will not get satisfactory results.
2. Under General, you'll probably want to turn off the countdown option.
To capture just Oni when playing in windowed mode:
1. Create a new recording (File>New), choose the right monitor in the "Record Desktop from:" menu, check the "Record Computer Audio" box, and on the second screen (notice the blue dots), the choice for "Record Desktop Framerate" should be set to "Automatic". This will allow ScreenFlow to record Oni at 60fps.
2. Instead of hitting the Record button, press the button with the icon of a rectangular marquee, then hover over Oni's window and press Space to select its area as the capture region. Now you can hit the big red circle button to record.
3. Stop recording using the ScreenFlow icon in the menu bar.
However, you will still have to use ScreenFlow's post-recording editing suite to crop out the title bar of the game window:
1. Hit the Change Canvas Size button. (If you recorded the whole screen, not just a window, make sure the "Snap to Front Window" box is checked.)
2. You'll see fields for typing in a custom canvas size, but don't use them. If you recorded Oni at 1024x768, as an example, the canvas size will be 1024x790, but if you changed "790" to "768", it would just deduct those 22 pixels from the top and bottom of the window equally.
3. In order to crop out Oni's window title bar, you'll need to zoom in on the video so you have enough control to move the top canvas boundary by individual rows of pixels. Drag the top canvas line down until the canvas size in those text fields reflects the actual resolution that Oni was running at (again, that should be 22 pixels less than what you started with).
Saving the recording will only save a ScreenFlow project with the raw video. To get a standard format video such as .mp4, choose File>Export…. Pick "Web - High". Then click the "Customize…" button. Here you can set the framerate to 60fps if desired, as well as picking a good bit rate (4000 kbits/sec seems adequate when using 60fps). The quality of the audio should not need to be higher than 128kbit AAC. Save the settings, then back on the export screen make sure that the Dimensions setting is "Scale by 100%".
Snapz Pro
$69, http://www.ambrosiasw.com/utilities/snapzprox/
Snapz Pro used to be the most popular screen recorder for Macs, but it was overtaken when its development seemed to halt and it stopped supporting new versions of OS X. However, an update has been released that promises updated support for OS X.
iShowU
$20-$79, http://www.shinywhitebox.com/
shinywhitebox offers several versions of their capture technology, from the classic version of iShowU ($20, and somehow still supported for OS X 10.11) to the full-featured capture-and-editing suite iShowU Studio ($79). If you're thinking of getting classic iShowU, it probably makes more sense to go with the newer product iShowU Instant ($24) instead. Both apps do record system audio, though technically classic iShowU should be under the "video-only" section since it requires Soundflower (bundled with it, but see "audio-only" section for more info) to capture this sound. Then again, the newer iShowU apps also require an additional free component, iShowU Audio Capture (a replacement for the semi-defunct Soundflower that they wrote themselves), but in this case it's a part of the same developer's suite of software, so let's count that as a total A/V solution.
iShowU supports region capture and window capture, but its window capture option records the window's title bar as well, which is not desirable for gameplay recordings. This means that you have to use region capture to precisely select the contents of Oni's window. Fortunately, iShowU provides its own zoom feature while you perform this selection, but make a tiny mistake and you could ruin your output with a row or column of pixels from outside Oni's window. By contrast, OBS Studio records the direct OpenGL output from Oni, giving you a perfect capture of just the game every time (but with the added hassle of configuring OBS and Soundflower).
Mac video-only recording
These programs record audio too, but they're designed to take input from a built-in microphone or from line-in, and thus will not record system sound. You have to combine one of these programs with one of the options under "Mac audio-only recording" to get an A/V recording of Oni.
OBS Studio
Free, https://github.com/jp9000/obs-studio/releases
OBS allows you to record video directly from Oni's OpenGL output, so you don't have to try to select the exact region of the game window. OBS is a bit tricky to set up, but the settings you choose for the "Scene" will be saved automatically for the next time you open OBS. An additional wrinkle is that OBS requires a kernel extension called Soundflower (see "Mac audio-only recording" section) in order to capture audio. Once Soundflower is set up, you will need to enter OBS' Settings screen, choose "Audio", then set the "Desktop Audio Device" to "Soundflower (2ch)" in order to capture the system sound that is being looped around to become input.
The resulting recording is in FLV format by default, which is inconvenient for editing purposes because Apple's video-editing software, such as iMovie, requires a .mp4 or .mov file as input. If you don't plan to make any edits, and you take care to record only what you want the user to see, then you can simply feed the FLV directly into YouTube in order to publish it. You can also convert it to a Mac-friendly format with video-conversion software such as Flip4Mac Player Pro ($29) or Perian (free, but no longer under development). But you'll probably prefer to go to OBS' Settings screen, choose "Output", and change the "Recording Format" to "mp4" or "mov".
To capture Oni's video output directly, open Oni in windowed mode, then open OBS and remove any default entry in the Sources list. Click the '+' button and choose a Syphon source. In the Syphon source's properties, check the Inject box and click the Launch SyphonInject button. Choose Oni from the list of open applications and click Inject. Close the Syphon properties window and you should see Oni's game window at the top-left of the screen preview in the OBS window. Now click the Settings button, go to the Video section, and in the Base Resolution field type in the size of the Oni window. If you don't trim the video dimensions to Oni's resolution in this way, the final video will show Oni's gameplay footage as part of a larger blank region.
QuickTime Player
Free, built-in
Simply choose File>New Screen Recording. You will be prompted to select a region of the screen to record, which still leaves you the challenge of precisely capturing the window's region (you may find OS X's Zoom feature, under the Accessibility preferences, helpful for making a precise selection). Like OBS, QT Player also will not record system sound without additional help; see below. If you use one of those methods to direct the game's sound output back into the computer, then make sure you also select this input source in QT Player's window by bringing up the pop-up menu using the arrow next to the Record button and choosing the right "Microphone" setting. The volume slider controls the volume of the input that QT Player will record; it does not seem to make much difference if it is set to the lowest volume or a little higher, but if it is set too high, it causes echoes. To make sure your recording won't have echoes, plug in headphones, open the Screen Recording window, and test-play the output from the game before you begin recording.
Mac audio-only recording
These programs will either record system sound separately, to be recombined with the captured video in your video editor of choice, or will divert system sound to a program that normally wouldn't be able to record it (as seen under "Mac video-only recording" above).
Additionally, you need to ensure that your levels are correct. Once you believe you are ready to record sound, go to System Preferences>Sound and make sure that the "Output volume" at the bottom and the "Input volume" under the Input tab are set properly. You can test this by generating some sound from the game without starting a recording, and watching the "Input level" bar in Sound's Input tab to see if it lights up appropriately while the sound is playing.
Note that you may not hear sound output from the game when you are directing the audio output to your video recording program, unless you have passthrough turned on. OS X's Audio MIDI Setup app should allow this if you select your input device and check the "Thru" box on the "M" (or "Master") channel's line. If you send passthrough to your speakers, you might get an echo that is captured in the audio recording (yes, even though you are not recording through the Mac's built-in microphone). You should use headphones to prevent this. Note that "Thru" is disabled when using Soundflower, below, but there are instructions under Soundflower's section for getting passthrough audio sent to your headphones.
Audio Hijack
$49, http://www.rogueamoeba.com/audiohijack/
The basic issue with most programs that record your system sound is that they record all the sound, including various sound effects from your mail client, instant messenger, etc. This program allows you to specifically record the audio from just Oni.
Soundflower
Free, https://github.com/mattingalls/Soundflower
Soundflower lets you loop the audio from your system output to your system input. Once it's installed, launch the controller app (actually called Soundflowerbed; note that, as of the time of this writing, the app is no longer distributed pre-built; you must download the Xcode project from the GitHub page above and build it yourself). You will get a flower icon in your menu bar; from it, select "Built-in Output" under the "Soundflower (2ch)" section (the "64ch" part doesn't matter). Then go to System Preferences>Sound, and under both the Input and Output tabs, choose "Soundflower (2ch)". This is the software equivalent of the audio cable loop method described below.
Now, if you want to have passthrough audio, so that you can actually hear the game while playing and recording it, you need to go an extra mile. First, plug in some headphones. Then, open OS X's Audio MIDI Setup app (which can be reached by choosing Soundflowerbed's "Audio Setup…" menu item), click the "+" button at the lower-left, and create a new "Multi-Output Device", then check the "Use" box for both "Built-in Output" and "Soundflower (2ch)". Then, expand the Multi-Output Device item in the left-hand list of the window and select the Built-in Output sub-item. You'll want to turn the volume for channels 1 and 2 down to -33dB or lower in order not to blow your ears out (OS X doesn't automatically dampen the volume for headphones when they are part of a multi-output device). Note that once you are recording, you won't simply be able to adjust the headphones' volume from the speaker icon in your menu bar; it will be grayed out because OS X cannot set the volume for multiple devices at once. Finally, go back into System Preferences>Sound, under the Output tab, and choose "Multi-Output Device" instead of "Soundflower (2ch)".
Either way, before you can record the audio that is being looped around by Soundflower, you must select Soundflower as the audio input source in your video capture program before starting to record Oni.
Note that, as of April 2016, Soundflower the extension is in a somewhat precarious state of development, and Soundflowerbed the app is discontinued or in the process of being rewritten. See iShowU Audio Capture for a solution that may be newer and easier to use.
iShowU Audio Capture
Free, http://www.shinywhitebox.com/
It appears that shinywhitebox's free Audio Capture extension, designed for use with their iShowU video capture apps, will work on its own, allowing you to add system audio to any video recording app, including QuickTime Player. It probably works similarly to Soundflower, but if anyone actually tests it, please update this section.
An audio cable
About $2-$5, wherever audio equipment is sold
If your Mac has standard minijack ports for audio input (microphone) and output (headphones), just plug one end of a standard audio cable into the headphones jack and the other end into the microphone jack to loop your sound output back into the computer. Then, in System Preferences>Sound, select "Headphones" under the Output tab and "Line In" under the Input tab. Make sure you also select line-in as your audio source when recording video in a program that also records audio.