SETTINGS
Appearance
Language
About

Settings

Select a category to the left.

Appearance

Theme

Light or dark? Choose how the site looks to you by clicking an image below.

Light Dark AMOLED

Language

Preferred Language

All content on blog.claranguyen.me is originally in UK English. However, if content exists in your preferred language, it will display as that instead. Feel free to choose that below. This will require a page refresh to take effect.

About

"blog.claranguyen.me" details

Domain Name: claranguyen.me
Site Version: 1.0.0
Last Updated: 2020/12/29
Elgato 4K60 S+: A Technical Look
Monday, November 7, 2022

Introduction

Recently, I wanted to record some Nintendo Switch gameplay. Since the built-in 720p recording feature is garbage for anything other than immediate highlights, I figured I'd sink some money into a device that can capture a full 1080p feed and record it.

I looked at some options. A close friend of mine uses an Elgato HD60 S+ to record gameplay and stream it over Discord. So it was an appealing choice after seeing it in action. But I wanted to future-proof myself. So I decided to get the Elgato 4K60 S+. The appeal here is that it can act like the HD60 S+, but can handle 4K HDR. It also is capable of operating on its own via recording to an SD card. This makes it a very convenient choice if you want to record something without having a PC around. Also, I don't have a free PCIe slot for some of the other choices Elgato offers.

This is not a review. It's more of a technical breakdown of the device. I had a lot of questions about such a device. Maybe my Google-fu was off. But I couldn't find some specific information online, and I'm pretty picky about a capture solution. Not just because I am used to an automated "capture-render-upload" procedure for clips, but because I have such a strict sense of what I want. I would love to have my usual lossless video and audio. But I also would like the convenience of recording to an SD card. This kind of a device allows me to treat an SD card like a "footage cartridge" and automate content. So, can it do that?

The Basics

We'll start with the basics. For context, here's the rear side of the capture card:

Rear ports. Left-to-Right: DATA (USB-C), POWER (USB-C), HDMI-IN, HDMI-OUT

I won't assume you know anything about this device. It is a capture "card" that lets you capture video via HDMI-IN. It will pass this through an HDMI-OUT port into a monitor. In other words, it sits in-between your device and your display and can record the input. This is how nearly every capture card works. It comes with all of the necessary cables in the box, and the connectors are golden.

It has 2 modes: PC Recording and Standalone Recording:

That Standalone Recording mode is probably why this product is significantly more expensive than the Elgato 4K60 Pro. Plus it has an onboard HEVC encoding chip, which encodes an h.265 stream into a video container with VBR (Variable Bitrate) as the mode. I'll get more into that in its own dedicated section.

PC Recording (SDR)

The Obvious Stuff

This is the easier of the two modes. So we'll break it down first. To start, you will need the 4K Capture Utility from Elgato's website. You will also need a driver to allow the hardware to communicate. If you are lucky, it should just auto-install. This was not the case for me.

Yes, I have a Pokémon addiction...

When plugged in, the 4K Capture Utility will mirror your input display with around 200ms - 250ms of delay. The audio will also go out this way. If you are streaming this display over to Discord, you can set the audio output to a dead virtual device to mute it for yourself, while your Discord friends can still hear the stream.

The delay makes sense. There is a lot of steps that go into your PC getting that feed:

  1. HDMI-IN captures video feed, split off to HDMI-OUT to the monitor
  2. Encodes via H.264 for SDR, H.265 for HDR
  3. Sends over "DATA" port (USB-C) to PC
  4. Elgato software communicates with the driver, gets Video Feed, decodes the video
  5. Shows in 4K Capture Utility
Seeing those steps taking place, it's actually amazing it is only around a quarter second of a delay. All of the encoding is being done on the device. You can tell because the "Video Encoder" is set to Game Capture 4K60 S+ in settings:

You cannot change the encoder to your GPU unlike the HD60 S+. The encoding is done on the 4K60 S+ no matter if you are using PC Recording or Standalone Recording. The bitrate range will change based on your resolution and display bit-depth. So an HDR10 display will have different bounds. So will a 4K display. If you want more information on maximum bitrate, Elgato states that the maximum via H.264 is 200 mbps, whereas the max for H.265 is 140 mbps. That is megabits per second. The reason the bitrate is lower for H.265 is because "theoretically" only half the bitrate is needed to produce around the same percieved quality compared to H.264. For more information on the bitrates, Elgato has you covered. Impressively, Elgato also dodges double-encoding by dumping the video feed to a file when you record. It doesn't re-encode it.

