Introduction
I've experimented with quite a few capture cards recently. Whether it be my
own or through the help of my friend
antsrokket, I've
written scripts to bypass software from Elgato and capture data from the
capture cards directly in the highest possible quality. Every card except
for Elgato's 4K60 S+ allow for at least nearly lossless capture of video
and audio if the 4K Capture Utility is completely bypassed. This requires
applications such as FFmpeg, which can communicate with the card directly
through dshow
.
Nerd talk aside, the reason I bring this up is because I've always had a problem with these capture cards. They never were able to record multi-channel. They were always stereo. At DERPG, all PC gameplay is recorded in 5.1ch at minimum. MW (2019) and on is recorded at 7.1.4.4. The Nintendo Switch supports LPCM 5.1ch audio. So why not record gameplay in that format? It's because the capture cards don't support it for some reason. Even my Elgato 4K60 Pro MK.2 doesn't support it.
So let's take a deep dive into its competing card, the AVerMedia Live Gamer 4K, otherwise known as the GC573. This card claims to allow for 5.1ch/7.1ch passthrough. But of course, we will need to take a deep dive to see what it really supports. I haven't been able to find much information about this on Google. So let's get into it.
The Basics: RECentral
We might as well look into what consumers get stock with the capture card first. Like Elgato's 4K Capture Utility, AVerMedia has their own software to aid in streaming and recording gameplay off of the capture card. Their version is the AVerMedia RECentral. It looks like this:

The software is pretty intuitive. Just hit the "REC" button and it will
record a video to your Videos
directory.
RECentral does support surround sound!... Kinda
At the bottom left, next to "Recording Quality", you can click the "pencil" icon to edit settings for the current recording profile. This opens up a menu that gives you more control over your video file.

And just like that, there it is. The audio (ch) option allows for control of whether or not to record 2 channels or 5.1 channels of audio. So yes, RECentral does support surround sound recording. The option is quite literally right there. But there's a few catches, as usual.
- You are limited to only 2 (stereo) or 6 (5.1ch) channels. There is no option for 8 channels (7.1ch), 7 channels (6.1ch) or anything else.
- When you record in surround, the LFE (Low-Frequency Effects) channel has a low-pass filter applied to it so only the bass signals are passed through. Normally this isn't an issue, but if you want unaltered audio, or if the layout is 6 channels but not 5.1, you will suffer from data loss.
- That bitrate of 1152 kbps is concerning...
- Why does it include my microphone by default?
A test recording here shall demonstrate what I mean. Here's a test recording captured via RECentral:
Seems fine to me. Let's analyse it though.
Analysis of RECentral's surround recording
This video file has a 5.1ch AAC-LC audio track. Though the audio sounds a little distorted. In fact, I could tell the quality was degraded with my own ears. So that bitrate is just too low. Unfortunately 1152 kbps is the highest it can go.
Let's get a spectrogram analysis of what is going on.

