CFHD to H.264

Wednesday July 23, 2014

It was a 7 minutes video recorded by using GoPro. The size of the video file was 9 GB. So much wrong it does sound for a 7 minutes video with such elephantine size. “8k video or what?” was the expression written all over my face, but it didn’t end there because…

ffmpeg-does-not-recognized-CFHD

… FFmpeg couldn’t even recognize this monstrosity. Video: none (CFHD / 0x44484643), at least there was a hint. This resorted me read about CineForm video format. There is a support ticket on FFmpeg trac dated March 2012 (about 2 years ago) requesting FFmpeg to add CineForm decoder, but unfortunately CineForm is a proprietary format. I am not convinced there will be open source decoder for CF because man, I haven’t heard about this codec. Is it popular?

attempting-to-encode-CFHD-with-VLC

There was an attempt to use VLC’s Convert / Stream function, but please remain skeptic, because it didn’t work. VLC is an open source video player, and for it to have a proprietary decoder would be unlikely. But hey I was desperate let’s pray this will work.

FFmpeg failed, VLC failed. This situation left nothing other than Google.

First option was to use GoPro Studio (commonly known as GPS). Let’s try something simpler first, so the second solution was to install GoPro-CineForm decoder and see if it could work well with iMovie. It worked on my MacBook Pro; the iMovie recognized the video stream, and then I exported the video to AVC format (from 9GB down to 500MB).

first-pass-decode-from-CFHD-wih-iMovie-OSX

p/s: The source’s dimension was 1920x1080, I outputted the video from iMovie down to 1280x720, size-wise. It might have been around 900 MB if the resolution was kept as the original

500 MB was still big.

ffmpeg -i <inputvideo> -c:v libx264 -c:a libfdk_aac <outputvideo>

output-from-source-CFHD-to-first-pass-and-final-output

200 MB. That’s better. If I could compress more.