Linux Screen Recording Black Screen? Here’s the Wayland Fix

The Bug: A Recording That’s Just… Black

I was building a Linux version of Screen Capture — the free screen recorder I’d already shipped for Mac — and the first real test on a Linux machine gave me a video file that opened fine, played fine, and showed absolutely nothing. Just black, start to finish. Audio was there. The window I was trying to record wasn’t.

No error, no crash, no obvious clue. Just a black rectangle where my desktop should have been. That’s a specific kind of frustrating — the tool thinks it worked.

Diagnosing It: Ruled Out at the System Level

My test machine runs Wayland (Ubuntu 26.04, GNOME/Mutter), and the app’s video backend tries the modern, Wayland-native capture path first: PipeWire, via the desktop’s screen-cast portal. That’s the sanctioned way to record a Wayland session — you get a real permission prompt, and it’s what OBS Studio, Firefox, and Chrome all use for screen sharing on Wayland today. It’s supposed to just work.

On this machine, it didn’t. PipeWire capture came back black — and to make sure it wasn’t something dumb in my own code, I tested OBS Studio’s native PipeWire source on the same machine. Same result: solid black. That ruled out the app entirely. Whatever was wrong was below the application layer.

The actual root cause: my GPU is a GTX 1080 — Pascal generation, from 2016 — which is permanently capped at NVIDIA’s 580.xx “Legacy” driver branch. That branch’s DMA-BUF/GPU-buffer-sharing handoff with Mutter has a real bug. The compositor and PipeWire negotiate a buffer, but what actually lands in it is nothing.

This isn’t Wayland refusing to hand over the screen. PipeWire is the sanctioned, working path — it just hit a real bug in an old GPU’s driver branch, several layers below where the app or Wayland itself has any control.

Worth being honest about the outlook here too: NVIDIA’s Legacy branch gets security and critical bug fixes, not new DMA-BUF/buffer-sharing development — and Pascal is thoroughly aged out of their active branch. So this isn’t really a “wait for Wayland” problem. It’s a “wait for NVIDIA to backport a fix to a driver branch they’ve functionally stopped extending” problem, which in practice means it’s unlikely to ever get fixed on this hardware. That’s exactly why the app can’t just assume PipeWire will work — it has to check.

The Real Fix: Try PipeWire First, Validate It, Fall Back When It’s Broken

The app’s backend selection doesn’t just attempt PipeWire and hope. It attempts PipeWire, then actually checks whether real frame content came back — not just whether the pipeline opened without erroring, which is exactly the kind of false-positive that would have shipped a “working” recorder that silently produces black video on hardware like mine.

  • If PipeWire delivers real captured content, the app uses it. That’s most people — AMD and Intel graphics, and NVIDIA hardware on a current driver branch, should get Wayland-native capture with zero manual steps.
  • If PipeWire’s output validates as black or empty, the app falls back to FFmpeg’s x11grab instead — which needs a genuine X11/Xorg session to read from.

One trap worth naming here, because it’s an easy wrong turn once you’re in fallback territory: XWayland being installed does not mean you have a real X11 session. XWayland lets old X11 applications run as individual windows inside Wayland — it doesn’t hand x11grab a copy of the whole desktop. You can have XWayland fully installed and running and x11grab still has nothing usable to capture. I made this assumption myself early on, and it’s wrong.

Getting the X11 Fallback Working, When You Need It

If the app falls back to x11grab — or you just want to check ahead of time — this is how to confirm which session you’re actually running:

echo $XDG_SESSION_TYPE

If that prints wayland and the app has told you PipeWire capture isn’t producing real content, here’s what’s actually confirmed to fix it. Some systems show a “Ubuntu on Xorg” or “GNOME on Xorg” option behind the gear icon on the login screen — worth trying first, it’s the lightest possible fix. On my machine it wasn’t reliably there, so:

  1. Install Xfce: sudo apt install xubuntu-desktop
  2. If asked which display manager to keep as default, keep gdm3.
  3. Reboot.
  4. On the login screen, click the gear icon and choose Xfce as the session.
  5. Log back in and re-check echo $XDG_SESSION_TYPE — it should now say x11.

Once that says x11, x11grab has a genuine desktop to read from, and the app’s own “Detect Capture Method” button will confirm it’s working.


The Extra Step: I Built an App That Figures This Out For You