If you want more information on the interface, Elgato conveniently has a page for it too.

Recording a video: Files

You can specify a folder in the settings. When you record a video, it will be sent to that folder. Each recording is specified a folder. And in that folder will be some files:

Okay, let's break this down. Each recording has an AAF, JSON, and MP4 file associated with it. The video is obviously the most important part. But the other supplemental data will be useful for editing or getting information about the recording in the future.

Details are as follows:

Recording a video: MP4 file details

Video content being stored in the MP4 makes me curious what's going on. So it gets its own section here. Here's an FFmpeg dump of the information stored in the file:

FFmpeg output (stderr)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '自分のすごいゲーム - 自分のすごいキャプチャ.mp4':
  Metadata:
    major_brand     : M4V
    minor_version   : 1
    compatible_brands: M4V M4A mp42isom
    creation_time   : 2022-10-27T14:15:01.000000Z
  Duration: 00:04:05.53, start: 0.000000, bitrate: 42061 kb/s
  Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 41692 kb/s, 60 fps, 60 tbr, 60k tbn (default)
    Metadata:
      creation_time   : 2022-10-27T14:15:01.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : H.264/AVC
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
    Metadata:
      creation_time   : 2022-10-27T14:15:01.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
  Stream #0:2[0x0]: Video: png, rgba(pc), 720x405 [SAR 3779:3779 DAR 16:9], 90k tbr, 90k tbn (attached pic)
There are 3 streams here:
  1. Video - In this case, H.264, yuv420p (tv, aka Limited colour range), 60 fps, 41.6 mbps bitrate. The bitrate seems to match up with the information provided in the JSON file, "bitrateBps": 42755686, which is almost 42.7 mbps. This is overkill for a 1080p video, so it's good.

  2. Audio - AAC (LC). Stereo, 317 kbps. This is the exact same as the HD60 S+. It is at 48,000 Hz, which is proper. It's not lossless, but it's pretty good. Here's a spectrogram of it:


    It's important to note that the spectrogram hits 24k some of the time. All other times, it stops at around 20k. I am not going to start a fight on the Internet about it. I'm an audiophile but I think for the casual person who just wants to get a clip out there, this really is good enough for no one to care about.

  3. Thumbnail - This shows up as the thumbnail in Windows Explorer, as shown in a screenshot above. For a 1080p recording, this is a 720x405 PNG that is simply one of the first frames of the video at a reduced resolution. You can see the differences here:

    Thumbnail (720x405)
    Full version (1920x1080)

The video is good enough to just upload to YouTube if you really wanted to do that. The PC recording option is quite a convenience if you want to create some content and upload it instantly. And if you want to edit it, you are easily able to do that too.

PC Recording (HDR)

The differences

This capture card is capable of capturing HDR10 content. So I figured to test that alongside SDR content. It is pretty similar to SDR when done via PC Recording. So this will be quick. Unfortunately, this card only supports HDR10. That means it doesn't support HDR10+, Dolby Vision, etc. They are out of the question.

I have an HDR10 monitor. That's convenient. That means that I can chuck an HDR10 signal at this card. When you do this, the 4K Capture Utility will accurately reflect that:

The settings menu will adjust accordingly to it:

It makes it pretty clear that it will be using "HEVC", as it states it there. This was not present in SDR mode. Whenever recording, it will not show the HDR mark in the middle, only stating that the source is actually HDR. It's a little misleading. But it's true.

After doing a recording, the following file dump happens in the folder, the same way as before:

It's kind of the same as the SDR recordings. Once again, here's a JSON file dump:

JSON File (hdr.json)
{
	"Capture Software":"4K Capture Utility",
	"Capture Software Version":"1.7.8.4914",
	"Clip Content Type":1,
	"Clip Number":0,
	"Clip Start Time":4737031496,
	"Creation Date":1667082412,
	"Custom Data":"",
	"Encoder":"GC 4K60S+",
	"Encoder Settings":"{\"aspectRatio\":{\"height\":9.0000000000000000,\"width\":16.000000000000000},\"bitrateBps\":44865945,\"cbr\":true,\"colorPrimaries\":2020,\"commandLine\":\"\",\"compression\":2,\"compressionInfo\":\"EGAVVideoCompression { None, H264, HEVC, Auto }\",\"constQpFor4kHevc\":false,\"framerateFps\":30.000000000000000,\"gopLength\":15,\"gopStructure\":1,\"gopStructureInfo\":\"GOPStructure { I, IP, IBP }\",\"horizontalCropping\":0.0000000000000000,\"level\":42,\"maxBitrateBps\":44865945,\"profile\":2,\"profileInfo\":\"EGAVH264Profile { Baseline, Main, High }\",\"qualityPreset\":0,\"qualityPresetInfo\":\"EGAVVideoEncoderPreset{ Fast, Balanced, Best }\",\"size\":{\"height\":2160.0000000000000,\"width\":3840.0000000000000},\"verticalCropping\":0.0000000000000000,\"videoRange\":1}",
	"File Size (bytes)":415160061,
	"Game":"自分のすごいゲーム",
	"Location":"C:\\Users\\idest\\Videos\\4KCapture\\自分のすごいゲーム\\2022-10-29 18-26-52 - 自分のすごいゲーム - 自分のすごいキャプチャ\\自分のすごいゲーム - 自分のすごいキャプチャ.mp4",
	"Metadata Version":5,
	"Original Location":"C:\\Users\\idest\\Videos\\4KCapture\\自分のすごいゲーム\\2022-10-29 18-26-52 - 自分のすごいゲーム - 自分のすごいキャプチャ\\自分のすごいゲーム - 自分のすごいキャプチャ.mp4",
	"Rating":-1,
	"Recording ID":"6EBD485B-A9B8-4B40-ABBB-188FFD0B55D1",
	"Requires Trimming":false,
	"Tags":
	[
		"すごい",
		"ゲーム"
	],
	"Timeshifted part (usec)":0,
	"Title":"自分のすごいキャプチャ",
	"Video Duration (usec)":139533300,
	"Video Frame Rate":30.000000000000000,
	"Video Size":"3840x2160"
}

Some notable changes are things like resolution, obviously. But also the colorPrimaries chanes from bt.709 to bt.2020. This is important because it's how HDR10 is even possible. Also compression is set to 2, which stands for HEVC.

As for the video itself, it comes as an MP4. Expected. But that's just the container. What about the actual info? Here's an FFmpeg dump:

FFmpeg output (stderr)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '自分のすごいゲーム - 自分のすごいキャプチャ.mp4':
  Metadata:
    major_brand     : M4V
    minor_version   : 1
    compatible_brands: M4V M4A mp42isom
    creation_time   : 2022-10-30T03:26:52.000000Z
  Duration: 00:02:19.53, start: 0.000000, bitrate: 23802 kb/s
  Stream #0:0[0x1](eng): Video: hevc (Main 10) (hvc1 / 0x31637668), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23411 kb/s, 30 fps, 30 tbr, 30k tbn (default)
    Metadata:
      creation_time   : 2022-10-30T03:26:52.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : H.265/HEVC
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
    Metadata:
      creation_time   : 2022-10-30T03:26:52.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
  Stream #0:2[0x0]: Video: png, rgba(pc), 720x405 [SAR 3779:3779 DAR 16:9], 90k tbr, 90k tbn (attached pic)

Notable differences are that the video codec now shows as hevc rather than h264. The pix_fmt appears as yuv420p10le(tv, bt2020nc/bt2020/smpte2084). The resolution, obviously, is 3840x2160. This is 4K / 2160p. The audio encoding procedure isn't affected here. It's the exact same as the SDR variant. I don't see why audio would change when the only component that should change is the video.

We can squeeze a little more information out of the file though by loading it into VLC and viewing the codec information. To my surprise, it actually has HDR10 Primaries information! This includes red point, green point, blue point, and white point:

This information is known as the master-display information and is used for helping other devices with different displays "calibrate" colours to accurately show on their device. I actually have a blog post that provides more information on this: "A software 'solution' to recording HDR10 via Dxtory & FFmpeg".

