Codec and Format Combinations

Hello Hitfilm Community!

I have a technical question regarding codecs and formats. As long as an application supports different formats and codecs, could they theoretically be used in different combinations and still work?

Example: If I was able to zip an Open EXR image sequence into an MXF with PCM audio, could Hitfilm open it since Hitfilm supports those different elements individually? Or, does it also have to be within a supported combination?

I would appreciate any insight.

Comments

  • edited May 27

    Containers (MOV/MP4, MXF, m2ts) only support specific codecs. A demuxer implementation may support a subset of that.

    The way Hitfilm seems to be setup for native decode (MP4, MXF(XDCAM) and AVCHD) it appears that if a container demuxer supports a codec and the codec is installed in Hitfilm then if has a chance of working. For example, this in contrast to how Vegas sets up native decode which is restrictive. Vegas seems to only worry about known/specific common combos of codecs and containers.

    Trying to stuff an image sequence image type into any container is iffy at best. I know PNG can be stuffed into MOV/MP4 but I do not think anything supports EXR in a video container format. But I don't know spit really. MOV/MP4 can contain PNG, JPEG and I believe JPEG2000 images.

    Hitfilm supports MP4. MP4 supports AC3 or MP3 audio. Hitfilm has MP3 and AC3 codecs. Hitfilm supports AC3 or MP3 audio in MP4. I've tested.

    Contrast this with Vegas. Vegas only supports PCM and AAC in MP4 video files even though it has codecs for AC3 and MP3.

    IMO Hitfilm is doing this correctly and Vegas is quirky.

    There is a bit of web traffic out there about GH5 4:2:2 video support. Most Editors only have 8-bit 4:2:0 AVC decoders installed. Including Hitfilm. Vegas has a 10-bit 4:2:2 AVC decoder but given the quirky manner in how they setup Vegas only supports 4:2:2 AVC video via MXF because that setup for XAVC support.

    Contrast this with Hitfilm which has a generic, encapsulating, interface for decode. Both Hitfilm and Vegas use Mainconcept decoders. I have copied the Mainconcept "broadcast" AVC decoder from Vegas 14 into Hitfilm 2017 and with that Hitfilm is suddenly able to load GH5 422 video because the necessary decoder is now "installed". This is a hella hack at best because the version numbers of the two DLLs are not the same but at some percentage level they seem to be ABI compatible. I only did that test out of curiosity and would not trust leaving the DLL in the Hitfilm install.

  • Hey NormanPC,

    Ok, so my theory would require Hitfilm to basically create a custom decoder per file rather than having standard decoders built in. So, in the case of something like the MOX file format (open exr in an MXF). Hitfilm would have to get a specific decoder to open that file (even though they support those components individually). 

  • I don't think Hitfilm supports image sequence types in any video containers, period. It all "normal" video/audio codecs in video containers. Image sequences are a separate subsystem from "video files". In other words, EXR not a "video codec" in a strict sense in Hitfilm.

    Also, you cannot just plop something in and expect it to work. It is an integrate system from Mainconcept that FxHome is licensing. So only those things that Mainconcept explicitly includes into their system will work seamlessly like some of the things I described above.

    For example Hitfilm has its native support via Mainconcept (MP4, AVCHD). Hitfilm supports Quicktime (MOVP). Hitfilm supports Video for Windows (AVI)(Cineform excluded, it's native now in 2017). Each one (MC, Qt and VfW) is a completely separate and incompatible subsystem. They do not cross pollinate.

    I am sure Hitfilm does not support the MOX container format. A Google of MOX indicates it is not anything standard to MXF. It is someone proposing to define a new container where the container structure is mostly standard MXF but they are defining the codec, and possibly other, support differently/separate from SMPTE. So FxHome would have to possibly license something from the MOX source.

    The MOX site says free to use but not free to create. So import support could be "free". Certainly not free in development time/cost to integrate the demux/decode phase of the new separate subsystem into the Hitfilm video engine.

  • Aladdin4dAladdin4d Moderator

    HitFilm supports PNG sequences in an MOV complete with alpha channel.

    An image sequence in an MP4 container just isn't going to work. The MP4 spec does support storage of still images but not image sequences. The original intent was something for a telephony use I think and it's just data storage as opposed to a playable stream. 

    JPEG2000 has it's own entire spec and ISO BMFF, MJ2, for wrapping image sequences as Motion JPEG2000 files.

    Wrapping OpenEXR image sequences is always going to be problematic even if there is a specification for it. OpenEXR not only supports layers but nested layers as well. The whole concept was based around never having to wrap a sequence and working solely with image sequences. 

  • Thanks for the info guys. I'm getting a better picture of what it takes just to get a video to play in the editor. 

Sign in to comment

Leave a Comment