Show HN: TermiVision.A lock-free C++ terminal video player using Braille SSAA

github.com

2 points by razvan23 a month ago

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 a month ago

This is Cinema.

what's involved in transcoding a video to this custom codec?

  • razvan23 a month ago

    There 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 a month ago

      Very 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?