The way I tested outputting HDR was to go to a YouTube video in my archives that I know is HDR to see how it performs. I loaded up some Modern Warfare II Beta gameplay I captured in HDR10. The lighting was accurate. It properly displayed in HDR10 in the 4K Capture Utility video. But other than the video, the rest of the pixels looked very greyed out. This is normal.

In English: Plug in HDR10 signal = It gets it. Video is HDR10. And it actually is HDR10.

Standalone Recording

The Obvious Stuff

The selling point of this product is that it's portable. Whenever you plug in an SD card, the Elgato 4K60 S+ will automatically create a directory structure in a local workspace on it. This workspace is in the root directory as a folder named Elgato. This folder has a specific structure where all of your recordings will go to. The default files it creates can be viewed here: ELGATO_4K60_S_DEFAULT.tar.xz.

For documentation's sake, 1 directory and 2 files are created:

Settings.txt, INI configuration

Let's look at Settings.txt. This file is an INI file with the "txt" extension. Here's a dump of the default file that is put on the SD card for the first time:

INI File (Settings.txt)
# ========================================
# 4K60 S+ - Settings for SD Card Recording
# ========================================

# More info on https://links.elgato.com/l/4k60shelp_hdr_sd_card_recording


# FILE FORMAT
# ----------------------------------------
# ExFAT is the recommended file system for SD cards.
# Recordings will be in an .mp4 format with AAC audio.
#
# FAT32 formatted SD cards must split recordings into 4 gigabyte segments due to file system limitations.
# To allow smooth combination of segments in editing those will be in .mov format with PCM audio.
#
# When EGC_RECORDING_FORMAT_MKV is set =1 recordings saved in the .mkv format.
# Recordings saved in the mp4/mov format will be unrecoverable if the file cannot be finalized in cases where the SD card is removed before the recording is done or power is lost.
# recordings in the mkv format can be used even when the SD card is removed or power is lost before the recording is finalized. Note that not all video editors support .mkv files.

EGC_RECORDING_FORMAT_MKV=0


# ENCODER SELECTION
# ---------------------------------------
# Select between AVC/H264 and HEVC/H265 video encoding.
# H265 achieves the same quality as H264 but with 30% less bitrate on average.
# To record HDR video, leave selection on 0 or enter 2 to force H265 recordings, even with an SDR signal.
#
# 0: automatic - H264 for SDR content, HEVC/H265 for HDR content
# 1: H264 - note that this will disable HDR
# 2: HEVC/H265

EGC_VIDEO_ENCODER=0


# RECORDING BITRATE
# ----------------------------------------
# Set this no higher than your SD card's write speed.
#
# NOTE: KBIT are KILO bit, so EGC_MAX_KBITRATE=140000 is 140Mbit/sec.
# 80Mbit/s is the max for many SD cards (labeled V10 which means 10MByte/s).
# If the label on the SD card says U1 then it likely can do 10MByte/s too.
# More info: https://www.sdcard.org/consumers/choices/speed_class
#
# 4K60 S+ records using variable bit rate. The recording may use a lower bit rate than set in the settings if there is low motion.

# Sets the max bitrate for the given vertical resolutions.
EGC_MAX_KBITRATE_2160=80000
EGC_MAX_KBITRATE_1080=60000
EGC_MAX_KBITRATE_720=40000


# AUDIO INPUT SELECTION
# ----------------------------------------
# Select the audio that will be recorded. Recordings can be made with HDMI audio, analog line-in audio or combining both.
# Recording combined audio records HDMI and line-in to one file. The audio cannot be split at a later time.
#
# 0 = HDMI
# 1 = line in
# 3 = HDMI+line in

EGC_AUDIO_INPUT=3


# LINE-IN VOLUME LEVEL
# ----------------------------------------
# Set the volume level of the line-in. If unsure about incoming audio level, leave at default of 176. Minimum value 0, max value 176.

EGC_AUDIO_VOLUME=176



We'll go through each of these options.

Container Format (MKV, MOV, MP4)

Segment (Settings.txt)
EGC_RECORDING_FORMAT_MKV=0
This option changes the container that holds the video and audio. If set to 1, then the video will be an MKV file regardless of how the SD card is configured. If it's 0, then the file depends on the following:

In terms of video, this setting does not have any effect on video quality. It is just a container. It just holds the video and audio stream. You can easily move a video to another container without losing any quality or re-encoding. If anyone tries to compare quality between an MP4 and an MKV or MOV, they are lying.

