I use shotcut in Manjaro/Archlinux but the video is quite slow without proxy in the player, so is there any configuration to properly enable vaapi for preview in shotcut.
I have a Lenovo Thinkpad P14s gen5 ryzen 7 with amd 780m igpu which is able to display 4k video @60 fps without any lag in VLC or MPV when VA-API is correctly configured. I’d like to reproduce the same thing in shotcut.
At the moment, a 15-second rush is unreadable!
I tried to activate some hardware improvements by checking :
Project => GPU effects
Detecting hardware encoding. But it doesn’t have much to do with encoding. I’d like to be sure to activate vaapi in the decoding: reading the video file.
Could someone help me enable this hardware decoding without creating proxies.
I dont think you can preview 4k60 smoothly in shotcut as you do in vlc/mpv because that would not allow you to add any effects on it as any edit would require the video to be passed between the gpu and cpu’s memory for every frame.
But for derush it is usefull without effect.
With ffmpeg you could pass decode then encode and pipe to ffplay so it could be possible. Preview is definitively not efficient in Shotcut or there are some improvements … Do I have to look at MLT or Shotcut for that ?
I assume Shotcut, but have no idea, this is just what I remember from a previous post on the forum. Maybe a dev will point you in the right direction but if it was easy I’m sure they’d have implemented it already.
Read from this part of the FAQ. It is not as simple as a setting in Shotcut. It means you need to change the code if you want it, but also you need to figure out the changes yourself.
“Not my problem” as well ! I can change it … I just look for some hints, but if you don’t want to give some pointers where to look … welcome to contributions !
Here is where the code in MLT downloads images from a hwaccel surface to an image in CPU RAM (no setting in Shotcut to turn that on):
Here is where images are transferred between CPU RAM and OpenGL textures for the image processing pipeline (“GPU Effects” in Shotcut):
Here is where images are uploaded from system RAM to OpenGL textures for the preview display in Shotcut on Linux.
Windows uses Direct 3D 11 for the display in Shotcut, and macOS uses Metal. Any contribution needs to at least not break those.
Transferring full uncompressed 4K60 video (your properties) between CPU and GPU is slow. If you simply turn on hwaccel in MLT, it will transfer twice to display it in Shotcut. If you combine that with GPU Effects in Shotcut (Movit in MLT), it will transfer 4 times to display it in Shotcut. These are in addition to initially sending the compressed video bitstream to the GPU.