You can speed up some ffmpeg plugins that are quite time-consuming and use a lot of CPU. For a specific color-based example, CINELERRA-GG uses 6 primary rendering color models. All of them have 3 components at full scale. Direct usage of a particular ffmpeg plugin from the ffmpeg command line might handle the planar at less than full scale chroma (yuv420), which means there is less data to manipulate. But when cinelerra loads a video it uses full scale color models. In other words:
if using an ffmpeg plugin that uses filters and many passes over the data, the amount of data is a big factor. If you load a file in CINELERRA-GG with a
same_directory_path_and_filename.opts
file containing the following line, the full scale color modeling upgrade will not be performed until after any plugin, and then the render is faster:
video_filter=xxxxxx=threads=8 # where xxxxxx is the desired filter |
When the file loads, however, it will initially take longer because it is running through the video filter. The format rgb in ffmpeg uses more cpu time. For comparison, ffmpeg line that might be used:
ffmpeg -i /tmp/filename.mpeg -threads 15 -vf format=rgb24,xxxxxxs=threads=8 -acodec ac3 -vcodec libx265 - y /tmp/x.mp4 |
This converts the input to rgb before xxxxxx runs, and so it too is slower (because there is more color data). You would ordinarily avoid this conversion by omitting the format=rgb24 parameter. An example ffmpeg plugin that could easily take advantage of an auxilliary opts file is nlmeans.
The CINELERRA-GG Community, 2021