The MKV file produced will have the same codec specifications as the MP4 and MOV files would have had. So if you record an MKV file on an SD card formatted as FAT32, you will get lossless audio and split up MKV files into 4 GB chunks. For exFAT, you will get AAC (LC) audio and a single huge MKV file.

I highly recommend this be 1. The common description I hear is that MKV is "corruption-resistant". And this is true. But there's more reasons to keep an MKV over the other formats. The main argument I would make is that it has no codec restriction. You can throw anything into an MKV file and it just takes it. And since it's just a container, you can extract those streams and throw it into a video editor easily. It's an archivist's dream. Meanwhile, without experimental settings, you cannot record lossless audio into an MP4 file. It is restricted in what video and audio stream can go into it.

I'll go more in depth about this whenever I do a more detailed analysis of exFAT and FAT32 formatted SD cards down below. And I will provide an application that I wrote, as well as some command line solutions to make dealing with footage on the SD card easier.

Video Codec

Segment (Settings.txt)
EGC_VIDEO_ENCODER=0
Simple enough. Keeping it at 0 will make the codec depend on the bit-depth of the display the capture card is connected to. In theory, this means: I worded it differently than how the documentation says it. Because, what the documentation doesn't say is that if you connect to an HDR display but play in SDR, it will use H.265 instead of H.264. And the bit-depth of the video will still be 10-bit. Ironically, this actually saves space even if the source is SDR.

Setting this to 1 will force H.264, and no HDR. Setting it to 2 will force H.265. Personally, I recommend 2 as the setting here.

Bitrate Control

Segment (Settings.txt)
EGC_MAX_KBITRATE_2160=80000
EGC_MAX_KBITRATE_1080=60000
EGC_MAX_KBITRATE_720=40000
Recommended theoretical maximum bitrate for videos at a specified vertical height. Specifically, a 720p video, a 1080p video, and 2160p (4K) video's bitrate. Use math. This is Kilobits Per Second. I do not have a recommendation on these settings. I think the defaults are fine.

I max them out with the intention of hitting a point of diminishing return. Then running it through a better encoder to compress it better. It's double-compression, but I trust libx265 more than any real-time encoder.

Unless I read something wrong, you also do not need anything better than a V30 SD card to run on this device. Proof-by-math.

Audio Input

Segment (Settings.txt)
EGC_AUDIO_INPUT=3
The device has an 3.5mm AUX IN at the front. And you can choose what audio will be in the final video file. This is very basic. Should be noted that choosing 3 would mean that the two audio sources are merged together. And they cannot be split. And unlike one very specific scenario, there's no cute tricks around this with standalone recording. However, PC recording does support separation.

Once again, I don't have a universal recommendation on this. I prefer to edit voice in post. So I set this to 0. But that audio jack has a whole variety of uses. Since your mileage may vary, set it as you see fit.

Volume

Segment (Settings.txt)
EGC_AUDIO_VOLUME=176
It's volume. 176 is the maximum. 0 is the minimum.

Capacitive Touch Recording Button

Standalone Recording does not have a GUI. It operates completely on the device. The button used to record is at the very centre of the device. It is capacitive, so you won't get feedback for knowing whether you pressed it or not. Instead, it has 2 lights around it to tell you the status of it.

If the dot in the centre is lit, it is not recording.

If the ring is blinking, it is recording.

If the dot is blinking, the recording is done. But DO NOT eject the SD card. It is finalising the files to the SD card. This should usually take a few seconds.

For more information of the status lights, see Elgato's page on it.

SD Card Recording (exFAT)

As the documentation states, recording to a card formatted as exFAT will record a video in an MP4 file with lossy AAC (LC) audio. This is true, as the FFmpeg dump of some test footage reveals:

FFmpeg output (stderr)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '4K60_S+_002_001.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf58.12.100
  Duration: 00:01:16.50, start: 0.000000, bitrate: 60090 kb/s
  Stream #0:0[0x1](und): Video: hevc (Main 10) (hvc1 / 0x31637668), yuv420p10le(tv), 1920x1080 [SAR 1:1 DAR 16:9], 59948 kb/s, 60 fps, 60 tbr, 60k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