Diagnosing a DMA-BUF handoff bug in a legacy NVIDIA driver branch isn’t something I want to hand anyone as “here’s how you record your screen on Linux.” So I built the actual app — a GTK4 interface driving FFmpeg 9 underneath, recording your screen and your microphone and the computer’s sound together into one file, same as the Mac version already did.

A few decisions that came directly out of everything above:

  • It tries PipeWire first, automatically — the correct, modern, Wayland-native path that most users on healthy hardware should get with zero manual steps.
  • It doesn’t trust that PipeWire “opened successfully” — it validates that real frame content came back before committing to that backend, so a driver-level bug like mine doesn’t silently ship a black recording.
  • If validation fails, it falls back to x11grab automatically, and a built-in “Detect Capture Method” button tells you right in the window which path is actually active — no terminal commands required to find out.
  • Everything is bundled into the download — FFmpeg 9, the GTK4 runtime, GStreamer, PulseAudio/PipeWire client libraries — because Linux distros vary too much to assume any of that is already installed. No package manager, no root password, no install script.
  • It’s a ~305 MB download because of that bundling. Extract and run: tar -xzf LinuxScreenRecorder_*.tar.gz, then ./run.sh.
  • Marked Beta, on purpose — it’s newer and less tested than the Mac version, and I’d rather say that upfront than have someone find out the hard way.

Here it is actually recording, on a real Linux machine, x11grab and all:

If your Linux recording comes out black, it’s worth knowing it’s probably not your fault, and it’s probably not even Wayland’s fault — it’s most likely one specific layer, your GPU driver’s buffer handoff, having a bad day. The app checks for that automatically now, so you don’t have to go find it yourself.

In the future should I get a different graphics card, I will try the Pipewire method again, cheers!

Posted in Uncategorized | Comments Off on Linux Screen Recording Black Screen? Here’s the Wayland Fix

Emilcin 1978, UFO, The Visit, or on the Threshold of the Mystery // Restored with English Subtitles

So there is this great UFO story out of Poland, it’s kind of famous also, but people seem to only think UFO sighting happen in America, no where else, how American and typical – just saying!

So anyways, I wanted this story to be better known, so I used a video toolbox I developed ffmpeg commander to first translate the movie into English with Burned Subtitles and this worked pretty well, but then

I was thinking, and this was about a Beer in and no more than 2 Beers out / I was thinking since this video was old probably 8mm source, so not Even VHS, that I could improve the old video first and then translate it.

So that’s what I did, I developed VHS Fix, a new and additional tool that is now added to my program toolbox and you can read about the features if you are interested here – https://ffmpegcommander.com/guides/vhs-fix-restore-old-video.html

below are a few screen shots so you can get a genera idea of the location where it happened, and there is even a monument to this event.

It happened on May 10th, 1978

With that said, the whole research taught me a lot about how video restoration even works, in the end I was pretty successful and the tool does a lot of what I wanted.

In addition to that there is a great web site that give a lot more details, turn on your language translation for this one because it is in Polish only…

https://sztukapubliczna.pl/pl/pomnik-ufo-andrzej-fogtt/czytaj/28

Who designed it: Polish painter Andrzej Fogtt conceived the monument and made the first model. It was unveiled 15 October 2005, funded by Fundacja Nautilus.

Why a cube: Fogtt’s black cube is a direct reference to Stanley Kubrick’s 2001: A Space Odyssey — specifically the famous scene with the mysterious black monolith. The Polish art source states it plainly: “Czarna kostka na postumencie nawiązująca do słynnej sceny z filmu” (“The black cube on the pedestal referencing the famous scene from the film”). The cube stands for mystery and the cosmic unknown — borrowing cinema’s most iconic image of “something alien and unexplained has arrived.”

One honest nuance: in the actual film the artifact is a tall rectangular slab (the “monolith”), not a cube. Fogtt took that idea — the enigmatic black object that shouldn’t be there — and rendered it as a cube balanced improbably on one corner, which is why it reads as gravity-defying and otherworldly.

The whole monument is a stylized figure, too: the sources note the design reads as a simplified alien — the tapered granite base with its inclined “head,” topped by the cube. So it’s part homage to Kubrick, part abstract alien.

The Final Video you can see here –

Posted in video editing | Comments Off on Emilcin 1978, UFO, The Visit, or on the Threshold of the Mystery // Restored with English Subtitles

I love Immich!! Free Up Your Phone space, Keep Your Privacy: Backing Up My Digital Life at Home

