Cinellera360: the ultimate free VR editor
You got my clickbait? I got your attention. Nothing on the internet mentions that Cinelerra is capable of editing 360 video's, but it certainly is: with the help of ffmpeg's F_v360 plugin. Either creating the 360 content, or extracting it in a regular video. So as you all already expected from my I was doing stuff with Cinelerra-gg that likely nobody did before and noticed some particularities that I really did not understand. My steps: 1. My project settings remain 1920x1080. 2. Just grab any equirectangular video bigger than your project size. The one I got my hands on was 4096x2048. In my project I want to use a part of this video as illustration of the user experience. This would mean I need to project the equirectangular projection into a flat projection. 3. For the plugin settings that would be input=0 and output=4. What I noticed when I modulated the yaw was that I would never see the entire view, then when rotating the back of the video would 'clip' at -180 degrees. 4. When changing the camera to Z = 0.469 (1920/4096) I was able to get a 360 degree rotatable camera. 5. Setting up d_fov = 120, the image would be closely mimicking the experience. Now what Cinelerra bring you from this point. Keyframing a property of the plugin, and there it becomes interesting. Plugin keyframes seem to give the control what we are looking for here. I can set the yaw using "Generate keyframes while tweeking", but what I would be actually looking for is the same set of curves that would be available when changing x,y,z,opacity etc. How would I get interpolation working? Could anyone elaborate how Cinelerra knows it can interpolate some of the parameters, but not others? And personally I think what is more fundamentally lacking in Cinelerra: a timeline view analogue to Blender where any property can be placed in view: where I would suggest to normalise the min and max to sensible properties opposed to the current: stack everything on the track and break your project by an unintended mouse click. -- Stefan
"You got my clickbait? I got your attention." Always an entertaining email from Stefan! "Nothing on the internet mentions that Cinelerra is capable of editing 360 video's, but it certainly is: with the help of ffmpeg's F_v360 plugin. Either creating the 360 content, or extracting it in a regular video." It may be that no one has experimented with it yet. There is 1 line in the manual about that F_v360 does - Convert 360 videos between various formats - but there are so many ffmpeg plugins it can be hard to keep up. There is also the native SphereCam video plugin that Adam added to HV a few years back and was ported into GG which I think he made a online video of using. :So as you all already expected from my I was doing stuff with Cinelerra-gg that likely nobody did before and noticed some particularities really did not understand. My steps: 1. My project settings remain 1920x1080. 2. Just grab any equirectangular video bigger than your project size. The one I got my hands on was 4096x2048. In my project I want to use a part of this video as illustration of the user experience. This would mean I need to project the equirectangular projection into a flat projection. 3. For the plugin settings that would be input=0 and output=4. What I noticed when I modulated the yaw was that I would never see the entire view, then when rotating the back of the video would 'clip' at -180 degrees. 4. When changing the camera to Z = 0.469 (1920/4096) I was able to get a 360 degree rotatable camera. 5. Setting up d_fov = 120, the image would be closely mimicking the experience. "Now what Cinelerra bring you from this point. Keyframing a property of the plugin, and there it becomes interesting. Plugin keyframes seem to give the control what we are looking for here. I can set the yaw using "Generate keyframes while tweeking", but what I would be actually looking for is the same set of curves that would be available when changing x,y,z,opacity etc. How would I get interpolation working? Could anyone elaborate how Cinelerra knows it can interpolate some of the parameters, but not others?" Maybe IgorBeghetto knows the answer to the above 2 questions from Stefan. Meanwhile I will try to test F_v360 and see if I can make any sense of it. (I need a 360 GoPro camera - ha, ha). "And personally I think what is more fundamentally lacking in Cinelerra: a timeline view analogue to Blender where any property can be placed in view: where I would suggest to normalise the min and max to sensible properties opposed to the current: stack everything on the track and break your project by an unintended mouse click." Sounds like a good idea but I always wonder how hard it is to smoosh in these types of new ideas without breakage.
Stefan de Konink via Cin wrote:
Now what Cinelerra bring you from this point. Keyframing a property of the plugin, and there it becomes interesting. Plugin keyframes seem to give the control what we are looking for here. I can set the yaw using "Generate keyframes while tweeking", but what I would be actually looking for is the same set of curves that would be available when changing x,y,z,opacity etc. How would I get interpolation working? Autos' keyframe can use Linear or Bezier mode; plugin's keyframe only Linear mode. Usually the interpolation feature works for all values of the Plugins.
Stefan de Konink via Cin wrote:
Could anyone elaborate how Cinelerra knows it can interpolate some of the parameters, but not others? Could you explain better what you mean? With "Generate keyframes while tweeking (j)" enabled, when you change a value of the Plugin (Effect) a keyframe is created on the Timeline. If you move the Insertion Point in the Timeline and change a value (or more values) of the Plugin, an other keyframe is added. Each time a keyframe is created the Plugin save ALL its values.
Note: I never used F_v360 plugin. IgorBeg
On Monday, March 27, 2023 9:36:19 AM CEST, Igor BEGHETTO via Cin wrote:
Autos' keyframe can use Linear or Bezier mode; plugin's keyframe only Linear mode. Usually the interpolation feature works for all values of the Plugins.
When using "Generate keyframes while tweeking" I only get 'points'. Hence it switches from -30 to -180 on the exact places where the keyframe is set, there is no interpolation in the middle. Any suggestion how to change it? -- Stefan
Stefan de Konink via Cin wrote:
When using "Generate keyframes while tweeking" I only get 'points'. Hence it switches from -30 to -180 on the exact places where the keyframe is set, there is no interpolation in the middle. Any suggestion how to change it?
Oops, my mistake. Unfortunately, what I know for, the interpolation feature doesn't work for FFmpeg plugins (F_<effect>). Maybe Andrew_R can say if there is a way to use interpolation in Command Line using FFMPEG. I don't know, sorry. IgorBeg
On Monday, March 27, 2023 11:00:13 AM CEST, Igor BEGHETTO via Cin wrote:
Unfortunately, what I know for, the interpolation feature doesn't work for FFmpeg plugins (F_<effect>).
I would love to know where in the code this is 'set'. I cannot even find any reference to the v_360 other than the descriptions. -- Stefan
Not sure if this is any help or not, but the ffmpeg v360 plugin C code after you do a build is at: {yourcinelerra code directory}/thirdparty/ffmpeg-5.1/libavfilter/vf_v360.cand if you look at native plugins, like color3way, you can see how they call interpolate (cinelerra/pluginfclient.C) If you develop a way to have v360 do interpolation, we would be very happy to add a patch to ffmpeg so it can be used by everyone. Also, looking forward to a Video demonstrating v360 usage inside of CinGG ! Phyllis On Monday, March 27, 2023, 3:04:34 AM MDT, Stefan de Konink via Cin <[email protected]> wrote: On Monday, March 27, 2023 11:00:13 AM CEST, Igor BEGHETTO via Cin wrote:
Unfortunately, what I know for, the interpolation feature doesn't work for FFmpeg plugins (F_<effect>).
I would love to know where in the code this is 'set'. I cannot even find any reference to the v_360 other than the descriptions. -- Stefan -- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin
On Tue, 28 Mar 2023, Phyllis Smith via Cin wrote:
On Monday, March 27, 2023 11:00:13 AM CEST, Igor BEGHETTO via Cin wrote:
Unfortunately, what I know for, the interpolation feature doesn't work for FFmpeg plugins (F_<effect>).
I would love to know where in the code this is 'set'. I cannot even find any reference to the v_360 other than the descriptions.
I have to point out the fundamental difference between CGG 'Autos' (zoom, pan, etc.) which are interpolatable in any way (linear, bezier, etc.) and 'Plugin keyframes' which are not necessary to be interpolatable at all. Autos are handled inside the main Cinelerra executable itself. Therefore Cinelerra knows exactly what a particular Autos is about, how to interpret it, and how it can be interpolated. On the contrary, Plugin keyframes are handled each inside its own plugin. Cinelerra knows nothing about internal functionalities inside plugins, either external or even native plugins. And has no chance to do it. Only the plugin can interpolate its own keyframes. Also, if you succeed to add plugin keyframe interpolation in some particular plugin, all the other (even similar in functionality) plugins will know nothing about it. So, each one out of dozen of plugin keyframes has to be implemented individually.
Not sure if this is any help or not, but the ffmpeg v360 plugin C code after you do a build is at: {yourcinelerra code directory}/thirdparty/ffmpeg-5.1/libavfilter/vf_v360.cand if you look at native plugins, like color3way, you can see how they call interpolate (cinelerra/pluginfclient.C)
cinelerra/pluginfclient.C is nothing else as a 'template' around which the individual (native) plugins are built. It also does not know anything about interpolation. It helps subclassed plugins to fetch keyframes from timeline, read them or save to xml project file, and cannot do more. _______________________________________________________________________________ Georgy Salnikov NMR Group Novosibirsk Institute of Organic Chemistry Lavrentjeva, 9, 630090 Novosibirsk, Russia Phone +7-383-3307864 Email [email protected] _______________________________________________________________________________
participants (4)
-
Georgy Salnikov -
Igor BEGHETTO -
Phyllis Smith -
Stefan de Konink