3 ms·
Show HN: TermiVision.A lock-free C++ terminal video player using Braille SSAA
Hi HN, I built this because I wanted to see how far I could push C++ optimization inside a terminal environment without relying on X11/Wayland dependencies.
Under the hood, it uses std::async for parallel row rendering and a custom Box Filter area-averaging algorithm for SSAA to keep the Braille characters distinct and avoid temporal noise.
I'd love to hear your feedback or suggestions on the implementation!
- smalltorch 7mo agoThis is Cinema. what's involved in transcoding a video to this custom codec?
- razvan23 7mo agoThere isn't actually any custom video transcoding or preprocessing involved at all! It plays standard format videos (like stock .mp4, .mkv, or .webm) natively, completely on the fly. It spins up a background thread using libmpv which decodes the standard video file and hands me raw RGB frames in memory. The custom engine then takes those frames and heavily downsamples them using a Box Filter. Then it maps each 2x4 "pixel" block into its exact corresponding UTF-8 Braille character representation.
- smalltorch 7mo agoVery cool. What does the example in your repo look like regularly? Would give a good representation as a side by side. On average, How much data per second would the stream be?