Hello, I recently gave Cinelerra-GG a real shot, and was very impressed with it on multiple fronts. It has a lot of great features that other FOSS NLEs dont have, chief among them being hardware decoding. It has the smoothest playback between Kdenlive, Blender, Olive, and Pitivi, and has no lag whatsoever for 4K video. Even for codecs like Quicktime which NVIDIA doesnt support hardware decoding for. It has the best documentation by miles compared to the other FOSS NLEs. Amazing job on that, by the way; its unfortunate that most projects dont have documentation this thorough and in-depth. I learned a lot about video in general from reading some of it, even.
However, when I have two video tracks playing at once, the framerate is cut in half. When I add an effect like Color 3 Way to a clip, it cuts the framerate in half again. Ive tested this by enabling/disabling the effects, and enabling/disabling Play Track in the patchbay and looking at Preferences for Playback A. Im not sure if this is typical behavior, which is why Im mentioning it. Im not sure if this has something to do with driver support for GNU/Linux. I get framerates of 3-5fps or 11fps instead of 25fps.
So, here are some things Ive tried to optimize media, which work, but none of which provided a complete solution for me:
-
Turning on background rendering—this worked very well, but it changes the color space when rendering the JPGs so I dont get an accurate impression of the color. It also takes quite a bit of time to work through the entire track. The only way to turn it off is to toggle background rendering again, which starts all over from the top, despite there being thousands of frames in my /tmp folder generated already.
-
Tried proxy clips with mpeg codec. This actually resulted in worse framerates without the scale factor. Additionally, mpeg does not include an alpha layer, which is necessary for some motion graphics I have added to the timeline. Otherwise I dont get a clear picture of the playback I attempted to change the proxy container to webm and used yuva420p pixels, but this didnt produce transparency either. I then read that VP9 does not account for transparency and to use VP8 with yuva420p pixels, but when I tried this, I got an error. I tried mov as well, the only other codec I know supports alpha, and it gave me a very similar error:int FFMPEG::open_encoder(const char*, const char*): open failed libvpx:/path/to/file.proxy-MP4.webmint ProxyRender::create_needed_proxies(int): Error making proxyIm not sure if this just means its not possible to create proxies with transparency.
-
Rendering out the motion graphics files to a .tiff sequence with LZW compression and importing that—this produced worse results than the .mov file. By the way, the JPEGLIST example in the documentation didnt work without tweaking it to use absolute paths rather than relative paths to the images in the sequence; Cinelerra-GG couldnt find the files.Additionally, its strange, but whether vdpau is on or off doesnt seem to make any significant difference to the playback speed, even for H.264 media.
Is there anything else I can try? Or is there something that I screwed up when trying these things?
I increased Cache size from 256MB to 8192MB, but it didnt seem to make any difference, even on the system monitor. It only uses as much as 6GB of RAM at any time.
By the way, these are my system specs:
Arch Linux, X11, GNOME 41.3, NVIDIA RTX 2060 Super, AMD Ryzen 5 3600x 6-core, 32GB of RAM, using Linux-Zen with proprietary NVIDIA drivers (nvidia-dkms)Using 3840x2160, RGBA 8-bit settings for project, YUV color space in Preferences is set to BT709 instead of the default BT601_NTSCMy system monitor reports that normal playback uses about 65% of my CPU, while Nvidia X Server Settings reports about ~20% of my 8GB of my dedicated memory, at most 30% of GPU Utilization, and sometimes 50% of Video Engine Utilization.
Thank you for any help.
EDIT: Also, I built Cinelerra-GG from the cinelerra-gg AUR package instead of using the AppImage. Ive used both with identical experiences but just found the AUR an easier way to manage updates.