The Intermediate Codec Thread

Aladdin4dAladdin4d Moderator
edited December 2016 in HitFilm Techniques & Questions

Now that we can go back and edit our posts forever and it seems to be a topic that keeps coming up I figured it would be a good idea to start this thread to list what codecs are available and the various ways to get camera files to something that can actually be worked with. I'm going to try to make a comprehensive list with the supported color spaces, resolutions, containers and platforms. It's a start anyway......

If you don't understand why it's a good idea to transcode your footage to an intermediate codec yet there's two articles you need to read, Why you should use Avid DNxHD and Apple ProRes and Save Yourself Frustration: Use “Editing” Formats When Editing. After you've done that come back here and choose the codec that best matches your needs. Where applicable the Platform names will link to current downloads

Intermediate Codecs 

Avid DNxHD and DNxHR (Avid CodecsLE 2.7.3)

Color Spaces - 4:2:2, 4:4:4.

Bit Depths - 8,10

Resolutions - (HD)1280x720, 1920x1080, (HR)3840x2160, 4096x2160

Containers/wrappers - MOV, MXF

Platforms - WinMac

Pros - Multi platform professional codecs. Can be decoded and encoded by any NLE that uses Quicktime components once the codecs are installed. Considered Is an industry standard (SMPTE VC-3). DNxHR natively supported by DaVinci Resolve. DNxHD is visually lossless. Freely distributable.

Cons - Not many options to create MOV or MXF files outside of an NLE on Windows. DNxHR is a lossy codec.

Notes: DNxHR for 4k/UHD resolutions included as of version 2.6. Exhaustive list of resolutions, frame rates and bit rates. 

Grass Valley HQ, HQX and Lossless

Color Spaces - 4:2:2, 4:4:4. 4:4:4:4

Bit Depths - 8,10 

Resolutions - HQ -1280x720, 1920x1080.  HQX and Lossless - Resolution independent, 24x24 through 8192x4320

Containers/wrappers - AVI, MOV, MXF

Platforms - Win, Mac

Pros - Multi platform professional codecs. Can be decoded and encoded by any NLE that uses Quicktime components or VFW once the codecs are installed. VBR (HQ, HQX) - The bit rate is user selectable. HQX has internal Alpha channel support. The lossless codec appears to be mathematically lossless. Multi-threaded and  32/64 bit.. Freely distributable.

Cons: Not as widely recognized as the Avid codecs or Apple ProRes. HQ and HQX are lossy. Lossless encoded files are extremely large even for a lossless codec. No FFmpeg/FFMBC support

Notes: Grass Valley HQX Whitepaper lists all the technical details about how the HQX codec works. Internally HQX and DNxHR are very similar. Must make an account to download.

UT Video

Color Spaces - RGB/RGBA, 4:2:0, 4:2:2, 4:4:4. 4:4:4:4

Bit Depths - 8,10 

Resolutions - Resolution independent, 24x24 through 8192x4320

Containers/wrappers - AVI, MOV

Platforms - Win, Mac

Pros - Multi platform codec that can be decoded and encoded by any NLE that uses Quicktime components or VFW once the codec is installed.  As of version 16.1.1 the QuickTime Windows codec has been removed. Visually lossless. Multi threaded and 32/64 bit. Alpha channel support. Open Source licensed under Gnu GPL v2.0

Cons: Not a commercial codec so support is limited. 

Notes: Can be compiled for Linux

MagicYUV

Color Spaces - RGB/RGBA, 4:0:0(Grey), 4:2:0, 4:2:2, 4:4:4. 4:4:4:4

Bit Depths - 8, 10, 12/14

Resolutions - Resolution independent, 24x24 through  8192x4320

Containers/wrappers - AVI, MOV

Platforms - Win, Mac, Linux 

Pros - Multi platform codec that can be decoded and encoded by any NLE that uses Quicktime components or VFW once the codec is installed. Multi threaded and 32/64 bit. Alpha channel support. Mathematically lossless. Designed to be extremely fast decoding with low overhead.

Currently available in three versions. The Previous release (1.2-rev2) is now free but no longer maintained. The current release is available in two paid levels Standard and Ultimate. Standard has all color spaces but is limited to a color depth of 8 bit and Ultimate adds high bit depth color @ 10, 12 and 14. 

Special notes on Deep Color: All deep color options should be available in the QuickTime implementation. The VFW codec supports all modes as well but whether or not you can access them is application specific. According to the author there isn't an issue communicating 10 bit+ pixel formats through VFW as there isn't  any technical limitation to prevent it but it is up to the host app to allow it in the first place. Virtualdub Filtermod  and recent builds of Avisynth+  are both examples of VFW programs handling 16 bit deep color through the VFW codec interface without issue. 

