AAF processing

Questions and answers on how to get the most out of FFAStrans
Ghtais
Posts: 157
Joined: Thu Jan 19, 2017 11:06 am

Re: AAF processing

Post by Ghtais »

Hi

thanks to Encodem to have a look at this new challenge :)

For me AAF (only linked, the embedded form is no longer supported and is useless) is so important for outgest. I use AVID and after editing you always have to export something (Master, proxy, etc etc). I use FFAStran in most of case but first I have to mixdow and export with avid before going to FFAStran. So it takes approximately twice the time ...
I know that content agent (ROOT6) have implemented AAF and it seems to be very powerful. Just right clic in a sequence directly in AVID and select "send to content agent" in the contextual menu.

I see that you speak about one sequence with only one video track. In this case I'am using quicktime reference with the avisynth script but It doesn't keep all metadata from the original opatom MXF file and this produces various issues in FFASTran (colors issues, resize, frame rates, etc). I think AAF would be more reliable that QTref even if we use with only one video track.
Of course for me, the main goal is to be able to export a complex rendered sequence with multi video and audio tracks in AAF to go directly in FFAStran.

At this point you can say that if we forget the issue with metadata, Quicktime reference could do the same job. But in reality there are a lots of other issues with the AVisynth quicktime ref script. I have noticed that it works with complex sequence until a certain point. If the sequence have too much video tracks or contain too much clip, it produces error in FFAStran (but it plays fine in quicktime player).

Finally I don"t know if there is to much limitations with Quicktime ref and we should go with AAF or if it's easier to start with the AVisynth QTRef script and debug it

Let me know if I can help in some way on this project.

bye :)
emcodem
Posts: 1631
Joined: Wed Sep 19, 2018 8:11 am

Re: AAF processing

Post by emcodem »

Thanks for your inputs Ghatis!
Correcting the bugs of the QTRef integration for avisynth is for sure harder than creating something new because one needs to work into an existing project. Also it uses QT Engine for windows which was already dropped by apple and some companies consider it as a security risk as it has multiple known vulnerabilities open. Supporting software that relies on dead software does not sound like something worth any efforts.

@admin or @steinar (just want to get you notified :-), what do you think about supporting sequences? Is aaf worth the efforts? will translating into an avs script work stable and is it the best option how to integrate sequence support into ffastrans?
From my perspective the efforts will be always the same, no matter if the input format is aaf or any other (like FCP7 project xml)... The main efforts will be testing all the specialities like missing audio and video, correctly mapping all the audios etc...

The idea using avisynth is to use Trim and splice (or ++)
The danger that i see using avisynth is that we need to use a hundred instances of the ffms2 plugin within a single script. This will lead to very high memory usage plus i fear the plugin is not thread safe enough for this kind of usage. Also the seeking ability must be perfect, at least on the source format of interest.

[EDIT] a first test using ffmpegsource in a 32bit environment shows that it is not possible to use lots of ffmpegsource command within a single avs process, it starts to make troubles from 19 files and 1,3 GB RAM usage for me. From feeling the whole memory management within avisynth will prevent us from using it for hundred sources within one process. Except we find a way to load each source only exactly when it is needed and unload each source as soon as processing finished. I can imagine a way how to load additional sources only when a certain frame number has passed but i don't know a way to unload a source.
After some testing and research, i believe the main issue here is to find out a video processing system that supports complex projects on input.
emcodem, wrapping since 2009 you got the rhyme?
admin
Site Admin
Posts: 1658
Joined: Sat Feb 08, 2014 10:39 pm

Re: AAF processing

Post by admin »

Basically, if one is able to recreate an aaf or fcp-xml sequence to an AviSynth script, which I'm sure is quite possible, FFAStrans could definately support it. The trick is, as you write, emcodem, the resouces needed for this to work with larger sequences. Split and stitching via intermediates might be an approach to deal with this. However, the processing will be very time consuming so it will NOT be a speed demon.

Anyway, this is not a task I will take at the current stage. I'm very busy focusing on rewriting major parts of FFAStrans but if you emcodem or someone else would like to embark on this aaf/xml-journey, you have my support :-)

-steinar
emcodem
Posts: 1631
Joined: Wed Sep 19, 2018 8:11 am

Re: AAF processing

Post by emcodem »

Great, thans for your thoughts steinar!
Instead of using avisynth we could possibly also use the ffmpeg concat option, this would be the fastest possible option too.
The idea is to create one concat input file per track in the sequence and use them all in a single ffmpeg processing command finally e.g.

