VLC player is well-designed and powerful, and I prefer this type of software designing. (Although UNIX's politically correct answer is Keep It Simple, Stupid, In the multimedia region I prefer a powerful and what-you-see-is-what-you-get interface, just the same design of those old cassette recorder.)
VLC is preinstalled with KDE, or some basic structures. I couldn't play video, but audio is OK since then.
Everytime I tried to play a video, e.g. MP4 with VLC, the interface just flashed and nothing displayed.
using journalctl I got
kernel: vlc: segfault at 168 ip 00007fb96213e11c sp 00007fb920207320 error 4 in libva.so.2.600.0[7fb96212d000+13000]
and I tried vlc -vvv to show the verbose messages, I got
Although the Archwiki page VLC have some suggestions on segmentation fault, but it indicated it as a microcode problem. That's something happens as no vlc interface shall display. I can play audio file with VLC, and after trying the method I think it's not the microcode problem.
Some reports says it's a bug as VLC uses strlen() on a null pointer, but they were posted years ago and I believe it's not my problem. My VLC is fully updated.
libva error: Display drivers
Then checking the socalled vaapi and libva error, I found it might be a problem with NVIDIA GPU. Some articles point out that Intel uses vaapi and Nvidia uses vaapu. After updated nvidia, libva, the problem still happens.
Checking VLC's optional dependencies, I found
libva-vdpau-driver: vdpau backend nvidia libva-intel-driver: video backend intel
not installed, but it seems not optional but as a must. After installing these two (my laptop uses both intel and Nvidia to display. ) drivers, my problem finally solved.