this is pretty fun. Seems like it's in the same vein as the libraries that let you convert video to ascii to play in terminal. No real-world use but they're a nice display of skill and definitely make you smile.
I wanted to know how well this compared to ffmpeg | base64 (or base{emoji}), but actually I can't make anything that sounds as good in as small a filesize.
The FMT version is 2379 bytes of shell.
Opus bottoms-out at 6000bps (even when you ask for something smaller like 4000bps):
That makes a 1322 byte file, or 1788 after base64, much smaller than FMT, even after you add the necessary base64|ffplay shell wrapping. But it sounds significantly worse than FMT (and ffmpeg had clipped off the last few audio frames).
EDIT: AMR-NB (1999) can drop to 4750bps, and Codec2 (2011) can drop to 450bps, but my copy of ffmpeg doesn't support encoding into either format.
11 comments
[ 2.3 ms ] story [ 39.0 ms ] threadThe FMT version is 2379 bytes of shell.
Opus bottoms-out at 6000bps (even when you ask for something smaller like 4000bps):
That makes a 3638 byte file. It sounds a lot better than the FMT version, but it's 1.5x the size and still non-printable.Speex can apparently go as low as 2000bps:
That makes a 1322 byte file, or 1788 after base64, much smaller than FMT, even after you add the necessary base64|ffplay shell wrapping. But it sounds significantly worse than FMT (and ffmpeg had clipped off the last few audio frames).EDIT: AMR-NB (1999) can drop to 4750bps, and Codec2 (2011) can drop to 450bps, but my copy of ffmpeg doesn't support encoding into either format.
If, however, I clone it from GitHub and build it without looking at the source, it's good to go.