If the settings force an MKV file instead, that MKV file will have a video of equal quality. Same for audio. The codecs will be the exact same.

Interestingly, it also marks the language of both streams as und (Undefined) rather than the default eng. This was recorded with the default 60000 as specified bitrate. And the bitrate of this video is very close to it, being at 59948 kb/s.

The audio is actually a huge problem. Unlike the PC recording where the AAC (LC) bitrate was at 317 kb/s, it's at 160 kb/s here. Here's a spectrogram of it:

There's more to audio quality than just looking at the spectrogram though. And unfortunately the losses here are around the same as a 128 kb/s MP3 file. That's pretty trash, and it's one you would actually notice. Again, I am not here to start a fight on the Internet about audio quality. If this is fine to you, take it. I am just documenting what the card does. What bothers me is that this isn't configurable.

The videos are stored in /Elgato/Videos. They are named in the following way:

File listing
4K60_S+_001_001.mp4
4K60_S+_002_001.mp4
4K60_S+_003_001.mp4

There are two sets of 3-digit numbers. The first set indicates the boot count. So if you unplug and replug the 4K60 S+ back in, this number will increment by 1. You can think of this like a "session" ID if you do all recordings on a single power cycle. When the device boots, it will traverse files to find the next unused count and use it. So if you had a session of files with 4K60_S+_013_* and then delete them, the device will just choose that number again and record to it.

The second set indicates the recording count. The first video will be 001. The second video will be 002, and so on.

SD Card Recording (FAT32)

Recording to a card formatted as FAT32 will record a video as a MOV file with lossless PCM audio. Once again, here is an FFmpeg dump of some test footage:

FFmpeg output (stderr)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '4K60_S+_001_001.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    encoder         : Lavf58.12.100
  Duration: 00:05:57.90, start: 0.000000, bitrate: 51410 kb/s
  Stream #0:0[0x1](eng): Video: hevc (Main 10) (hvc1 / 0x31637668), yuv420p10le(tv), 1920x1080 [SAR 1:1 DAR 16:9], 49866 kb/s, 60 fps, 60 tbr, 60k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : FFMP
  Stream #0:1[0x2](eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Let's not worry about the video track. If you want information on that, it's the same as exFAT's handling of it. But let's take a look at the audio. It's lossless 16-bit 48khz. Here's a spectrogram:

Again, there's more to audio quality than a spectrogram. But you can't beat perfect. Game assets are probably compressed too. This would explain some cutoffs at around 20khz. But there's no compression on Elgato's side, as it is just doing a direct copy of the audio that it gets, completely unprocessed. The benefit of this is that you have the source audio and can choose how to compress it in post. More flexibility is always nice.

The videos are stored in /Elgato/Videos. They are named in the following way:

File listing
4K60_S+_001_001.mov
4K60_S+_002_001.mov
4K60_S+_002_001-002.mov
4K60_S+_002_001-003.mov
4K60_S+_002_001-004.mov
4K60_S+_003_001.mov

There are two/three sets of 3-digit numbers. The first set indicates the boot count. So if you unplug and replug the 4K60 S+ back in, this number will increment by 1. You can think of this like a "session" ID if you do all recordings on a single power cycle. When the device boots, it will traverse files to find the next unused count and use it. So if you had a session of files with 4K60_S+_013_* and then delete them, the device will just choose that number again and record to it.

The second set indicates the recording count. The first video will be 001. The second video will be 002, and so on.

The third set indicates the segment count. FAT32 has an internal restriction of 4 GB per file. Thus, if you record a long video, Elgato will split the video into several files of 4 GB each. The first video will not have a segment counter. The second video will have a -002 in its name to indicate that it's a continuation. Every part after that will do the same. In the file listing example above, you can see that 4K60_S+_002_001.mov is split into 4 parts. Sometimes, you will see an a at the end of the filename. This indicates failure on the device, and it dumped whatever remaining video feed into this file. Usually, it is not a perfectly cut segment.

You can throw these into a video editor and line them up fairly easily. But if you want to merge all of them without any loss of quality as an MKV file, this can be done via concatentation in FFmpeg:

