Hello everyone, I have a Banana Pi M5 and I want it to play videos on a big screen. Everything seems to be working, but I inspect that videos are tearing, i.e. they are played without vertical synchronization.
Now let me introduce my environment:
- Installed OS: Debian 10 Buster Lite
- VLC is installed via APT.
- Either it’s launched in terminal, thus using the Framebuffer vout, either it’s launched in minimal X enviroment (
xorg
, launching viastartx
command) with--vout=x11
parameter. The result is the same.
Like this videos are played somewhat well, in 60FPS, but as said before without VSync and thus teared, which is unacceptable for a big screen.
What I’ve tried to do:
- Compiling VLC myself with some hardware acceleration options. Didn’t succeed as there’s no well documentation how to do it (the only thing I could find are those old articles for Raspberry Pi as this one, but they won’t really work for Banana).
- Messing up with VLC launch options to see if it could enable VSync. It didn’t.
- Understanding which video driver is used and trying to reinstall it. After running
glxinfo
I’ve understood that there’s something wrong with the video driver itself, as I’ve obtained this string:OpenGL renderer string: llvmpipe (LLVM 7.0, 128 bits)
. It’sllvmpipe
, which is a software accelerated interface for OpenGL, maybe that’s why I can’t use any kind of hardware acceleration. I’ve been looking for how to reinstall it to make it recognize asMali G31 MP2
(which is our actual GPU on Banana Pi M5), but found nothing. - Using MPV instead of VLC. I’ve tried to launch it with different vout modes, such as
xv, x11, vdpau, gpu, sdl, vaapi, libmpv
. Onlyx11
andsdl
worked.gpu
is told to be the best vout mode which uses all the GPU power, and is the default one, but it just doesn’t work in here. Instead, if launching MPV with no parameters,sdl
mode is used which is too slow (like 5FPS or less). Interestingly, VLC works the same way, if not specifying vout mode upon starting in X mode, video is played at 5FPS (if launching in terminal it uses the framebuffer mode which is the same asx11
). Andx11
is something I’ve already seen in VLC, 60FPS and no VSync.
Well, after these failures I would like it if someone explained me what’s a problem here and how do I fix it. Have a good day!