Cons: Newer codec and user base still growing. Linux version is decode only for VLC. Files are typically larger than other codecs. 

Notes: There is an SDK C api to incorporate MagicYUV into a program as a native codec which provides the high bit depth color support. (Anybody at FXHOME reading this?) No clue on how much a license might cost. Codec is very fast decoding. Like editing heaven fast. The author opted for larger files in favor of faster decoding.

Apple ProRes

Color Spaces - 4:2:2, 4:4:4. 4:4:4:4

Bit Depths - 10, 12 (12 bit ProRes4444 and ProRes4444 XQ)

Resolutions - Resolution independent, 24x24 through 5120x2700

Containers/wrappers - MOV

Platforms - Win, Mac (Decode only on Win)

Pros: Professional codecs with broad industry support. Considered an industry standard. 12 bit color depth. Alpha channel support with ProRes 4444 and 4444 XQ. Used by many recorders

Cons: Lossy codec. QuickTime based with limited native support on Windows (Adobe CC native support is Read Only). Very limited legally licensed options to create ProRes files on Windows. 

Notes: There are third party options for encoding on Windows both commercial like Magix Vegas 14 Pro and free like FFMpeg or FFMBC. Other options claiming to encode ProRes on Windows are likely based on FFMpeg/FFMBC (i.e. Cinemartin Cinec). 

Cineform

Color Spaces - RGB/RGBA 4:2:2, 4:4:4. 4:4:4:4, CineForm RAW

Bit Depths - 10, 12 (4:2:2 limited to 10 bit)

Resolutions - Resolution independent, 24x24 through 4096x2160 

Containers/wrappers - AVI, MOV 

Platforms - Win, Mac

Pros: Multi platform professional codec. Can be decoded and encoded by any NLE that uses Quicktime components or VFW once the codecs are installed. Natively supported by HitFilm Win, Resolve, Adobe After Effects/Premiere, Fusion and Nuke. Considered Is an industry standard (SMPTE VC-5). VBR - The Quality is user selectable. Wavelet Transform compression. 3D Stream Processing.

Cons: Freely distributable version only supports resolutions up to 1920x1080. All features not necessarily implemented by all programs.

Notes: Comes with GoPro Studio but you have to get at least Studio Premium to go beyond HD resolutions. GoPro Studio Premium  and Professional have been discontinued and the free version Included with Quik Desktop now comes with the unrestricted Cineform codec. Wavelet compression allows for decoding to multiple resolutions at the same time. In theory you can decode to full UHD and a proxy resolution for editing at the same time without additional overhead. 

Useful Tools for Transcoding

Mpeg Streamclip

Platforms: WinMac

Pros: Freely distributable. Uses Quicktime components so can transcode to MOV compatible codecs. Can scale and de-interlace if needed. Favored by FXHOME staff.

Cons: Uses Quicktime components :) No color correction tools. Has not been updated since 2012

Notes: Very useful for getting HDV footage to DNxHD.

ClipToolz Convert

Platforms: Win

UPDATE: This tool is no longer readily available. The author apparently received a cease and desist letter from Apple stating he should stop distributing ClipToolz Convert so he wisely stopped distribution. Now back in full swing with V3!

Pros: Can produce DNxHD and ProRes MOV files. Supports archival formats. Batch processing. Can scale and de-interlace if needed. Has video scopes, time code tools and supports 5.1 audio. Supports several camera formats. Can apply LUT's in certain situations.

Cons: Support is limited. Based on FFmpeg/FFMBC so some operations are limited. Limited codec support for both input and output.

Notes: All in all very good tool but it is based on FFMpeg/FFMBC so ProRes creation is legally in question, certain combinations of operations won't work and sometimes there ca be color conversion problems. 

VirtualDub

 See this thread for more info on setting up VirtualDub

How to Use VirtualDub to fix VFR issues and convert to Cineform

 

More to come.......

 

 

«1