As a reminder, the channel order is FL, FR, FC, LFE, SL, SR. Notice how the noise doesn't go up to the top for each channel. It's being cut off. This is a limitation set by the bitrate in AAC-LC. Also, it appears there is some extra noise in the FL+FR tracks toward the end despite the Nintendo Switch not outputting any audio. This is it mixing in the microphone despite no clear indication in the software of me telling it to do that.
At least it can record surround though. So for those who don't care about the highest possible quality and just want something that works, this definitely does... for 5.1ch. The moment you want 6.1ch or 7.1ch, you are shit out of luck via RECentral.
Oh yeah, and if you wanted the FFmpeg output for this file, here you go:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '2025012518444870.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
creation_time : 2025-01-25T23:44:50.000000Z
Duration: 00:00:13.57, start: 0.000000, bitrate: 2232 kb/s
Stream #0:0[0x1](und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], 2107 kb/s, 60 fps, 60 tbr, 60k tbn (default)
Metadata:
creation_time : 2025-01-25T23:44:50.000000Z
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : HEVC Coding
Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 128 kb/s (default)
Metadata:
creation_time : 2025-01-25T23:44:50.000000Z
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Its offering is identical to Elgato's, except with more audio channels.
Digging into the hardware with FFmpeg
Alright. Now we dig a bit further into the card. Enter FFmpeg to save the day. Rather than relying on the first-party software, we can utilise FFmpeg to completely take over the card and use it to its full potential. We get control over video codec, audio codec, whether to record losslessly, whether to use the CPU or GPU, etc. But what I want to know is whether we can access the 8 channel recorder on the card unrestricted.
Unlike usual devices, this one shows up as a singular
dshow
device that has both audio capabilities separated into
"pins".
UNIX> ffmpeg -hide_banner -f dshow -list_devices true -i dummy
[dshow @ 0000017f0a5d2e80] "AVerMedia HD Capture GC573 1" (audio, video)
[dshow @ 0000017f0a5d2e80] Alternative name "@device_pnp_\\?\pci#ven_1461&dev_0054&subsys_57301461&rev_00#0000000101000a3500#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{adef4cb5-1401-4177-84ee-fe8b26c13a5b}"
This means the device isn't shown in mmsys.cpl
and can't
be echo'd out to speakers without the use of FFplay or RECentral. That
is very different from the Elgato 4K60 Pro MK.2, which does appear as
two separate devices.
Anyway, Pin 0 is for video. Pins 1 and 2 are for audio. We can get information about the pins via the following command:
$ ffmpeg -hide_banner -f dshow -list_options true -i audio="AVerMedia HD Capture GC573 1"
[dshow @ 0000012d84932e40] DirectShow audio only device options (from video devices)
[dshow @ 0000012d84932e40] Pin "キャプチャ" (alternative pin name "0")
[dshow @ 0000012d84932e40] Pin "Audio Mixer" (alternative pin name "1")
[dshow @ 0000012d84932e40] ch= 2, bits=16, rate= 48000
[dshow @ 0000012d84932e40] ch= 2, bits=16, rate= 44100
[dshow @ 0000012d84932e40] ch= 2, bits=16, rate= 32000
[dshow @ 0000012d84932e40] Pin "Audio" (alternative pin name "2")
[dshow @ 0000012d84932e40] ch= 8, bits=16, rate= 48000
[dshow @ 0000012d84932e40] ch= 8, bits=16, rate= 44100
[dshow @ 0000012d84932e40] ch= 8, bits=16, rate= 32000
[dshow @ 0000012d84932e40] ch= 2, bits=16, rate= 48000
[dshow @ 0000012d84932e40] ch= 2, bits=16, rate= 44100
[dshow @ 0000012d84932e40] ch= 2, bits=16, rate= 32000
Pin 2 allows for 8 channel audio recording support at 48kHz, which is exactly what we need for 7.1ch.
Losslessly recording with FFmpeg
To record a lossless video from the GC573 with 7.1ch support, you will need
to access the pins directly via -video_pin_name 0
and
-audio_pin_name 2
. FFmpeg will then choose the highest
possible configuration it can. In this case, it will select the 8 channel
output at 48 kHz, which is exactly what we want.
As such, the final command to record losslessly from the capture card is:
ffmpeg \
-hide_banner \
-rtbufsize 2G \
-f dshow -framerate 60 \
-video_pin_name 0 -audio_pin_name 2 \
-i video="AVerMedia HD Capture GC573 1":audio="AVerMedia HD Capture GC573 1" \
-map 0 \
-c:v libx264rgb \
-crf 0 \
-preset ultrafast \
-c:a flac \
-metadata DEVICE="AVerMedia Live Gamer 4K" \
-metadata:s:v:0 title="Game Video [AVerMedia Live Gamer 4K]" \
-metadata:s:a:0 title="Game Audio [AVerMedia Live Gamer 4K]" \
-metadata DATE_RECORDED="$(date +%s.%N)" \
"FILE.mkv"
If you want a sample video from this, here you go. The video might show incorrect colours as it's a raw stream. But we aren't here for the video. We are here for the audio. If you want to see the clip from up above with lossless audio from FFmpeg, here's the spectrogram analysis of 6 (out of 8) channels from the audio test:

