I’ve had an on-going conversation with Gamaliel about using GoPro Cineform in Final Cut Pro X.
He shoots 4K video using a GoPro camera. He then converts it to GoPro Cineform using GoPro Studio for editing in FCP X. But, when he exports the footage it looks terrible; green horizontal lines running throughout the frame.
GoPro Cineform is a high-quality codec, similar to ProRes and DNxHD, in that it is optimized for high quality and efficient editing. Adobe uses it extensively as part of Premiere; especially on Windows. With the death of QuickTime on Windows, having a high-quality video codec for editing is essential.
Because Cineform is already “optimized,” there should be no need to convert it to ProRes in order to edit and export it. However, FCP X only exports a very limited number of codecs, even if the codec you are using does not require conversion.
So, Gama asked:
I have always assumed that if you imported a high-quality codec into Final Cut Pro X that did not require optimization, you could always output that same codec. My assumption was wrong. FCP X limits export to only a select number of codecs; none of which are GoPro Cineform.
Here, I think Apple is being unnecessarily restrictive; especially given the death of QuickTime on Windows and the need to support more non-QuickTime codecs. FCP X should support a “codec pass-through mode” during export for files that don’t require rendering.
Second, there is a serious bug in GoPro Studio that damages high-resolution GoPro images that is not being fixed by GoPro.
While I understand the reasons, as you’ll read below, I think this is a poor decision on GoPro’s part; especially given the volume of 4K images currently being shot using GoPro gear.
PROBLEM 1: NATIVE EXPORT
The best way to export a high-quality file from Final Cut Pro X is to use File > Share > Master File. In the Settings menu, illustrated above, there are a number of different codecs and options to choose from.
While these include some excellent choices, notably absent are any from the DNx family, which is the native codec for Avid, and Cineform, which is becoming the native codec for Premiere. Both of these codecs provide excellent results and both are already optimized for video editing. There is no need to convert them to ProRes for either quality or efficiency; though it may make sense from the point of view of standardizing your workflow.
NOTE: I can understand Final Cut not supporting Cineform or DNx directly out of the box, many users won’t need them and there are probably significant licensing issues . However, for editors that have licensed and installed either of these two codecs, it seems to me that FCP X should be able to export these formats.
In doing some research, I read this comment from Apple:
“ProRes is designed specifically to minimize generational loss when transcoding and creating multiple generations. It is without a doubt a better choice for transcoding and generation loss than any other codec in common use today. Whenever you render in FCP X, you are going to ProRes anyway. [Render settings are determined when you create a new project in FCP X and all options are ProRes.]
“Why transcode again to CineForm if you don’t have to? There are no deliverables that require CineForm. If you are uploading to a video website, you will be transcoding to their codec. If you are placing [native Cineform files] on your own website, you will have playback issues and are better off converting to H.264. If you are putting it on [an optical] disc you are converting to MPEG-2.”
In other words, because all rendering inside Final Cut is done using ProRes, it doesn’t make sense to convert those ProRes renders back to Cineform during final export, but, instead, convert the rest of the unrendered Cineform to ProRes.
The workaround is to export an XML file, which references the original Cineform media, then import that into, say, DaVinci Resolve for final color grading and export. This is also the best process for working with high-end formats such as RED and RAW files.
I can understand Apple’s justifiable pride in ProRes, it is an excellent codec. But, with Apple never fully supporting ProRes on Windows and it’s decision to end-of-life QuickTime support on Windows, Final Cut will be required to work with more Windows-encoded media than ever. And the current export options seem to me to be unnecessarily restrictive.
PROBLEM 2: GOPRO STUDIO HAS A MAJOR BUG
Gama continued to research the image quality problems with the GoPro footage. Given the ubiquity of GoPro cameras, I was surprised at what he found. Here’s what he sent me:
“Larry, it is possible to do what I need [ with my GoPro footage] but there is a bug in [GoPro Studio] that [GoPro] didn’t fix. Here is the email I got from cineform explaining this.
– – –
“Okay I see what is happening. My first render that worked was HD resolution. When I tried a UHD export, I also get the lines.
This is actually a bug that I reported two years ago when we discontinued the paid versions of GoPro Studio and chose to only offer the free version. At the time, the free version only supported HD. We had intended to remove the licensing restriction from the free version to allow it to encode higher than HD. That work was never done, and, like I said, I reported it as a bug and tried following up on it many times… to no avail. I don’t know if you know, but the team responsible for GoPro Studio has been let go as GoPro is focusing more on Quik and mobile apps now so no new development or bug fixes are going into GoPro Studio.
Part of the reason this work was never done has to do with Apple’s sandboxing of their products and their diminishing support for QuickTime. Apple restricts 3rd party codecs from being seen by FCP/Compressor without the use of QuickTime and they have publicly stated that QuickTime is being retired. So our engineers did not pursue fixing something in a legacy product.
What we have done, instead, is to make the codec available to 3rd parties as part of our CineForm SDK. Adobe has taken advantage of this and incorporated CineForm into their products and Blackmagic Design has been working on this as well. For you to be able to use CineForm in FCP or Compressor (in 4K) at this point, would require Apple to use our SDK and incorporate it themselves.
Sorry that this is probably not what you want to hear… it’s not what I wanted to have to say. But this is where we are at.
Let me know if you have any questions.
CineForm | GoPro”
So, in summary, GoPro Studio works using HD footage, but damages all images at higher resolutions, such as 4K. I can understand GoPro’s decision to not fix bugs in GoPro Studio for legacy QuickTime files, but this still leaves a lot of us with a big hole in our workflow.
The workaround is to find a replacement for GoPro Studio, which can be done using 3rd-party tools from Boris FX or Red Giant, but isn’t as convenient.
But, for me, the bigger takeaway is that as Apple continues to move away from QuickTime, it would be good if it would enable better support for other industry standard editing codecs such as Cineform or DNx. ProRes is excellent, but it isn’t enough.
3 Responses to Problems Between Apple Final Cut Pro X and GoPro Cineform
I am having an issue with Go Pro footage in Final Cut X. I have been editing off the same cameras and settings for a few years and all off a sudden I am getting gama shifts on footage. When I play with the footage clicking off broadcast safe or Colour Finale will fix the issue in a clip at other time I add broadcast safe and it eliminates the problem.It can happen on any clip and seems more common if there is a transition. Any help would be welcomE… I have trashed preferences and tried optimised and original footage.
I don’t have an answer – I suggest you contact Apple Support and speak to a Tier 2 rep.
I usually have gamma shift if I try to edit Cineform or DNxHD directly in FCPX. I batch render everything to Prores in Compressor first. Then there’s no gamma shifts when I bring it into FCPX. But recently I haven’t been able to install the GoPro Cineform codec for Compressor to transcode Cineform. Been having to use Adobe Media Encoder to transcode.