Comments

  • Triem23Triem23 Moderator
    edited March 2015

    Great breakdown on the codecs! 

    Sigh,I just got called a troll for "pointing out the obvious," but here I go again: Others have started this type of thread before, and it always ends up buried and forgotten. As I said in PM, I (or anyone else) really need to do a video tutorial covering editing vs delivery codecs and take that through to Hitfilm import and export. Then Simon Jones can add it to the master tutorial list sticky on top of the forum where it's always easy to find. 

    For now, just bookmark this thread  to reference the next time this topic comes up, because I think your breakdown is better than mine. Oh, quick note: Sony Vegas also does very well with MXF files. 

  • Aladdin4dAladdin4d Moderator
    edited March 2015

    @Triem23 - Reference gone! Can I say "Removed as ordered Captain Obvious!" or is that too much?

     

  • Triem23Triem23 Moderator

    If I ever have the pleasure of meeting Nichelle Nicholls I will show her that photo, and I will never wash the angry, red handprint from my face. 

    Let's go ahead and remove the troll references in this thread. At the time I was a little annoyed, but, honestly my post that offended was brusque, and I meant the apology, but our comments undercut my assertion that we're a friendly forum. There was a misunderstanding, and we'll leave it there. :-) Now, to have something to leave when I delete this paragraph tomorrow... 

    Coincidentally, my work project today was four minutes of opening/closing titles, bumpers and transitions for a Blu-ray/DVD/Broadcast. Animation and composites in Hitfilm, load the hpf file into Vegas Pro 13, adjust to make certain I am broadcast-legal and output a 25mbps mxf video stream for the (Avid) editor with a Dropbox upload. File was rendered 1080 29.97 progressive, since it has to go SD and HD and no one wants to deal with upper/lower fields. 

    Too bad I was told after upload the program master was 720p.

  • A little thanks, to thank and bump this one up

  • Speaking of FFmpeg to encode ProRes, I've been experimenting lately with a small open source application called ShotCut and it seems one of the things it does quite well, IMHO, is export to ProRes by way of FFmpeg. Granted, I'm just importing image sequences and exporting MOVs, but I haven't had any problems as yet.

  • Aladdin4dAladdin4d Moderator

     @Pencilandinc This thread is still a work in progress for me. Thanks for the tip!

  • edited April 2015

     a note about CineForm from their website explaining the option settings :
    "Also for consideration: When selecting a higher quality setting (FilmScan1 versus High for instance) the recorded files are larger.  Be aware that files recorded using higher quality settings demand more CPU for real-time playback than the same file recorded at a lower quality setting.  In case you care why...this is because larger files sizes require more entropy decoding (hence more CPU) than the same content recorded with a lower quality setting."
    @Aladdin4D Is that true for the other codecs ?

  • edited April 2015

    Note for W7 users, the Cineform codec exports AVI with alpha from Vegas!
    options -> encoded format : RGBA 4:4:4:4

    in my tests I found that in Hitfilm the codecs that include an alpha channel  that worked the fastest (through ram preview of a movie with regular rhythm movements, I could see which were being ram-previewed the fastest)

    1. MagicYUV+Alpha  in .mov  + container changed to .avi (through ffmpeg)
    2. MagicYUV+Alpha  in .mov
    3. Cineform +Alpha in .avi

     

  • Just saw this post, awesome. I think it is contributions like this one that helps to make this forum so useful to Hitfilm's community and the FXHome company. Thank you sir for this!

  • I would add XAVC-Intra to a list of Intermediate codecs. Mostly because it is out of the box supported by a strong majority of apps. It supports multiple bit depths and multiple chroma subsampling configurations. The XAVC spec is not resolution independent. Just HD, UHD and 4K.

    My personal preference/bias would be Cineform.

  • @NormanPCN I haven't added XAVC-Intra, or any other flavor of XAVC yet because I haven't hammered down a clear outside path to it and by outside I mean something that isn't NLE dependent for for creation. In theory FFMpeg could work since as you have mentioned before XAVC is x264 at its heart but I'm finding several gotchas all depending on how the FFMpeg binary was built. For the record I think you stumbled on the build issues yourself in this thread on the Vegas forum.

    So far from what I can tell FFMpeg can be built to support XAVC-Intra and its particular specs or XAVC-L and its particular specs but not necessarily both in the same build. This extends to available color depths i.e. you can get 8 bit AVC but not 10 bit AVC and PCM vs LPCM and the A/V combinations and containers you can wrap the output in. However, supposedly if you build a dynamically linked version of FFMpeg in the right way you can get all of the above all of time with the downside of having to unload FFMpeg completely when you want to change from one to the other. I haven't stepped off into rolling my own build to test that rumor though.

  • edited December 2015

    XAVC-Intra is fine with ffmpeg but not XAVC-L. This issue being  the ffmpeg MXF muxer. Long GOP in an MXF container does not work AFAIK.

    XAVC-S is probably a problem for ffmpeg as well since I believe it uses PCM audio in the spec'd MP4 container and ffmpeg will not allow PCM in MP4.

    Anyway Intra is the only variant of the three I would call an intermediate codec.

    edit: The big problem WRT Hitfilm is the native AVC decoder only supports 420 8-bit.

  • @NormanPCN

    "XAVC-Intra is fine with ffmpeg"

    8 bit OR 10 bit but not both in the same build unless the build was dynamically linked. XAVC-Intra supports 8, 10 and 12 bits per channel and even though Hitfilm's decoder won't accept anything over 420 8 bit many other programs do so I think it would be desirable to have a tool that supports at least two of the three bit depths especially for getting HitFilm output into something else.

    See https://ffmpeg.zeranoe.com/forum/viewtopic.php?t=2270 and https://ffmpeg.org/pipermail/ffmpeg-user/2013-January/012769.html for details on 8 vs 10 bit builds

    but not XAVC-L. This issue being  the ffmpeg MXF muxer. Long GOP in an MXF container does not work AFAIK"

    Long GOP in an MXF container apparently can work as long as your muxing specifically to MXF  Op1a. Allegedly there is an FFMpeg build that will do this but it seems more common to use something like bmxlib

     

     

  • "8 bit OR 10 bit but not both in the same build unless the build was dynamically linked."

    Very true indeed. Not a big deal, IMO, to have more than one ffmpeg executable. One for each x264 compiled bitsize. That or the dynamic link. Whatever floats your boat.

    Thanks for the link that listed 10-bit x264 ffmpeg downloads. Not sure I'll use it, but I'll install it anyway. 

    "Long GOP in an MXF container apparently can work as long as your muxing specifically to MXF  Op1a."

    I have only output Op1a and I could not get Long GOP AVC to work in ffmpeg. That was the Vegas thread you referenced. I quickly gave up trying to get it to work since I had no vested interest and the user was happy with the MOV remux.

    Does ffmpeg do Op Atom?  Also, how many apps like  Op Atom beyond Avid.

  • Aladdin4dAladdin4d Moderator
    edited December 2015

    @NormanPCN This is where things get really fuzzy for me and I may very well have said the wrong thing but as near as I can tell according to the FFMBC crowd you don't actually get Op1a with either FFMpeg or FFMBC unless you add the switch "-f mxf_d10" which also makes it d10 compliant only and causes compatibility problems. FFMBC basically gave up and they're using the bmxlib and tools I linked to before for all MXF wrapping except XDCAM 422.

    EDIT: To answer your other question there's all kinds of apps using Op Atom other than Avid especially ones dealing with broadcast transcoding and broadcast hardware. If I had to guess I'd say the biggest reason why would be "Well Avid's doing so it must be right......."

  • edited October 2016

     Please update the MagicYUV codec info in "The Intermediate Codec Thread". It is now widely recognised as the fastest lossless codec for video editing. Enables realtime 4k editing on an average PC. Now being used by Vegas and PremPro users as a VFW codec. I've just started using Hitfilm. Can it transcode 4k into MYUV codec?? Thanks

  • Great thread :)

    IMO one of the big benefits of Cineform is that it can scale up to being basically a raw codec, yet it's surprisingly efficient.

    In fact, it seems that RedCode, which is the best in the biz, inherited a lot from Cineform back in the day. (It's evolved quite a bit since, of course.)

    XAVC is a very good codec also, its popularly has spurred several variants from Sony's competitors like Panasonic and Canon, and documentary filmmakers love them; it's among the most efficient codecs out there, though I wouldn't recommend it for VFX work; it's not great for chroma keying and that sort of thing.

    One benefit of Cineform is that it can scale up to being essentially a raw codec, and I think it can even encode 16-bit color. Working with 16-bit footage gets you spoiled VERY quickly. :)

     

  • "I've just started using Hitfilm. Can it transcode 4k into MYUV codec??"

    Hitfilm is not able to encode to any Video for Windows codec. Hitfilm only uses VfW for decode.

  • edited February 12

    We understand the need for transcoding from compressed long gop camera formats to edit friendly intermediate codecs for 4k editing but "how" is the challenge for many of us who don't want to buy Media Encoder, Vegas, or use GoPro Studio's limited formats - and can't speak "ffmpeg". 

    Assuming Hitfilm agrees, and understands the need, as well as the growing demand for 4k editing and the PC hardware challenge 4k poses, then please add transcoding to the normal program workflow - as we now have in DaVinci Resolve.

    We don't need support for all of the intermediates. If Cineform is good (which it is) and Hitfilm already supports Cineform output. then just a "Transcode to Cineform" option prior to edit please. User could select the Cineform quality for the entire project, select (right click) one or more imported files in the bin and choose "Transcode" prior to edit. If you have 4k and HD clips in the bin you may choose to transcode the 4k clips only.

    For example - The user may want to transcode to the full 4k 10 bit quality of the original files and use the transcoded files to render out, or may choose to transcode at a lower quality (HD) for for smoother project timeline preview with an option to revert to the original files for render. 

    Hitfilm have replaced Adobe After Effects but we are not asking to replace Adobe Media Encoder - just add support for transcoding to one intermediate edit friendly codec for editing.

    Comments welcome :)

  • Triem23Triem23 Moderator

    @FishyAl starting with Hitfilm 2017,the Export Queue can send any timeline, in/out segment, OR INDIVIDUAL CLIP to the edit queue. It's already possible in HF 2017 to set up an entire folder of media for transcoding. 

  • Triem23 - Thanks - I'm suggesting an easier user friendly workflow, that avoids user conversion, integrated into the editor. I used Cineform as an example which is an export option in Pro 2017 (I have Express). If codec testing reveals another intermediate is better like Avid DNx, Grass Valley HQX, UT Video, Magic YUV  etc the conversion process becomes more complex. If we agree transcoding is necessary then add it to the editor. I'm suggesting it's a better solution from a user point of view. We know that 4k editing using  AVC  or HEVC  on the timeline is a problem in Hitfilm, transcoding is a possible solution (and a definite improvement) so it makes sense to add it to the editor.

    For users who may have a problem with the large transcoded intermediate file sizes, then Proxy editing is an obvious solution where the edit software simply creates temporary lower resolution versions of the original 4k files (eg 720p AVC) to edit on the timeline and substitutes the original 4k files for render. (Actually a 720p preview doesn't look bad on a single monitor). It may be easier to add proxies now, until the best intermediate is agreed on and implemented.

    Footnote

    It's interesting to note that Cineform has been around since 2002. Avid DNxHD since 2004. It was recognized then that these codecs were needed for HD workflow. Avid only added 2k & 4k in 2014.

    Star Wars III was shot in HD 10bit (1080p/24). The film was cropped to a 2.40:1 aspect ratio from its native 16:9 frame. As a result, only 817 of the 1080 vertical pixels were actually used. Camera was a Sony HDC 950 which cost  $115,000, 

    4k editing on consumer PCs really is "bleeding edge " technology.

  • "It's already possible in HF 2017 to set up an entire folder of media for transcoding. "

    True, but the Hitfilm naming of each clip output from the timeline is quite unfortunate, IMO, if one is doing a transcode. Now you have to edit each output to get a proper name. Tedious.

  • @FishyAl as stated in multiple other threads, we do want to improve this workflow, please be patient and leave us time to actually implement this new feature.

  • Triem23Triem23 Moderator

    @NormanPCN by default thr Export Queue will assign a comp shot's name as its output file name. Turn media into a comp shot then add the comp shot to Export Queue. 

    @CedricBonnier given that the Export Queue uses a clip or Comp's name as default filename, maybe adding 'Send to Export Queue' to the Media Pool's right+click context menu is the fastest, easiest way to improve/implement a "batch transcode" function? Being able to Ctrl+click a whole bin full of media and send to Export in one click even? I dunno. Just the first thought that came to mind. 

  • edited February 13

    @CedricBonnier - Thanks. 4k editing is a challenge for all NLEs. Please understand I'm not criticizing Hitfilm - just exchanging thoughts and ideas with others on the forum as I'm new to Hitfilm. 

     

  • @Triem23 It seems like the biggest part of what we need is for HitFilm to maintain a mapping between original and proxy media, and be able to load the correct set depending on the need, like the way that Resolve does it.

    That's probably a fair bit more complicated than it sounds, but once it's done, the rest should be hopefully pretty straightforward...

    Hopefully.

  • Triem23Triem23 Moderator

    @WhiteCranePhoto hopefully. :-)  Now I haven't coded in decades, and I don't know the inner workings of Hitfilm beyond what I glean from dev posts and Norman's tests, so my suggestions above are my closest educated guesses as to improve functionality by building onto what's there, so I could be suggesting things that are much harder to implement than I guess. 

  • @Triem23 I'm pushing hard to escape from coding, since the paying coding work around here is invariably corporate software and web apps rather than worthwhile stuff like HitFilm... and since my experience is mostly in that sort of work, I don't have the right expertise for things like gaming that might actually be enjoyable.

    But... I may end up with another coding job unless I get some solid paying film related work soon... buying that camera blew my savings :-/

    Sigh.

    On the bright side, the busy season of production is coming up...

  • Triem23Triem23 Moderator

    @WhiteCranePhoto good luck.  Tough market. 8k for 4k is a good selling point. 

Sign in to comment