Notice that it goes all the way up to the top per channel, including channel 4, which is the LFE channel. This is indeed a lossless capture without any processing, straight off of the card.
Here is the FFmpeg output for the file:
Input #0, matroska,webm, from '20250125_185002.733331200.mkv':
Metadata:
DATE_RECORDED : 2025-01-25T18:50:02.733331200-05:00
DEVICE : AVerMedia Live Gamer 4K
ENCODER : Lavf61.5.101
Duration: 00:00:11.87, start: 0.000000, bitrate: 9302 kb/s
Stream #0:0: Video: h264 (High 4:4:4 Predictive), gbrp(pc, gbr/unknown/unknown, progressive), 1920x1080, 60 fps, 60 tbr, 1k tbn
Metadata:
title : Game Video [AVerMedia Live Gamer 4K]
ENCODER : Lavc61.11.100 libx264rgb
DURATION : 00:00:11.867000000
Stream #0:1: Audio: flac, 48000 Hz, 7.1, s16
Metadata:
title : Game Audio [AVerMedia Live Gamer 4K]
ENCODER : Lavc61.11.100 flac
DURATION : 00:00:11.850000000
Losslessly recording with FFmpeg (with Microphone)
Remember how the recording up above also had my microphone mixed in? We can one-up that with FFmpeg. Get the name of your microphone device via:
UNIX> ffmpeg -hide_banner -f dshow -list_devices true -i dummy
[dshow @ 000002b7bc292e80] "EOS Webcam Utility" (video)
[dshow @ 000002b7bc292e80] "AVerMedia HD Capture GC573 1" (audio, video)
[dshow @ 000002b7bc292e80] "screen-capture-recorder" (video)
[dshow @ 000002b7bc292e80] "OBS Virtual Camera" (video)
[dshow @ 000002b7bc292e80] "Dxtory Video 1" (video)
[dshow @ 000002b7bc292e80] "Dxtory Video 2" (video)
[dshow @ 000002b7bc292e80] "Dxtory Video 3" (video)
[dshow @ 000002b7bc292e80] "Dxtory Video 4" (video)
[dshow @ 000002b7bc292e80] "EOS Webcam Utility Pro" (video)
[dshow @ 000002b7bc292e80] "Elgato Screen Link" (none)
[dshow @ 000002b7bc292e80] "マイク (2- HyperX QuadCast S)" (audio)
[dshow @ 000002b7bc292e80] "virtual-audio-capturer" (audio)
[dshow @ 000002b7bc292e80] "Game VC IN (Virtual Audio Cable)" (audio)
[dshow @ 000002b7bc292e80] "Discord VC IN (Virtual Audio Cable)" (audio)
[dshow @ 000002b7bc292e80] "16 Channel System IN (Virtual Audio Cable)" (audio)
My microphone is the マイク (2- HyperX QuadCast S)
. So let's
stitch together an FFmpeg command that will record both the GC573 and the
microphone in sync.
ffmpeg \
-hide_banner \
-rtbufsize 2G \
-f dshow -framerate 60 \
-video_pin_name 0 -audio_pin_name 2 \
-i video="AVerMedia HD Capture GC573 1":audio="AVerMedia HD Capture GC573 1" \
-f dshow -sample_rate 48000 \
-i audio="マイク (2- HyperX QuadCast S)" \
-map 0 \
-map 1 \
-c:v libx264rgb \
-crf 0 \
-preset ultrafast \
-c:a flac \
-metadata DEVICE="AVerMedia Live Gamer 4K" \
-metadata:s:v:0 title="Game Video [AVerMedia Live Gamer 4K]" \
-metadata:s:a:0 title="Game Audio [AVerMedia Live Gamer 4K]" \
-metadata:s:a:1 title="Voice - Clara Nguyen [HyperX QuadCast S]" \
-metadata DATE_RECORDED="$(date +%s.%N)" \
"FILE.mkv"
The benefit of this is that the final file will have the tracks separated. So you can go in post and edit your voice track before mixing it into the game's audio, allowing for maximum flexibility. This is a content creator's dream. You can even add in more devices if you like. But you must be careful of the epoch timer. I wrote a whole blog post on this. You can see it here: Multitrack recording with FFmpeg (Windows).
Ideally, the best solution would be to put the video in its own MKV file, and record the audio separately as an MKA. Then have it process delays automatically via the methods mentioned in the aforementioned blog post.
Conclusion
I'll admit, I wasn't expecting this to work as smoothly as it did. But yeah there's a capture card out there capable of capturing multi-channel audio that doesn't cost over $1000. I couldn't believe it until I saw it for myself. And it's consumer-grade too. Why don't more cards have this option? Apparently the GC575 took this support out. Why? Give content creators more flexibility with creating their content. This card, as it stands, is the most flexible one I have so far.
I'll be keeping my Elgato 4K60 Pro MK.2 on standby in case I need to capture 2 HDMI sources at once. But for content that is coming up on DERPG, expect more surround sound videos. I will always go above and beyond in my content.