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
Development
Programming, Tools, Software, and more.
Multitrack recording with FFmpeg (Windows)
Sunday, December 15, 2024

To start, I'm quite pissed off. Sometimes I just want to record some audio from multiple devices in sync, losslessly. There's quite a few purposes for this. In my case it's gameplay with microphones and Discord audio all separate but in sync. Back then, software like Dxtory had the functionality to record multiple audio tracks in perfect sync. But it requires a game open, and it doesn't work with modern games. In fact, it struggles with Windows 11. There are other solutions, like OBS. But, again these include a video track. What if I just want the audio in perfect sync?

GeForce Experience provides minor multitrack support. But it does it with AAC and only allows one additional track. Its options are very limited, to the point I complain about it in "Grind Series: Quantity without compromising Quality". Audacity was called a "Multitrack recorder" at one point. But ironically to the name, it doesn't support recording from multiple sources in sync either. But what powers it definitely can: FFmpeg. So let's take a dive into how to record multiple audio tracks on Windows in perfect sync.

Continue Reading

Showing keyboard inputs with a video
Sunday, April 28, 2024

I had something in mind for my library of gameplay footage, at least in the past few years. Why not give users the option to visually see inputs? Not only am I curious about my own inputs sometimes (especially in a rhythm game or FPS), but it could also be quite satisfying to see keys light up alongside the video. It's something extra. But it's cool.

It does have some practical use though. When I was teaching online due to COVID, I did something like this to help students see what I was doing in VIM and TMUX. Here's what I mean:

Continue Reading

Directly Booting MWIII without MWII (Steam)
Tuesday, November 7, 2023

I'll be brief on this post. MWIII requires a prior launch of MWII to run. Since these games are coded specifically to not run via clicking their EXE files, a few extra steps are taken to force execution. I'll provide two ways: an automated batch file, and a manual way if you don't trust me. 😉

This is for the Steam version of the game. And it relies on a steam.exe to boot up the game in the end. Given this blog post was written before the final release of the game came out, I may have to edit it to account for multiplayer layer on.

Continue Reading

Elgato 4K60 S+: A Technical Look
Monday, November 7, 2022

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.

Continue Reading

Action Replay DS (Part 3): Breakdown with working hardware
Saturday, August 6, 2022

Well, I didn't really intend on this being 3 parts, but here we are. So if you haven't read the previous parts, you probably should. Here are some links:

  • Part 1 - White Screen Brick Recovery
  • Part 2 - Firmware Flashing

Following Part 2, I went from having a frozen white screen "brick" of an Action Replay DS cartridge to having a working cartridge, just like how things were in 2007. I now have full access to working hardware. And I am able to flash any kind of firmware I want onto a physical ARDS cartridge utilising a trick with CFW. So I think it's now time to go and finish off the remaining research on how the thing works.

In Part 1, a lot of the recovery steps taken were based on guesses and looking at bytes in a hex editor. While I'm sure a lot of that research and guessing was correct (as I was able to recover all of my old codes), it would be nice to simplify it all down and organise it. Documentation, I guess. So, where do we start?

Continue Reading

Action Replay DS (Part 2): Firmware Flashing
Sunday, July 10, 2022

Following Part 1, I felt like the research done was sufficient. And it really was. I was able to recover the data from my Action Replay DS by dumping the cartridge and taking a look at what's inside. I even wrote programs to aid in extracting the data. So what's next?

I just feel like we can do better than that. It didn't sit well with me that I was restricted by a means of not being able to test this with hardware, because I was missing some pieces of the puzzle. But I want this story to have a proper ending, so it's time to fix that cartridge and get it working again. Once it's working, testing it and getting accurate data for documentation and archival purposes sounds like a great next step. Also, I would like to figure out what actually went wrong with my cartridge which started this series of blog posts. So, let's jump in.

Continue Reading

Action Replay DS (Part 1): White Screen Brick Recovery
Monday, June 20, 2022

In 2007, I got a hold of an Action Replay DS cartridge. As a kid, I used it not only to cheat, but to experiment and play around with games I had physical copies of. Don't worry. I didn't cheat online. Aside from them wiping out my saves, it was a pretty fun time. The way the cartridge worked was cool. It had an additional NDS cartridge slot on top. You would put your game in there. Apply the cheats in the interface that boots up, and then boot the game. The cheats will be applied and you can play the game normally.

Unfortunately, a few years after owning one, I managed to make that cartridge unusable. I have no idea how it actually happened. When I boot it, I am presented with a white screen and nothing else. On top of that, I don't have the cable that would let me connect the cartridge to my PC. So I am kind of out of luck, right? Well, not really. Let's look into it.

Just a disclaimer, this blog post was typed progressively. I type as I figure out more things. So it won't just be a "this is this" and "that is that". So it might come across as disorganised. My apologies. But I do think it might be useful to some people to see how I come to some of the conclusions I do. And you see the journey I went across. It's a fun challenge to me. So know what you're getting into by reading this. My goals are to figure out how to salvage whatever data I could off the cartridge, and then figure out why the Action Replay DS froze in the first place.

Continue Reading

Grind Series: Quantity without compromising Quality
Monday, August 30, 2021

I like to grind in games. Part of how I play games is that I like to record all gameplay to preserve it in its entirety. That mentality has posed some technical challenges over time that tested hard drive capacity, video codec tuning, and more. That Dark Aether camo in Call of Duty: Black Ops Cold War looks pretty good. But it will take days of gameplay. That's a huge quantity of footage which would normally take a huge amount of time to run through x265. Time for another media project?

Sure. I'm up for the challenge.

Like always, I'm setting up a checklist of things I want for the final video to meet. Here's the specifications I want:

Continue Reading

SpyHunter Playthrough (Production Procedure)
Saturday, June 19, 2021

SpyHunter is a great example of a reboot done correctly. The 1983 arcade classic got a reboot on the PS2 and other platforms in 2001 and it looked well ahead of its time. One thing that caught my eye earlier this year was that the reboot also featured a Japanese release, which hasn't been dumped. On top of that, I wanted to play this again in stunning 4K. So, time for another media project?

First, I had to get a dump of the Japanese Release. I found a used copy on eBay for $15. So I had that delivered and I dumped the disc myself via dd (Unix utility). After testing on PCSX2, it works just as well as the USA release. After that, I cranked the internal resolution up to 3840x2160 and went to work.

Continue Reading

Audio Recovery via Waveform Inversion and FFmpeg
Thursday, January 14, 2021

I wrote a post before regarding how I archive Zoom lecture recordings, whether I am teaching or someone else is. However, post-recording, those files sit in the vault unedited. It took a few months, but I discovered an issue with the audio in them. Funny. The times that I don't check audio prior to recording are the times it always goes wrong. It's Sod's law. With the audio messed up, and no chance to re-record, is recovery possible?

Let's analyse the situation. They are MKV files with a single video stream encoded via h264_nvenc. Ok, nothing wrong there. There's 3 audio streams saved as lossless FLAC. Here's the ffmpeg stderr output (yes, it goes to stderr) for one of the files:

Continue Reading

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!
Social
You can find me on these platforms!
Blog Links
Post Archive
Affiliates/Cool People
Nigoli's Blog
Raas's Blog