Reverse Engineering the GoPro Cineform codec

Screen Shot 01-08-16 at 11.44 AMThis is a pretty technical article, but one I thought our reader would find interesting. We were one of the first partners CineForm had and we are a gig fan of their technology. Long before they were purchased by GoPro. In the early days of DSLR video, using the Cineform CODEC made editing DSLR footage with Adobe Premeire, SONY Vegas and Final Cut Pro so much easier and reliable. by Kieran Kunhya Following the fine traditions of great codec reverse engineers it has now become the norm to write-up the trials and tribulations of the process. History Basically for many years nobody in the open-source world really cared about the Cineform codec (aka. CFHD, Cineform HD etc) - it’s a niche wavelet codec that if uploaded to Youtube, Facebook or Vimeo fails to decode and so clearly isn’t important enough for these sites to go and license a proprietary decoder. But recently GoPro bought Cineform and made it the default output in GoPro Studio, their editor, and Adobe Premiere added it as an output option. It appears the main goal of using CFHD is to let people edit 4K files easily on underpowered hardware and/or systems with poorly performing proprietary (no alliteration intended) H264 decoders (seriously, just use libavcodec, it’s far better than anything anyone will license to you). Worse still it has what appears to be a very convoluted binary decoder when looked at in a disassembler making the process possible very painful and so the community worked on supporting lower-hanging fruit instead. Standardisation (kinda) This all changed in 2014 with the following headline: “GoPro® CineForm Codec Standardized by SMPTE® as the VC-5 Standard” — unfortunately the open-source world doesn’t like paying SMPTE for standards developed by a secret club (more on that another day). But nonetheless it looked like these files could be decoded one day by someone who felt like stumping up the cash. Unfortunately, about 1.5 years later, for $dayjob reasons I had to become a SMPTE personal member to get hold of some other standards and so I now had access to all them. read more...

Leave a comment

Please note, comments must be approved before they are published

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.