Pages

Monday, December 5, 2016

Recording Gameplay While Streaming With VMix

Introduction

When speedrunning it's a good idea to create a recording of your raw gameplay, unfortunately this can be a bit challenging if you're also trying to livestream at the same time.

The basics are that you'll need to have a program recording the raw feed from the capture card, and then you use OBS or XSplit to either capture the preview window of your recording software, or receive a live passthrough from the recording software.
I've tried a lot of different things for this in the past, Media Player Classic, VirtualDub and AmarecTV can all work for this task to varying degrees, but each one has given me some kind of issue.

MPC doesn't like to record at all for me. VirtualDub worked fine with my old capture card but it doesn't like my current one. In addition it's a pain to set up properly. AmarecTV has been regarded as the golden standard for a long time, but for me it has always had stability issues both with and without the live passthrough it offers. In addition it has some issues based on Windows localization settings that not many people are aware of (I may write a short guide about this in the future).

VMix

That brings me to the software that I currently use, and the subject of this guide, VMix. VMix is apiece of software that's designed for handling video sources for the purpose of live broadcasts. Their main market is high-budget productions, but they offer low-price and free versions of their software as well. For any retro console, the free version does everything we need it to do, as it allows video sources up to 576p. Anything up to and including 1080p will only set you back 60$, which I think is not a bad price for a one-time purchase. If you need 720p or 1080p video and don't have the funds, AmarecTV is the best you can do. I suggest checking out TheThrillness' guides on the subject.

Getting Started

You can download the latest version of VMix Software on this page. After installing and launching, VMix will prompt you to select a language, and then it will ask you to register:


If you're recording retro consoles, just go for the free version. Otherwise you can sign up for the free 60 day trial, just to try it and see if it's worth your money.

Next you'll be prompted to select a starting configuration:


These settings can be changed later on, but for NTSC consoles/games select 480p, and for PAL select 576p.

Settings

Once you're in the main window, click the button that reads 'Settings' in the top right. You will end up on the 'Display' settings. Here you can change the resolution and frame rate that we selected before. Make sure these are the same as the resolution and frame rate you are capturing at. For retro NTSC consoles this is generally 720x480 29.97p, and for PAL it is 720x576 25p.

The first important menu is the 'Performance' menu. You may need to select 'Show Advanced Settings' in order for all of these settings to show up.


The most important setting here is 'Application Priority', which you should set to 'High'. This will prevent the live passthrough from stuttering under high CPU load. 'Output Format' should be set to the format of your capture, which should usually be YUY2. Most of the other settings only affect the VMix preview, which we don't really care about.

Next is the 'External Output / NDI' menu:


Make sure that the 'Frame Rate' and 'Output Size' are the same as the ones you selected in the 'Display' settings, then select the checkbox at 'Recording / External / Output'

Finally in the 'Shortcuts' menu you can add some keyboard shortcuts if you so desire.

Capture Card

Now you need to add your capture card as an input. Click the 'Add Input' button in the bottom left of the main window, then in the window that pops up, select 'Camera' in the menu on the left.


Select your capture card in the 'Camera' dropdown, and then configure the rest of the settings. Notice that my frame rate here isn't the same as the one we have been using so far. This is because my capture card does not support 29.97fps capture over component. If your capture card supports it, make sure the resolution and frame rate are the same as before! In a situation like mine, every frame is simply getting capture twice by my capture device, VMix handles this correctly and simply omits every other frame.

Your capture card should now show up as a source, and in the preview on the right. Clicking on the source will also make it show up in the source preview on the left.


Recording

Lastly the recording needs to be configured. click the gear next to the 'Record' button at the bottom of the main window, to go to the recording settings.


These are the settings that I use for recording Super Mario Sunshine. A timestamp will be added by default to the filename, you can configure this in the main Settings under the 'Recording' tab. H264 is notable for it's low CPU usage and small file sizes. If you have the room and want to record at lossless quality, click AVI in the left menu, and use something like Lagarith or MagicYUV.

Now that VMix is configured, you'll want to save this preset using the 'Save' button at the top of the main window. You'll need to open the preset every time you start VMix (It will appear in the dropdown under the 'Open' button).

You can now start recording footage by pressing the 'Record' button, or any hotkeys that you've configured for this task. In order to get the game feed into OBS now, click the 'External' button at the bottom so that it turns red, as shown:


OBS

In OBS (Or XSplit) you can now add the game feed just like any other capture card. Simply add a 'Video Capture Device', and select 'VMix Video' from the 'Device' dropdown.


You can then add your filters like cropping, deinterlacing and such just like you normally would, and you should be all set!

If you have any remarks/questions about this guide, leave a comment here, or send me a message on Twitter or Discord.