Every photo and video on your phone is worth something to someone, just maybe not to you. Whoever is backing up your photos to the cloud is running your face through recognition models, scanning your location history, and training AI on your family’s memories, quietly, in the background, while you pay them every month for the privilege. I got tired of that arrangement a while back, which is part of why I already run a home server. Now that same server backs up every photo and video from my phone too, and I own the whole thing.

Hopefully I didn’t scare you! Read On!

The app doing the work is called Immich, and it’s free and open source. Think of it as your own private Google Photos, except it runs on hardware you own instead of a server farm you’ll never see. I run it on my TrueNAS box, the same machine that already handles Plex for my movies and music, so it slotted right into a setup I was already running.

The App Just Runs in the Background

Immich has a mobile app for both iPhone and Android, and once you install it and point it at your own server, it quietly backs up every new photo and video as you take them. I’m running an iPhone 17 Pro, and it grabs everything, including the big video files that eat up storage the fastest. It works the same way on older iPhones and on Android too. You set it up once and forget about it.

The Real Reason I Started Caring About This: Storage

Here’s the part that actually got me to set this up. Video eats phone storage faster than almost anything else, and if you shoot much of it, you know that “iPhone storage full” message always shows up right when you need to take something important. Once Immich has backed a photo or video up to my own server, I can delete it off the phone and get that space back, and I still have the original, full quality, sitting safely at home. No more choosing between deleting memories or paying for more cloud storage every month/year.

It’s Not Just Storage, It’s Actually Smart About It

Immich runs its own AI locally to organize everything, and it holds up well against what the big cloud photo services do, just without your data leaving your house to make it happen. Search “beach” and it finds your beach photos. Search a person’s name and it groups their face across years of photos automatically. Searcha cat, there a cat!, LOL

There’s a map view that plots where every photo was taken, so you can scroll back through a trip just by browsing the map. All of that runs on my own hardware. No subscription, no cloud processing, no company on the other end learning anything about my and your life, f them is what I say and you should be also thinking this, if you are not, you are a fool!

Worth Setting Up

If you already have a home server running for something else, adding Immich is a weekend project at most. If you don’t, it’s still worth considering, because the alternative is paying a subscription forever for something that’s quietly mining your family photos in the background, your kids, your wife, your pets, did I scare you yet ? LOL

I don’t know about you, but I’d rather own my own memories outright, and now my phone’s storage stays free for whatever I actually want to shoot next. Give it a try.

Posted in self-hosting | Tagged , , , , , , , , , , , | Comments Off on I love Immich!! Free Up Your Phone space, Keep Your Privacy: Backing Up My Digital Life at Home

Setting Up Remote Access to My and Your Home Music Library (And Everything That Tripped Me Up Along the Way) – Free Music Streaming!

NOT CLICKBAIT! 🙂

Complimentary Video below – also read the whole Blog, lots of details you will need…

I used to have Tidal / and honestly it is not a bad service and the price is also acceptable to pay in my opinion, so this is not to shit on them, but an alternative. I have a lot of CDs and Vinyl, I love to collect physical media as long as I like the music.

And I have purchased also a lot of Hi-Res files music as well, but I wanted to host it my self. For a while I did that exactly, my local streamer picked it up nicely and it was great, but once I cancelled my Tidal subscription to save money – I was missing the play anywhere ability, in my car or on my bike ride, anywhere really…

I remember seeing a youtube video that said the PLEX Amp music app can play remotely too, and frankly I guess since I was using Tidal – I didn’t think to invest too much time into setting that up – but as a life long geek I wanted to try that, so this is that story.

Since all my music is CD quality or better, it really is Hi-Res local streaming.

I have two servers actually:

1- a QNAP Linux NAS Server that does all my local movies/music – not setup to the outside World.

2- and another Dell Server setup with TrueNAS (so Linux too), granted this setup is a bit different and the interface as well… so this is the machine I setup another Plex server and here is where it was setup to do the remote access to my App that is installed on my iPhone. From here I can cast the music to anywhere, my Car’s stereo or headphones or bluetooth speaker on my bike rides…

I figured it would be a quick weekend project. It ended up being a real lesson in home networking, but everything works now, and I tested it properly, streaming music over Bluetooth on a bike ride with zero dropouts. Here’s what actually happened, step by step, in case it saves someone else some time.

By the way, it took about an hour to do from nothing to a fully working Personal streaming service!

Step 1: Get your media folder connected to Plex

