Archive for August, 2011

XfcpX – From Canon XF100 to FCPX – a working flow!

Please note: Canon has finally realeased their plugin. If you are still here for the XfcpX tool, please check out version 2 of it here: XfcpX 2

So, you are one of those happy owner’s of the Canon XF100? And you really want to work with Final Cut Pro X now that you’ve paid for it? You have banged your head at the wall, cursing at Apple, Canon and your dog over the fact that you could not import your footage in a manner that made any sense? If that’s you, read on – I may just have the solution you are looking for…and it’s Fast, Free and Lossless (Yeah, that’s what I said!)

UPDATE January 2012: Sorry all, I can see some of you had unanswered comments. My blog was spam-attacked, leaving me with some 8000 comments to sort through before getting to yours. I’ve installed a better spam protection now, so if your comment/question got lost in the clean-up please repost.

So, I too, have been in your situation. I’ve searched the internet high and low for a working solution that made sense. Sure, there are options – you could roundrobbin’ your files through FCP7… Well, that’s a no-go for me; even though I have my trusty FCP7 still installed, it’s on a another boot drive as I did not want to take the chance of messing up my production system. And booting to another OS to ingest my video, is not really an option for me, when I think in workflow terms. So, there’s the other option of the “Best video converter for mac” crap you see spamming all over the place. Is it Aunsoft? Foxreal? Whatever… are they even different products or just rebranding of the same code? Either way, they are $35 and reports claim that they are unstable, hard to do batch stuff in and they bloat the files… The bloating I could live with, disk space is cheap, but they do introduce a transcoding step – and we all know what that means: Loss of quality.
Also, the lack of any kind of workflow support just makes it a non-viable option for me. Daniel Houghton did a nice job of creating an Automator script to help with batch transcoding using Adobe Media Encoder. But I am not too fond of solutions that are too automated. I want options. And Adobe Media Encoder is more money out the window, unless you preown it ;-)

Considering that Canon claims their XF Pro codec is a “real” mpeg2 stream, wrapped in the MXF container, I am not about to accept a transcode of my master material, unless absolutely nessecary. It turns out, I don’t have to ;-)
So, after some investigation, edu-ma-cation and a few buckets of coffee, I came up with an idea of my own – and seeing as it does not look like Canon is going to step up to the plate in the near future, I took the liberty of going ahead and implementing the damn thing as well.

The proverbial tree does not grow into the skies though – read on…

The Good

So, is this the Holy Grail? The ultimate tool? Nope. Does it work? Absolutely yes. And it’s fast as well. Oh, and did I mention, NO transcoding. Basically, I am rewrapping the original mpeg2 stream in a .mov container that FCPX will play nice with – after which you can have FCPX transcode it if needed. But you have your original yuv422p/50Mbps footage going straight into the belly of FCPX – yummy yummy ;-) It’s all possible only due to the brilliant work of the guys doing the whole FFmpeg open source project. So yeah, don’t thank me – thank them… they did the hard work; my little utility is simply wrapping it in a nice UI that will enable it to be used in a decent workflow for us happy XF100 owners ;-)

The Bad

So yeah, I’m not really a Mac programmer. Neither am I a Cocoa specialist or anything fancy. I am also on a limited time-budget. So this is not a pretty program, very Mac’ish or really a nice package or anything like that. Update – I just repackaged and precompiled the whole thing… the installer should be alot easier now

…And the Ugly

And while we’re on the subject of time-budget – Any time spent on stuff like this, is time not spent making money from my customers. This means, that this program is as-is. Don’t expect support, don’t expect bugfixes and don’t expect it to get improved in regards to functionality. However, just below this paragraph I am providing you with a donate link so you can send me a little token of appriciation if you feel like it. Now, let me elaborate on this: Please, do not in any way feel obliged to pay anything for this little utility. I am dead serious – if you use it, and don’t feel like paying there’ll be no hard feelings from my part – I pinky swear; I am just happy you can use it to be productive. I made the code for myself – and it does not cost me a dime (or almost nothing) to make it available to you, so enjoy ;-)
But, if there’s enough funds comming in from this little Paypal link, I may find that I can afford to spend some more time on this program. While there will be bugfixes to whatever annoys me the most, a little funding can go a long way to make the product better. And it can get alot better – stuff like a nice installer, individual file conversion instead of just whole cards, previews of the video files, more options to split sound and video, maybe even a true Log&Transfer kinda thing with setting I’s and O’s on individual clips, better handling of metadata (big one for me) etc. etc. I make no promises though – Java programming for the Mac is not where I get my income from, and a man’s gotta eat you know ;-)

Please make some donations

So, without further ado:


Yeah, so in short – this is what you are going to do:
– Check Prereqs
– Install Java (If needed)
– Install XfcpX
– In…joy! :-)