Code: Select all

ffmpeg -f concat -i vtrack0.txt -f concat -i atrack1.txt -f concat -i atrack2.txt
It would be much better if we only had one single concat list but concatcdoes not yet support alternate streams with in and outpoint as i see.

The downside of this is that all the video processors in ffastrans can only be used on the already encoded file...
@momocampo do you see any proble with this downside? ...would you need to do lots of filtering on the sequence before it is rendered?
emcodem, wrapping since 2009 you got the rhyme?
momocampo
Posts: 592
Joined: Thu Jun 08, 2017 12:36 pm
Location: France-Paris

Re: AAF processing

Post by momocampo »

Hello ,
Well the true useful to export an aaf linked is to avoid mixdown video and/or audio or to avoid an export file. The big advantage about link aaf is it points to all the sequence media without exporting.
So emcodem, if you tell me we need to export our sequence before use Ffastrans, I think it will be useless...Useless too if we need to do a video mixdown (which consists of crushing the media and effects and create 1 video track).
it's a shame not to be able to use aaf but it's really to complicated...
Maybe we can use Avid Interplay but I don't use it so not sure we can.
I must think about another way to export but I think there is not :)
cheers.
B.
emcodem
Posts: 1631
Joined: Wed Sep 19, 2018 8:11 am

Re: AAF processing

Post by emcodem »

Hey Benjamin,
this thread is about supporting aaf sequences that link to external OPAtom essences... my last idea was to let ffmpeg directly read from the linked essences. The downside is that this needs to happen before any other processing within ffastrans happens.

By the way, i am currently exploring if and how the AAF SDK can help here. As @momocampo, you told me you have problems opening aaf files anyway, so this tool might help you in future, it converts aaf to xml:

download aaf2xml

Usage:

Code: Select all

C:\dev\AAF\AAFWinSDK\vs10\Utilities\aaffmtconv\Win32\Debug\aaffmtconv.exe -xml C:\Users\emcodem\Downloads\AAF_FOR_TEST.aaf C:\Users\emcodem\Downloads\AAF_FOR_TEST.xml
Also, you can explore the contents of aaf files using some MS compound file browser, like this one (look in StructuredStorageXplorer folder)
https://sourceforge.net/projects/openmcdf/postdownload

Hope it helps!
Last edited by emcodem on Fri Jul 19, 2019 9:13 am, edited 2 times in total.
emcodem, wrapping since 2009 you got the rhyme?
momocampo
Posts: 592
Joined: Thu Jun 08, 2017 12:36 pm
Location: France-Paris

Re: AAF processing

Post by momocampo »

emcodem,
Just to say I think you speak to 2 members of this forum and it's only 1 man --> Momocampo is Benjamin and is ...me :)
Anyway, Let ffmpeg directly read from the linked essence would be great. Yes, it must happen before any process of FFastrans but not really a downside in my opinion.
At last, thanks for this tool, I have to check if I can use it and how.
;)

Benjamin
emcodem
Posts: 1631
Joined: Wed Sep 19, 2018 8:11 am

Re: AAF processing

Post by emcodem »

Haha no worries Benjamin, i just use the "@username" syntax when i want the system to send you a "Notification" ;-)
emcodem, wrapping since 2009 you got the rhyme?
momocampo
Posts: 592
Joined: Thu Jun 08, 2017 12:36 pm
Location: France-Paris

Re: AAF processing

Post by momocampo »

Ok I understand now.
My god!! I just look at your link about MS compound and it's really not for my skills :(
You told me to convert aaf to xml but after? Do you have an Avisynth script with xml to use in FFastrans?
thanks;
emcodem
Posts: 1631
Joined: Wed Sep 19, 2018 8:11 am

Re: AAF processing

Post by emcodem »

Sorry, the link to the compound fs browser was crap, here the right one

https://sourceforge.net/projects/openmc ... t/download

in the zip file, extract and use only this folder, it contains a program with a GUI:
OpenMcdf 2.0\bin\StructuredStorageXplorer\

The tools i currently posted are just some stuff i found and use for experimenting... you can use them for opening and viewing aaf but not more :-(
I will have to write some program for you that uses one of the tools/SDK's for AAF and creates some avs or ffmpeg cutlist, this will take some time...

But before i write any code, i need to experiment which tools/SDK's are the best fit.
It would be cool if you upload a complex project for me as well please. Just the aaf file, no media files required.
emcodem, wrapping since 2009 you got the rhyme?
Post Reply