Capturing game footage

From OniGalore
Revision as of 14:51, 22 April 2016 by Iritscen (talk | contribs) (info about iShowU)
Jump to navigation Jump to search

An overview of the different methods available for recording Oni footage on Windows and on Macs.

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

http://fraps.com

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 under the "video-only" section used alongside Soundflower under the "audio-only" section, but it's much more complicated to set up than any single recording app.

ScreenFlow

$99, http://www.telestream.net/screenflow/overview.htm

Because ScreenFlow is optimized to capture an entire screen and doesn't support region capture, it's better if you're running Oni in full-screen mode. If running in windowed mode, ScreenFlow's post-recording editing suite will allow you to crop the recording down to just the game window:

1. Hit the Change Canvas Size button. Make sure the Snap to Front Window box is checked.
2. Drag the white lines at the edges of the recorded screen inward until they snap to Oni's window.
3. In order to crop out Oni's window title bar, you'll need to zoom in on the video so you can see the individual rows of pixels and try to drag the top canvas line down to the top of the actual window content. You might think you can adjust the canvas size manually by typing in a smaller height value, but a decrease in pixels will be subtracted from the top and bottom of the window equally, whereas you want the lower edge to remain snapped to the Oni window.

If you want a total A/V solution that also supports region capture, see iShowU.

Snapz Pro

$69, http://www.ambrosiasw.com/utilities/snapzprox/

Snapz Pro used to be the most popular screen recorder for Macs, but development has practically ceased and it no longer seems to work in OS X. Unless development on it resumes, you should look at the other options here first.

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 I'll 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 record a region of a fixed size equal to Oni's resolution and then precisely position this region over top of Oni's window (you may find OS X's Zoom feature, under the Accessibility preferences, helpful for making a precise selection). By contrast, OBS Studio records the actual OpenGL output which comprises the contents of Oni's window, 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

This is what the final setup should look like before pressing "Start Recording". As Oni plays the Main Menu music, the Desktop Audio meter shows an appropriate level of volume for its input.

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 record it (as seen under "Mac video-only recording" above). You will still have to make sure that your video capture program, if it supports audio input, has Soundflower selected as its source.

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

File:Audio MIDI Setup Multi-Output.jpg
The settings needed for output to both the video-recording app and your headphones.

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

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

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.