Check Prereqs

This is developed and tested under Lion – I see no reason for it not to work under Snow Leopard for instance… but I have no clue really. If you try it out, please let me know ;-) Anyways, make sure your Mac is fully up-to-date by clicking the apple icon in the top left of your screen and select “Software Update..” – if you see any packages inthere, install them all unless you have a good reason not to. In order for this guide to work, you should as a minimum have the App Store installed… but there’s other goodies to be had, such as the ProRes codecs that only comes as an update in there for FCPX owners.(But of course, you already did install those – right?)

Install Java

If you don’t already have Java installed, go to and download the latest version of Java – install it. Note: You probably already have Java and can skip this step – but this is the link in case you don’t ;-)

Install XfcpX

Download XfcpX, open the zip file and double click the installer – if all goes well, you should be able to find the utility in your Applications folder (Or use spotlight).

So, what’s going on here?

The utility is fairly simple. I made it in a way that made sense for my workflow. It assumes you used Canon’s XF Utility to backup the cards from your camera. These are your Master files, and should never be touched. I am importing all my cards using the XF utility to a single folder called “Master Files”. What I am saying is, that the Master Folder in XfcpX should basically point to the same directory as your backup location option inside the XF utility ;-)
Once you’ve located this, the right side “Cards to Process” should populate with the cards you have backed up. (They are listed by the date name that XF util uses to name each folder). The Destination Folder in the bottom is up to you. Some place all their converted files in one folder, and import them to FCP from there. I prefer to create a folder structure for each project and place the media there, something like /Media/Customer_name/Project_Name/ – the reason is, that if you use the “use folder names for meta data” thingie inside FCPX, you have prepopulated some keywords/metadata already…always nice !. XfcpX will use the destination folder, to create a single folder for each card processed (same name as XF Util used) and will place all the processed .mov files from the card inside this folder. When you have set the master folder and the destination folder, select the cards you want to process and click “1..2..3..GO!” ;-)
When a card has been fully processed, it will be moved to the Previous Cards list in the left side to clear up some clutter. If you need to reprocess it, you can just click it back to the process list on the right and select it for processing.
As with many of these things, you should not tamper with the folder structure/names of the cards that XF utility backed up – I am dependent on them ;-)

Final note

That’s it… you should now have full quality copies of your video, wrapped in a FCPX friendly .mov container ready to import into FCPX and let it do it’s thang!
You can, in your Event, just select “Import files” and it will eat it all up – but an even better option, if you ask me, is to say “Import from camera”, then click “Open Archive..” and browse to the Destination folder. The reason for this, is that it will display the import window where you can select individual clips with in’s and out’s to import ;-)
Depending on your system, you may experience a greenish flicker on the video when you play it back inside FCPX – don’t be scared, it’s not a “real” problem. The video is fine, will render fine and all that – it’s due to FCPX’s need for speed… if you go to the Preferences in FCPX and click “Playback”, select “Higher Quality” instead of “Better performance” and the problem goes away. This has nothing to do with the rewrapped files, just a performance issue in general – other formats does this too inside FCPX. If you can live with it, rest assured it will render just fine and it’s only a playback issue inside FCPX’s preview(Although, color correction might be abit more tricky :p ).

There you have it – now, forget about the tedious technical stuff and go be creative… shoo, come on, out in the real world and make some footage!

Please make some donations


******************* Known limitations *******************
– XfcpX will not handle Interlaced footage (the 50i, 60i modes etc.). That is to say, it will handle it, but you will get the raw interlaced footage into FCPX with all the artifacts you’d expect. This is due to the fact that I am not converting it. I could probably make an option to convert interlaced footage, but there would have to be a high demand for that. In my mind, Interlaced footage belongs in the past and should be shunned. The 3 key points of this software is to fit in a nice productive workflow, be fast and leave the original footage intact. Converting files, to handle interlaced footage would go against the latter 2.
– On some systems, the resulting .mov files wont play in QuickTime. This has to do with the videos being tagged, improperly, with a FourCC of m2v1 instead of m2v. It’s just the tag though – and the files should play fine, once inside FCPX. It’s on the to-be-fixed list.

******************* Updates below *******************
25-08-2011 – (V1.1c):
– Fixed a bug introduced with the NTSC Audio fix ;-) It resulted in just the Left mono channel being mapped to a stereo channel, leaving right mono sound out of the file. This means any video you converted with the previous version, only have left sound in it – reprocessing of the files is needed, sorry :(

23-08-2011 – (V1.1b):
– Fixes a bug with that produces really small(~400Kb) and useless .mov files. (Due to faulty timecodes for audio in NTSC version of the cam)

22-08-2011 – (V1.1a):
– New version up. Handles directories with spaces now ;-)
– Fixed “Chance to hang when processing large MXF’s”