Bash Commands
STEM="4K60_S+_014_001"; ls -1tr "$STEM"* | sed "s/^/file '/;s/$/'/" > "__concat.txt"; ffmpeg -f concat -safe 0 -i "__concat.txt" -map 0 -c:v copy -c:a flac -compression_level 12 ~/Desktop/"${STEM}.MKV"; rm "__concat.txt"

Copy and paste. Change the value of STEM to be the video you want to merge into a single file.

Are you a video editor? You might want an MP4 then. No worries, this will create 2 files: A combined MP4, as well as a WAV file that you can import into After Effects or Vegas:

Bash Commands
STEM="4K60_S+_014_001"; ls -1tr "$STEM"* | sed "s/^/file '/;s/$/'/" > "__concat.txt"; ffmpeg -f concat -safe 0 -i "__concat.txt" -map 0:v -c:v copy ~/Desktop/"${STEM}.MP4" -map 0:a -c:a copy ~/Desktop/"${STEM}.WAV"; rm "__concat.txt"

Both of these commands have zero loss in quality and are very fast. They run at thousands of FPS. So getting footage off of the card is easy.

CN_4K60S+, a recording manager

I set my SD card to FAT32 because I'm an archivist who wants lossless audio. Since my friend bought the 4K60 S+ too and we do Dual POV videos, I figured I would make a GUI solution for dealing with footage that doesn't require touching the command line. My treat.

That led to me writing CN_4K60S+, an open-source manager of files on an SD card that came from an Elgato 4K60 S+. It sits just one level above FFmpeg and will give you a way to combine files from the SD card, without any compression, and in any format you could possibly need. Here's some screenshots:

It's meant to be simple. All you need to do is specify where ffmpeg.exe is on your computer and it will do everything. I try to make software accomodate everyone. So if someone wanted no loss in quality, it's there. If someone wanted it to render the video automatically like a video editor would have, it does it for you. So you don't need a video editor if all you need is merging or compressing the video down.

It's idiot-proof. Or at least I think it is.

FFmpeg Support

To my surprise, if I wanted options for this card, I can force it with my favourite tool, FFmpeg. I won't exactly go in depth with it, but I will tell you what you can do with it. I think just showing what it can do will open the door to many people who want to have an alternative way to use the card with software they may like.

Appearing as a valid dshow device

On Windows, if you want to record from the 4K60 S+ via FFmpeg, you can via dshow. It will show up as a listed device if you run the following command:

Bash Commands
ffmpeg -list_devices true -f dshow -i dummy

Then it will give you a video and an audio device specifically for the 4K60 S+:

Partial FFmpeg Output (stderr)
[dshow @ 0000023f7c7a1100] "Game Capture 4K60 S+" (video)
[dshow @ 0000023f7c7a1100]   Alternative name "@device_pnp_\\?\usb#vid_0fd9&pid_0075#2210804084928050#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{6f814be9-9af6-43cf-9249-c03401000224}"
[dshow @ 0000023f7c7a1100] "Game Capture 4K60 S+ Audio" (audio)
[dshow @ 0000023f7c7a1100]   Alternative name "@device_pnp_\\?\usb#vid_0fd9&pid_0075#2210704084928050#{33d9a762-90c8-11d0-bd43-00a0c911ce86}\{6f814be9-9af6-43cf-9249-c03401000324}"

Thus, you may access the device for recording via:

Bash Commands
ffmpeg -f dshow -i video="Game Capture 4K60 S+":audio="Game Capture 4K60 S+ Audio"

And this will allow you to access the device as input 0.

Specifications and Recording

For a 1920x1080 input in 8bpc (non-HDR), the input formats are listed as:

FFmpeg Output (stderr)
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, dshow, from 'video=Game Capture 4K60 S+:audio=Game Capture 4K60 S+ Audio':
  Duration: N/A, start: 423943.013866, bitrate: N/A
  Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 60 fps, 60 tbr, 10000k tbn
  Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s

Well... if you wanted another way to access that uncompressed audio stream without having to have a FAT32-formatted SD card, there you go. Since you are getting the raw stream, you can export and compress it in any way you like. Lossless or lossy. You have full control over your audio.

