View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000635||Cinelerra-GG||[All Projects] Feature||public||2023-02-14 12:48||2023-06-13 21:42|
|Priority||normal||Severity||feature||Reproducibility||have not tried|
|Target Version||Fixed in Version|
|Summary||0000635: add hue correct effect|
|Description||I think that cinelerra-gg should have a "Hue correct" effect like in blender or natron for easier color correction.|
|Tags||effects, New Feature|
Frei0r is the result of a collective effort in coordination with several software developers meeting at Piksel between 2003 and 2005 to find a common standard for video effect plugins to be used among their applications: Andraz Tori (Cinelerra/CVS), ...
Perhaps looking at the code of CinCVS you can find the implementation of frei0r?
Another non-native idea is to use GIMP + G'MIC filters
like described here on one sample image from video
(HSV modes included, tested on gmic 2.2.3 + gimp 2.10.32)
for making CLUT file, then apply such file as usual :)
on RGB curves in general apparently you can use ffmpeg's levels filter with Photoshop' ACV file ... converted from GIMP's curve preset!
in theory frei0r set of effects provides irs own (8 bpc) version of curves apparently working with hue/saturation values too:
right now this plugin is disabled, but you can try to enable it if you added frei0r plugins to your ffmpeg compilation, as I tried in 2020:
"I tried to recompile CinGG's version of ffmpeg with those plugins enabled:
FFMPEG_EXTRA_CFG="--enable-frei0r" (I have frei0r plugins 1.7.0 installed) and after tweaking /usr/share/cin/ffmpeg/plugin.opts (added frei0r filter_name=vignette at very end of it) I can see this plugin and even use some effects. "
@Andrea_Paz, @PhyllisSmith - thanks for testing! It seems cinelerra really re-reads whole filter chain on actual rendering even if background render files present for given range.
I tried Oil Painting plugin with bigger parameter - so it was clearly much slower than decoding/encoding. I'll try to put my addition inside name-generated function with ext. added as parameter, but I agree this is deviation from this bugreport's goal.
Attempt at cheating away from some more serious work not worked, huh :-)
ALMOST, but not quite. Tested Render Farm by itself with Background Rendering turned off - still works great. Background Rendering by itself with the extension added also works great. BUT the problem is that if you turn on both the Render Farm AND Background Rendering, some files are created with the extension and some are not and then when playing, you get many errors of missing brenderxxx.extension files (because the Render Farm created them without the extension; or somebody did).
I guess the reason for enabling BOTH background rendering and render farm is for a speedup. I did not even know you could do this, but it has been working as documented.
"Frames per background rendering job This only works if a Render Farm is being
used; otherwise, background rendering creates a single job for the entire
Although, not impacted, still tested rendering to a JPEG sequence list because wasn't sure about it and it works as expected.
It seems Natron can re-read its own output, but you need to link writer and reader nodes?
I hope it also works with sequences ...
I will test tomorrow.
@Andrea_Paz, my idea behind using background rendered set of images was to modify them "behind cinelerra's back", so we can play and render from them as usual, without manually creating fileluit index (there is script for this, as far as I remember).
Not sure if Natron can just overwrite all images in sequence? You need to skip very first 0 sized pseudo-index file, but apart from this it should work?
Note, if you change timeline in cingg she will overwrite part you worked on, so Natron actions (is there way to make macros in there?) must be redone (at least on image range modded by cingg). Hopefully renderfarm + bg render also still work ( Phyllis, can you test at least on your big machine?) so, cinelerra-specific operations still benefit from all connected computes with cinelerra render (but you need to update cins on render nodes, so they agree on image format extension we just added).
Thank you Andrew. With your patch the background render produces the images with extension, so you can import them and work in Natron (and I guess also in Blender or DaVinci Resolve, etc). So we can apply Hue curves, but also Rotoscoping and tracking. Then we can render a video or again a new sequence of images to import into CinGG. If we choose a new sequence of images we have to create an index (filelist) that is recognized by CinGG; how can we do that? Natron does not create a filelist and therefore CinGG cannot import it.
Or do you think it is possible to import the edited images from Natron without having to do a rendering?
Oh, I was blind, there already was filename extension variable!
use on top of 0001 or just add this line to original file manually.
0002-EXPERIMENTAL-simplify-adding-extension-to-brender-fi.patch (849 bytes)
From 17dd61c8f815df7120c356d7908f8f4f570b53d0 Mon Sep 17 00:00:00 2001 From: Andrew Randrianasulu <[email protected]> Date: Thu, 16 Feb 2023 22:43:48 +0300 Subject: [PATCH 2/2] EXPERIMENTAL: simplify adding extension to brender files --- cinelerra-5.1/cinelerra/filelist.C | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cinelerra-5.1/cinelerra/filelist.C b/cinelerra-5.1/cinelerra/filelist.C index 4ad2efc4..891c38df 100644 --- a/cinelerra-5.1/cinelerra/filelist.C +++ b/cinelerra-5.1/cinelerra/filelist.C @@ -511,9 +511,7 @@ char* FileList::calculate_path(int number, char *string) number, number_digits, number_start); - strcat(string, "."); - strcat(string, File::get_tag(asset->format)); - string[strlen(string) - 1] ='\0'; + strcat(string, file_extension); } return string; -- 2.39.2
I tried to make cingg add filelist extension automatically for brender files. It seems to work but obv. need more testing with renderfarm and usual lists ...
0001-EXPERIMENTAL-add-extension-to-brender-files.patch (781 bytes)
From 61d227a5b1c369649fffeb5ad1b925378fcc1465 Mon Sep 17 00:00:00 2001 From: Andrew Randrianasulu <[email protected]> Date: Thu, 16 Feb 2023 22:21:01 +0300 Subject: [PATCH] EXPERIMENTAL: add extension to brender files --- cinelerra-5.1/cinelerra/filelist.C | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cinelerra-5.1/cinelerra/filelist.C b/cinelerra-5.1/cinelerra/filelist.C index 3443a8b4..4ad2efc4 100644 --- a/cinelerra-5.1/cinelerra/filelist.C +++ b/cinelerra-5.1/cinelerra/filelist.C @@ -511,6 +511,9 @@ char* FileList::calculate_path(int number, char *string) number, number_digits, number_start); + strcat(string, "."); + strcat(string, File::get_tag(asset->format)); + string[strlen(string) - 1] ='\0'; } return string; -- 2.39.2
I also think the idea is great.
I tried a background render (exr sequences) and noticed that it doesn't put the extension to the images created. Natron doesn't recognize them and can't import them.
Reading Natron's documentation you can see that it wants a simple list of images, without the need for a filelist ("name.exrs") as an index. So the background render is perfectly suitable if you can assign the extension to the various files you create.
However, you don't get out of the usual mode of making exchange renderings between programs...
That is an interesting possibility and would be useful for other potential plugins too.
|Thinking about possible workaround - may be Natron can work over our background render files, and then if not owerwriting them but at least create new set, and then bash script just renames natron-modified files back into format cinelerra accepts?|
Hue curves are complementary to the histogram (also called RGB curves).
It would be nice to be able to implement ofx in CinGG, it would fill the few shortcomings of CinGG in CC and Compositing.
As Phyllis said, one workaround is the Banana Blue plugin, but it is complex to use and inaccurate as results.
also, just looking at GUI may be Histogram Bezier can be modified
for HSV in addition to RGB?
code for this effect in Natron seems to be here:
but may be whole ofx host work will be better idea?
We definitely need this effect. I checked to see if this could be done with Blue Banana, but it does not appear to be able to.
|2023-02-14 12:48||goat||New Issue|
|2023-02-14 12:48||goat||Tag Attached: effects|
|2023-02-14 12:48||goat||Tag Attached: New Feature|
|2023-02-14 18:05||PhyllisSmith||Assigned To||=> PhyllisSmith|
|2023-02-14 18:05||PhyllisSmith||Status||new => acknowledged|
|2023-02-14 18:05||PhyllisSmith||Note Added: 0005444|
|2023-02-15 04:21||Andrew-R||Note Added: 0005445|
|2023-02-15 05:39||Andrew-R||Note Added: 0005446|
|2023-02-15 09:37||Andrea_Paz||Note Added: 0005447|
|2023-02-15 09:39||Andrea_Paz||Note Edited: 0005447||View Revisions|
|2023-02-16 02:14||Andrew-R||Note Added: 0005450|
|2023-02-16 13:57||PhyllisSmith||Note Added: 0005451|
|2023-02-16 15:16||Andrea_Paz||Note Added: 0005452|
|2023-02-16 19:26||Andrew-R||File Added: 0001-EXPERIMENTAL-add-extension-to-brender-files.patch|
|2023-02-16 19:26||Andrew-R||Note Added: 0005453|
|2023-02-16 19:46||Andrew-R||File Added: 0002-EXPERIMENTAL-simplify-adding-extension-to-brender-fi.patch|
|2023-02-16 19:46||Andrew-R||Note Added: 0005454|
|2023-02-16 21:37||Andrea_Paz||Note Added: 0005455|
|2023-02-17 01:46||Andrew-R||Note Added: 0005456|
|2023-02-17 02:51||PhyllisSmith||Note Added: 0005458|
|2023-02-17 03:53||Andrew-R||Note Added: 0005459|
|2023-02-17 18:32||PhyllisSmith||Note Edited: 0005456||View Revisions|
|2023-02-17 19:29||PhyllisSmith||Note Added: 0005460|
|2023-02-17 19:30||PhyllisSmith||Note Edited: 0005460||View Revisions|
|2023-02-18 02:17||Andrew-R||Note Added: 0005461|
|2023-06-12 17:35||Andrew-R||Note Added: 0005498|
|2023-06-12 18:02||Andrew-R||Note Added: 0005499|
|2023-06-12 18:41||Andrew-R||Note Added: 0005500|
|2023-06-13 21:42||Andrea_Paz||Note Added: 0005503|