VLC should be able to play on framebuffer. using --vo fb but i couldn't make it work.
Another alternative that works well is mpv. setting the --vo option.
mpv --vo drm myvideo.mp4
you can check which ones you have with mpv --vo
help.
for example
Available video outputs:
libmpv render API for libmpv
gpu Shader-based GPU Renderer
sdl SDL 2.0 Renderer
null Null video output
image Write video frames to image files
tct true-color terminals
caca libcaca
drm Direct Rendering Manager (software scaling)
caca will run on a framebuffer terminal using ascii characters.
tct will run on a fb terminal using ascii as well.
if the terminal is running inside x11 i noticed it does look better using tct and doesnt use ascii.
and drm will use the framebuffer in direct rendering. which has a lot more colors and actual pixels.