Posted June 18, 20195 yr Not directly python questions, rather about overall architecture of workflows. What kind of data is passed from node to node? Lets say I have a ExrFile input connected to prores process node. One of them is decoder, another encoder. So how exactly does image data move between them? And is there way to intercept it (the actual image data) with Python? What is the order or operations for executing nodes when processing? Lets say I want to modify the url of some input node with python. How can I accomplish this? I can't add python node in front of input node and placing it separately or after it does not execute it before... Edited June 18, 20195 yr by hendrik
June 20, 20195 yr On 6/18/2019 at 6:11 PM, hendrik said: Not directly python questions, rather about overall architecture of workflows. What kind of data is passed from node to node? Lets say I have a ExrFile input connected to prores process node. One of them is decoder, another encoder. So how exactly does image data move between them? And is there way to intercept it (the actual image data) with Python? What is the order or operations for executing nodes when processing? Lets say I want to modify the url of some input node with python. How can I accomplish this? I can't add python node in front of input node and placing it separately or after it does not execute it before... the connections are managed by a class called Cconnector (Mistika.classes.Cconnector). that class has a function called universalPath. it gives you a class called CuniversalPath (Mistika.classes.Mistika.CuniversalPath) wich manages file sequences. at the moment we have not implemented a path for the metadata, so it has to be asked directly to the parent node, but we plan to add a special path for that. At the moment, the actual pixels info can not be intercepted, The best way to manipulate the images is using Display Filters coming from Mistika Boutique. We could export a class to access them if customers find that functionality useful. But ATM it is not possible, and that functionality will not happen before release. Please, let me know if you need deeper information about any of those classes kindly yours Miguel
June 20, 20195 yr On 6/18/2019 at 5:11 PM, hendrik said: And is there way to intercept it (the actual image data) with Python? Not directly in Python, but you could try the following (not sure if it works for your purposes): First create a display filter in Mistika Boutique including a GLSL effect, which can load a user script written in glsl language. Then apply that display filter in a workflow node. When executing that node the image data will be passed to your GLSL code, which could do any transformation to the image as desired.
June 25, 20195 yr Author On 6/20/2019 at 3:53 PM, Miguel Angel Doncel said: the connections are managed by a class called Cconnector (Mistika.classes.Cconnector). that class has a function called universalPath. it gives you a class called CuniversalPath (Mistika.classes.Mistika.CuniversalPath) wich manages file sequences. I understand that nodes pass the path, but how does the image data move between them? I guess you use the Mistika engine backend for conversions? So basically graph builds an internal project that gets rendered when queue is executed? Because decoder has to push decoded image data somewhere and encoder must pick it up, thus the part about intercepting the data flow. This question is partly motivated by idea of adding reformatting to flow, currently I think there is no way to do it, what goes in, comes out resolution, fps etc wise..?
June 25, 20195 yr yes it uses the render engine, but you can still have control: - If you need access to pixel values, insert a GLSL effect in a display filter from Ultima or Boutique (several workflow nodes have a display filter parameter ). GLSL is a programming language (an evolution of GL )specialised in image processing, so you can not write python code to process pixel information but i you could do it in GLSL - Regarding the metadata you mention (resolution , fps, etc) a good part of it is stored in task node parameters that you can read, and also change depending on the case. Some other metadata is not accessible as node parameters but you could still read it and change it, as a workflows project is just a text file, and also the rnd, clip metadata (.clp files for rendrded clips and .lnk for source media ) and display filters, as everything else in Mistika (there are no binary databases , just text files) . Just importing media files in Mistika Boutique will read all the significant metadata from the source media files and it will put it in ".lnk" text files in your project in a coherent manner ( a same script will work for all formats ) , so you could get it from there. However, for some of the cases I mention you will also need Mistika Boutique, not only Mistika Workflows Edited June 25, 20195 yr by Javier Moreno misspellings
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.