Getting Ol Mama Squirrel to Actually Work for Your Project

I spent about three weeks wrestling with Ol Mama Squirrel last fall when I was trying to batch-process a dataset of 40,000 audio clips for a client project. The documentation makes it sound straightforward, but the reality is messier. The tool works in theory, but it has some quirks that aren't mentioned in the readme. The core issue is how Ol Mama Squirrel handles concurrent thread allocation. By default, it allocates resources based on your CPU core count, but the documentation doesn't explain that this assumption breaks down on AMD Ryzen chips with hybrid architectures. I ran into this because the first job I submitted stalled at 47% across the board and just hung there for hours. After checking the process manager, I noticed it was binding every worker thread to performance cores exclusively, leaving the efficiency cores completely idle. The fix was setting the environment variable AFFINITY_MASK to auto before launching the process, which forced the scheduler to distribute work across both core types. Once I did that, processing time dropped from roughly eight hours down to about two.

How Ol Mama Squirrel Fits Into a Typical Workflow

Most people I see struggling with this tool are coming from either FFmpeg or AWS Elemental, and they're expecting the same interface behavior. It doesn't give you that. The configuration file is JSON-based, but it uses a custom schema that isn't backwards-compatible with standard FFmpeg argument passing. You can pipe input through stdin, but the encoding pipeline then ignores any bitrate overrides you include in the command line. I learned that the hard way when a client asked for constant bitrate output and I spent forty minutes debugging what turned out to be a non-functional CLI flag. The real power of Ol Mama Squirrel is in its segment caching layer, which most users skip entirely. The default behavior re-downloads and re-validates source files on every run. If you're working with a large asset library and running recurring jobs, enabling the disk cache by adding a cache_dir directive to your config reduces total job time by roughly 60% on repeat runs. The catch is that cache invalidation is manual. There's no TTL system, so stale data lingers until you delete the cache directory or bump the schema version number. I keep a separate staging environment where I test config changes before pushing them to production, and I clear the cache between major version jumps to avoid corruption issues. Another thing that trips people up is the output validation step. Ol Mama Squirrel produces a manifest file after each batch, but the manifest only logs successful encodes unless you enable verbose diagnostics. I had a situation where a client reported missing files, and the job log showed everything as green. The problem was that the output path contained a symlink that resolved correctly during the initial scan but not at write time. Enabling path_verification in the config flags these mismatches upfront instead of silently skipping them.

The download is available on the official project page, which hosts builds for Linux, macOS, and Windows. The Linux package is a static binary that works out of the box on most distributions without additional dependencies. The macOS build requires Homebrew and a few optional libraries if you want hardware-accelerated encoding enabled. Windows users will need to install the Visual C++ redistributable separately, since the installer doesn't bundle it. I always recommend checking the checksum after downloading because I've seen mirrors serve outdated binaries that skip security patches. The biggest limitation of Ol Mama Squirrel is that it doesn't handle streaming input well. It expects file-based sources, and while there is a pipe mode, it buffers the entire stream before processing begins. If you're trying to transcode a live RTMP feed, you're better off using a tool like OBS combined with FFmpeg for the heavy lifting and only using Ol Mama Squirrel for the post-processing and batch consolidation step. I tried to make it work for a live workflow once and ended up with 30-second latency spikes and dropped frames. Sticking it to its actual use case — batch offline encoding — saves you a lot of headaches. If you're just getting started, I'd suggest running a small test batch with five to ten files before committing to a full workflow. Pay attention to the timing output in the log, compare it against your expected throughput, and verify the output manifests match your source file count. That alone will catch most configuration errors before they become production problems.

Get the Full Details

Ol' Mama Squirrel by David Ezra Stein (ebook)
Ol' Mama Squirrel by David Ezra Stein (ebook)