Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
ASCII Video Player (pessimistress.github.io)
99 points by de_nied on Nov 11, 2021 | hide | past | favorite | 38 comments



> -vo=caca

Ironically, the video output called "caca" comes from "libcaca", "a graphics library that outputs text instead of pixels". The irony comes from "caca" meaning "poop" in Spanish, so the video output is named "poop", which seems fitting.


AFAIK this is totally intentional. The lib is done by French people, and in French, 'caca' also means 'poop' :-)


> in French ... also

In all the dialects: it's greek for "evil, bad". From the IE root for "twisted".

Given the original core concept of "strongly bent", its meaning as "morally twisted", its connotation of "repulsive" and its use as a pejorative (prefixed), the nursery reference collected a good deal of the above - the physical description, the moral metaphor, the reaction, the qualification.


ascii art library : AAlib ⇔ libcaca : library for color ascii art

This is the official mascot: http://caca.zoy.org/static/libcaca-logo.png

  This is our most famous software:
  libcaca, the industry-standard colour ASCII-art library
http://caca.zoy.org/wiki/libcaca


This requires building with libcaca. There's also tct, which is surprisingly high fidelity (but not ASCII).

  mpv --quiet -vo=tct 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'


> VO: [caca] 1920x1080 bgr24

the irony of fetching HD to downsample to ascii :)


I wondered what video you picked...I shouldn't have.


There can be only one.


You haven't been here long enough that the XcQ gives it away, huh :P


Been around long enough, but I guess managed to dodge it mostly (or usually see links that go through some intermediary?) and not really mind, to be honest :)


I always recognize it based on "dQw". Interesting that you look at the ending


Huh, yeah... I figure I don't have to scan for the = that way (not that I ever really consciously decided that).


Cool!

YMMV, but for me setting the font slider to a considerably smaller value than the default gave a more visually impressive result.

The controls will apparently self-hide after a few moments with no mouse activity, if you want to get a screenshot of something.


Basically AAlib [1].

I remember it was mind-blowing being able to launch quake inside your terminal, but that was over 20 years ago. The tech is basically scaling the image down to the size of the terminal and using LUT to get a character from pixel's luminosity. The hardest part of this particular demo is, in fact, rendering font in WebGL. Rest is rather trivial and while interesting and pretty I don't really think it deserves first page on HN.

[1] https://en.wikipedia.org/wiki/AAlib


Too lazy to go add video but wrote a post processing pass to do this here

https://greggman.github.io/doodles/textme08.html

You can choose various different subsets of unicode (glyphs), you can also choose "DOS colors" (debug) and change the text size etc..

It's just post processing a 3D scene but it would be trivial to change it to video

A different kind of video effect is to use the video has a height map. Works best with certain kinds of videos

https://greggman.github.io/doodles/3d-grid-video.html?url=vi... (warning: has sound)


I think it might be better with one of the old character sets that had multiple blocks per pixel. That would increase the resolution and they could use Floyd-Steinberg dithering or similar to get grayscale. OTOH that wouldn't be ASCII.


What does this do that mplayer with ascii-out doesn't?


Couldn't get it to work on Safari. Just a blank screen, but audio works.


Reminds me of this music video https://www.youtube.com/watch?v=QC25gRwbpsg


Is there a canonical way to find the source to these types of github links? The broken link to durian.blender.org doesn't show anything, and the user page https://github.com/Pessimistress doesn't have any obvious ascii-art or video projects. Neither does the home page linked from github. And bundle.js is just obfuscated.

It looks like libcaca, but I would have to recompile mpv to see how similar it is.


Yeah, the URL scheme is as follows:

- https://pessimistress.github.io/ascii/

- User: pessimistress

- Repository: ascii

But in this case, https://github.com/pessimistress/ascii seems to be private, so seems source is not published at all. Seems sourcemaps is defined in the JS file, but points to a non-existing file, so can't help you either. Left is to use something like http://jsnice.org/ to "de-uglify" it and try to guess what it is doing.


What are the benefits I'm curious... it seems obvious less data? In that case when would this be a good thing to use... maybe generic DIY/how to's on not so difficult concepts. It's really cool, has decent color too. Probably do the same with large pixels/blurred video?

I still think about that "world knowledge compressed to disc" or something like 10GB Wikipedia. Video's not good compared to text for space saving but yeah.


Would be surprised if anyone could come up with legitimate benefits. To me this is just a fun coding challenge



Watching videos on the command line? Watching videos in vim?


If you actually intend to do that for whatever reason, sixel is a far more usable alternative (if your terminal can actually process the frames in real time, that is).


I would love to have it as a browser extension for various personal reasons but sometimes I do fancy the good old arcane time Something like this --> https://andrei.codes/ascii-camera/



It's weird hearing the audio so clear while video is ASCII. What would be the audio equivalent of ASCII video?


QuickTime used to have an ascii output, like 20 years ago!


You use the framebuffer/kms if you don't want X.




apparently safari doesn't support webgl2


so cool!


Nothing is happening? There is a dropdown to select a video source and font, and a white blank page? (Safari 15.1, macOS Monterey)


Same here. MacOS, Safari.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: