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
Though the Archwiki page VLC has some suggestions on segmentation fault, it indicates it as a microcode problem. That's something happens as missing VLC interface. I can play audio file with VLC, after trying the solution I think it's not the microcode problem.
Some reports says it's a bug, that older 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
When checking 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. It could be essential if you have these GPUs. After installing these two (my laptop uses both intel and Nvidia to display) drivers, my problem finally solved.