The video stream is an h264 copy which has already been compressed before being sent over the USB-C cable. In other words, there is no raw video input from this card. You also can't do a -c:v copy on this and expect the video output to show properly. You must encode the video. To prevent a second generation of loss of quality, you can use a lossless codec like utvideo. There is no way around this. And there is no way to tap into the HEVC chip that is onboard the 4K60 S+ either. That chip is solely for SD card recording. The HD60 S+ and the HD60 X do support a lossless video feed over USB-C. So I thought this was an unusual choice for a card worth $400.

Despite the restrictions, this may be the best choice for some people. When my friend was having stuttering issues with 4K Capture Utility, I wrote up a few bash scripts to record on demand via FFmpeg. It served as a wonderful backup to what he was doing, and even allowed him to go back in and edit the stuttering out in post.

The other obvious benefit here is that you can record to whatever codec and container you want. MKV container with utvideo video and FLAC audio? Done. MP4 container with h.264 via libx264 and AAC audio? With a WAV copy for editing? Done. AVI? Done. If it's a codec and a container FFmpeg can deal with, you can use it. And that's a huge win.

Issues and Complaints

I said this wasn't a review but I definitely have some things to say here.

Occasionally restarts even while recording...

One thing that I noticed is that the device will restart itself occasonally, even while I am recording. At first, I thought this was due to power delivery. The capture card is light enough on power that you could technically power it with your Nintendo Switch dock's USB ports. So I thought maybe it was powering down due to that. Unfortunately, that wasn't the issue. Even using the charger in the box and plugging the device into an output, it will just randomly power down and restart itself. I have no idea why it does this.

After reading a bit online, it seems hit or miss. My friend who had the HD60 S+ purchased the 4K60 S+ after I got mine. He reports no issues with it at all. But some people online report my issue. I don't know what it is, but it's something I'll have to look into or return the product. I would like to figure out what is causing it first. I thought it only happens in PC Recording mode. Then it happened in Standalone mode, and I lost some footage.

My hunch is cables. I am using all of the cables that come in the box. So if I swap it out, maybe I'll have better luck. It's hard to test reliably because I could be streaming on Discord for several hours before it does it. But it can also do it after just 10 minutes of streaming.

Colourspace/Detail is lost

I was playing some Pokémon Legends: Arceus and noticed that the colourspace isn't what it says it is in the final video. Here's what I mean:

Nintendo Switch Elgato 4K60 S+

Doesn't it look a little... brighter and duller? Unfortunately it can't be argued this is accurate either because there is actual loss of colour detail. Then again, it might be because of how I recorded. When dealing with colourspaces, it's easy to get them confused and have loss of detail. For example, here's Pokémon: Let's Go, Eevee! where, other than the resolution, they are basically identical colour-wise:

Nintendo Switch Elgato 4K60 S+

It's a nitpick, if anything. It's barely a difference. But it bothered me enough to mention it.

Give more options

I literally wrote software and formatted my SD card to FAT32 to circumvent that this card doesn't give me lossless audio otherwise. Elgato, you guys clearly have the hardware to do it. Give more options for Standalone Mode. I wouldn't ask for much. Just a lossless audio option, or an audio bitrate value specifier. And also MKV, MP4, and MOV support multiple audio tracks. This can really help editors in post because they won't have to manually align voice tracks with gameplay. Your PC Recording Mode supports this. So why not allow Standalone from doing it too?

Settings occasionally reset in Standalone Mode

Sometimes whenever you slot in an SD card, the 4K60 S+ fails to recognise the card format or read the configuration file. This is a problem for obvious reasons. But in case I need to spell it out,

I've had to scrap a few recordings just because of these issues. And the thing that sucks the most is that there is no way to tell if it failed until after the recording job is done. Look, I get it. At least I didn't lose my clip. But if I specify I want one thing, it should actually work and give me what I configured. What is the point in giving us the option for something if we can't use it half the time? These are the basics.

Closing remarks

Like I said, this isn't a review. I just wanted to put out information on the Internet that I couldn't find myself without buying the thing. In most cases, the Elgato website is helpful in documenting what the product can or can't do. I hope this post was helpful to at least someone though.




Clara Nguyễn
Hi! I am a Vietnamese/Italian mix with a Master's Degree in Computer Science from UTK. I have been programming since I was 6 and love to write apps and tools to make people's lives easier. I also love to do photography and media production. Nice to meet you!


Blog Links
Post Archive
Affiliates/Cool People
Nigoli's Blog
Raas's Blog