If your music or movies live on a different device than the one running Plex, you need to connect the two. In my case, my music sits on a separate NAS, and Plex runs on a different machine entirely as explained, the QNAP NAS.

The cleanest way to do this is over your home network using NFS, a protocol that lets one device mount another device’s folder as if it were local. Most NAS devices have this built in, you just need to turn it on and tell it which folder to share and who’s allowed to access it.

And in my CASE this made the most sense because I only have to maintain the music files in one place, so again to clarify for my setup:

QNAP NAS Server (has the movies/music) connected over NFS —-> to the TrueNAS Server… so the TrueNAS has no media files on it at all, it is just connected over the NFS Protocol and points to the QNAP server that does, hopefully this makes sense.

Another thing to note, that it is connected as Read only, so no one can change anything and mess with it… or delete it…

Step 2: Create a new library in Plex for the new content

Once Plex can actually see the folder (this took me some trial and error, more on that below), creating the library itself is simple: give it a name, pick the content type (Music, in my case), and point it at the folder – again in my Case it is setup for NFS, but you probably will just point to the folder where your media files for music actually are, so load them up on your server first.

Step 3: Let Plex scan and build your library

This part just takes patience. Plex reads through everything, matches album art, artist info, and metadata. Depending on how much you have, this can take a while in the background. Mine had a few thousand albums, so I just let it run.

Step 4: Turn on Remote Access

This is the setting that actually lets you reach your server from outside your house. It’s in Plex’s settings under Remote Access, and it’s normally a single toggle plus signing into your Plex account.

The tricky part is what happens after you flip that switch, which is where most people (myself included) get stuck.

Step 5: Open the right door on your router (maybe two doors)

For a device outside your home to reach your Plex server, your router needs to know to forward incoming traffic to the right device. This is called port forwarding, and Plex specifically needs port 32400 opened up.

This is the setup on the first Door, the internet ISP Modem, this basically points to the internal WiFi router for additional routing…

This is the setup on the Inside WiFi Router or the 2nd Door after the Comcast modem.

Now your router model/make might be different, but the principal is the same, don’t matter.

Here’s the part that surprised me: if you have an ISP-provided modem/router (like a Comcast gateway) AND a separate WiFi router connected to it, you actually have two layers of network between the internet and your Plex server. That means you may need to set up port forwarding twice, once on each device, or put your ISP’s gateway into “bridge mode” so it stops doing its own routing and just hands everything off to your own router.

What to expect (the hiccups, honestly)

A few things went wrong before this worked, and I think they’re worth mentioning because they’re common, not unusual:

  • Permissions on the NAS side. Just because a folder is shared over your network doesn’t mean every protocol has permission to touch it. My NAS had NFS access turned off for that specific folder even though the folder itself existed. Worth checking both that the folder exists AND that it’s actually allowed to be accessed the way you’re trying to access it.
  • Two things can’t live in the same spot. I initially tried to mount my new music folder inside the same folder my movies were already using, and it silently didn’t show up. Turned out to be a conflict between two things trying to occupy the same space. Giving the new content its own separate spot fixed it right away.
  • Auto-detection isn’t always right. Plex tries to automatically figure out your network setup, and with two routers in the chain, it got confused and reported things as broken when they weren’t. There’s a manual override option for exactly this situation, worth knowing it exists before you assume something’s actually wrong.

None of these were hard to fix once I knew what was actually happening. They just took some digging to find.

Conclusion

The whole thing took an evening longer than I expected, but now I have my entire music collection, along with movies, streaming to my phone anywhere I have a signal. No third-party subscription, no monthly fee, just my own hardware doing exactly what I want it to do.

If you’re thinking about doing this yourself: it’s genuinely doable without being a network engineer, but go in expecting at least one unexpected snag, especially if you have more than one router at home. Check your permissions, give new content its own space, and don’t fully trust auto-detection if you’ve got a more complicated setup like mine.

Posted in Audiophile | Tagged , , , , , | Comments Off on Setting Up Remote Access to My and Your Home Music Library (And Everything That Tripped Me Up Along the Way) – Free Music Streaming!

a Free “Screen Recorder” for Mac (apple silicone) machines…

I am now a registered Apple Developer – and both my free “screen records App” and the paid “FFmpeg Commander Video Toolbox” are now signed and notarized by Apple.

check out the free app at – https://ffmpegcommander.com/screen-recorder.html

Posted in video editing | Comments Off on a Free “Screen Recorder” for Mac (apple silicone) machines…