Latest post Thu, Feb 7 2019 10:51 AM by JamesTV. 5 replies.
Page 1 of 1 (6 items)
Sort Posts: Previous Next
  • Wed, Aug 22 2018 8:38 AM

    Transition from AMT 2.x to AMT 3.x

    In our software we provide a way how to export/transcode media to MXF/AAF files. So far we have been using AMT 2.x, but we want to move to AMT 3.x. However the API has completely changed and it seems that some of the lower level functions disappeared. Our workflow looks like this: - read media samples from MOV files (using AVFoundation) - transcode video samples to DNxHD/DNxHR codec (using libDNxHR) - write video samples and audio samples to AMT clip (AAF + OP-Atom MXF files for each track + XML) (using AMT) I was going through the AMT 3.x and I could not find lower-level functions like in AMT 2.x (CreateAmtFile, CreateAmtTrack, …) that would provide this functionality. The closest thing I could find was SampleBasedToFileBasedConversion, but it seems to work only on samples stored in files with media asset description XML provided. I could not find a way how to create these file samples and MAD XML from non-Avid files and raw sample data. All examples are for AAFs, MXFs, etc., MediaProcessor throws exceptions when provided with MOV container, so it is hard to find a correct way. The question is: How can we implement our workflow with AMT 3.x? What do you suggest for transition from AMT 2.x to AMT 3.x?
  • Wed, Aug 29 2018 2:18 PM In reply to

    • Rich Laws
    • Not Ranked
    • Joined on Wed, Oct 17 2012
    • Posts 108
    • Points 1,010

    Re: Transition from AMT 2.x to AMT 3.x

    Hi Andre,

    We are a 3rd party company too undergoing this same transition to AMT3 and what would be helpful would be a set of complete MADs for all supported Avid formats that can be written.  These would have all of the correct video parameters for every possible format/rate/raster to make sure that we provide compatible parameters.  3rd party code can adjust lengths, etc. but it is a chore to get the MAD video/audio settings for converting non-Avid to Avid media.   

    We have a product heavily built on AMT 2 and are getting our feet wet with AMT3 with existing AAF and OP-ATOMs created with Avid products creating clips from existing Avid clips.  But as you mention, it is more complicated with non-Avid media as the input.

    Currently, we are extracting video/audio from MP4 (h.264) and creating various Avid formats (XDCAM, DNxHD, etc) with our own toolkits and using AMT2  for writing Avid media.    Knowing the complete set of video parameters for the descriptors in the MAD  to be used would help (especially for UHD formats).    AMT2 included a complete set of XML files for all formats supported.  Something like that for AMT3 would help.

    Rich Laws

  • Wed, Jan 16 2019 7:03 PM In reply to

    • JamesTV
    • Not Ranked
    • Joined on Fri, Mar 31 2017
    • Posts 29
    • Points 335

    Re: Transition from AMT 2.x to AMT 3.x

    Andre,

    Further to Rich's comments - it would be really appreciated if Avid could release the XSD to go with the MAD XML structure - as an XSD is referenced in the XML, but I am unable to find an online location for it.

    This would go a long way in us understanding how to leverage the MAD XML structure - and I am sure would stop alot of stupid questions from the community on how to build the XMLs.

  • Thu, Feb 7 2019 8:44 AM In reply to

    Re: Transition from AMT 2.x to AMT 3.x

    Hi all,

    I am using 4.4.22.10044. There is a MediaAssetDescription.xsd file in the Documentation directory. 

    Raphael

  • Thu, Feb 7 2019 10:21 AM In reply to

    Re: Transition from AMT 2.x to AMT 3.x

    Hi Andre,

    SampleBasedToFileBasedConversion is a method from the demo that uses the utility function JobSetupUtils::feedInputData, which reads samples from a file, yes, but converts them to memory buffers before sending them to the API: 

    IMPSink_ptr trackSink = sampleBasedPushInputAsset.trackSink (track);

    DEMO_ASSERT (trackSink.get () != nullptr);

    trackSink -> write (buffer);

    GOOD NEWS! (as I need to do the same (-:) Raphael
  • Thu, Feb 7 2019 10:51 AM In reply to

    • JamesTV
    • Not Ranked
    • Joined on Fri, Mar 31 2017
    • Posts 29
    • Points 335

    Re: Transition from AMT 2.x to AMT 3.x

    Raphael,

    Yes I agree that there is an XSD present in the documentation folder - but its seems only partially populated.

    For example, we need to know the syntax for the different video and audio codecs - but the XSD does not contain this. below we an see this for the colour space example;

       <xs:simpleType name="ComponentOrderType">

            <xs:restriction base="xs:string">

                <xs:enumeration value="Unknown"/>

                <xs:enumeration value="ABGR 4444"/> <!-- Interleaved, 4:4:4:4, 'A','B','G','R' samples order. -->

                <xs:enumeration value="ARGB 4444"/> <!-- Interleaved, 4:4:4:4, 'A','R','G','B' samples order. -->

                <xs:enumeration value="BGRA 4444"/> <!-- Interleaved, 4:4:4:4, 'B','G','R','A' samples order. -->

                <xs:enumeration value="RGBA 4444"/> <!-- Interleaved, 4:4:4:4, 'R','G','B','A' samples order. -->

                <xs:enumeration value="RGB 4440"/> <!-- Interleaved, 4:4:4, 'R','G','B' samples order. -->

                <xs:enumeration value="BGR 4440"/> <!-- Interleaved, 4:4:4, 'G','R','R' samples order. -->

                <xs:enumeration value="YUV 4200 planar"/> <!-- Planar, 4:2:0, 'Y','U','V' sample planes order. -->

                <xs:enumeration value="UYVY 4220"/> <!-- Interleaved, 4:2:2, 'U','Y','V','Y' samples order.  -->

                <xs:enumeration value="UYAVYA 4224"/> <!-- Interleaved, 4:2:2:4, 'U','Y','A','V','Y','A' samples order.  -->

                <xs:enumeration value="YUYV 4220"/> <!-- Interleaved, 4:2:2, 'Y','U','Y','V' samples order.  -->

                <xs:enumeration value="YUV 4440"/> <!-- Interleaved, 4:4:4, 'Y','U','V' samples order.  -->

                <xs:enumeration value="YUVA 4444"/> <!-- Interleaved, 4:4:4, 'Y','U','V','A' samples order.  -->

                <xs:enumeration value="XYZ 4440 planar"/> <!-- Planar, 4:4:4, 'X','Y','Z' sample planes order. -->

            </xs:restriction>

        </xs:simpleType>

    But for Sound Essence encoding none are provided;

                        <xs:element name="SoundEssenceEncoding" type="mpct:SoundEssenceEncodingType">

                            <xs:annotation>

                                <xs:documentation>The specific essence encoding of this sound track.</xs:documentation>

                            </xs:annotation>

                        </xs:element>

    So how to know what Avid references PCM or DNx, etc. as?

Page 1 of 1 (6 items)

© Copyright 2011 Avid Technology, Inc.  Terms of Use |  Privacy Policy |  Site Map |  Find a Reseller