Preliminar Note: This document is intented for users with at least a basic knowledge of the ffmpeg standards.


Mistika provides a wide set of predefined render codecs based on ffmpeg standard. The combinations that are provided are the only ones that are tested and supported by SGO, and they match the most common standards. However, even if our developers are constantly trying to keep them updated with evolving formats,  the fact is that there are so many codec variants and they change so fast that it is not possible to cover the full range.  Also because adding uncommon combinations would result in over-packed and confusing render interface, where many possible combinations could only work in very few other applications or even none at all.


For those rare cases where other specific combinations are needed, the user can still define its own custom codec in this configuration file:    


MISTIKA-ENV/config/avformat.cfg


Adding entries on this file will add the them to the render interface. However, it is strongly recommended to add additonal custom formats rather than changing the default formats, and also make a backup of this file in case of problems.


In general, the syntax of the fields in this file follows the ffmpeg standards. This does not mean that you can create any ffmpeg combination imaginable, as  some parameters are not standard and the syntax can be very codec specific. In general you can change any parameter that you see in the file to any other ffmpeg valid value, but you can not add more parameters not regognised by Mistika, as it will not know what to do with them.    


Example: MOV ProRes HQ Single Audio ( a Prores coded with split channels in mono tracks )


A example of a custom format is provided at the end of the file, which is the MOV ProRes HQ Single Audio.  The purpose of this example is to render a Prores movie with each audio channel in a different mono track, rather than all channels on a same audio track which is the default.  You can use it as follows:

 

- In the Video settings, select  CustomMovie -> MOV ProRes HQ Single Audio

- In the audio settings select Audio In Movie


You will see that the Options field in the audio metadata window will change to "1 channel/track", which means that each audio channel will use one separate audio track.


For more details, the definition of this example in the file is this:


g( n(ffmpeg_Custom) d(Custom movie)
c(
    n(CUSTOM_MOV_PRORES_HQ) d(MOV ProRes HQ Single Audio) e(.mov)
    m(
        n(mov)
    )
    v(
        n(prores_ks)
        p(profile=hq)
        p(pixel_format=yuv422p10le)
    )
    a(
        n(pcm_s24le)
        t(1)
    )
)


The field  t(1) means to split all channels in different mono tracks.  If you put t(2) it would mean to split all channels  in as many  stereo tracks as needed, and so. 


The pcm_s24le means pcm audio 24 bit little endian. For example, if you prefer 16 bit and big endian (inverted bits order) you can change it to pcm_s16be 


Most other fields are autoexplicative. You can use the other standards in the file as reference  examples. 


Please note that many applications only understand the most common combinations, which are typically the ones that are provided as preconfigured standards. If you make new formats it is highly recommended to test the whole workflow with them.


Regarding the streaming codecs (for the new streaming tool introduced in Mistika Ultima 8.7), the configuration file is not the avformat.cfg, but the .vid files in the /MISTIKA-ENV/lib/linux64/streaminglib folder.  They use different syntax and libraries, but also based on ffmepg standards. For more information please read the article about Streaming.


Note: The ffmpeg codec libraries used by Mistika Ultima are not the ones installed in the system for general purpose. Mistika keeps its own set of ffmpeg libraries under the MISTIKA-ENV/bin/lib folder. The purpose of this is to permit to install other ffmpef versions for other applications in the same system without creating conflicts with Mistika.