ffmpeg - filling in the gaps of imovie

A cool image from the Hubble Space Telescope
which has been post processed by Judy Schmidt - check out

iMovie is great to throwing together a quick video, but it lacks some key video processing features like noise reduction.

Now, if you want to produce an amazingly complex video which is going to win awards, iMovie is not going to fit the bill. It is, on the other hand, just find for stitching together a piece for Youtube etc. In the modern world of video where the content is king not the post processing, lighting and directorship, this is enough.

But what if that content is a bit noisy? What if the camera was struggling with the light levels? Sadly, iMovie is not going to help you one little bit. However, ffmpeg can. It has a interpolation filter which works very well. As for all interpolation filters - one is going to see some 'smearing' of motion but for reasonably high frame rate video (24 fps or above) the effect is quite pleasing.

First - get ffmpeg.
This is a command line tool. If you do not really understand the command line, best stop reading now.

Next - read this post (section 5 is on denoising).
The post shows a bunch of other interesting filtering options. I am not going to pretend I worked all this out and then simply regergitate the author's work - nope - go read :)

Then you can use this command line.
Yes - I know you are just going to copy and paste this command line and try it. Then eventually you might go read about the parameters and how to tweak them. But for now - here is your cut and paste.

./ffmpeg -i IMG_2192.MOV -vf  "yadif,hqdn3d=2.0:2.0:10:10,scale=1280:720" -strict -2 output.mp4

Finally, here is a video I processed this way as an example:

A video on reverb ambience which has been
filtered using ffmpeg to reduce the low light
sensor noise.

The Most Civilised Music Ever

Are the Goldberg Variations the most civilised music ever?

I guess ever is a long time and I also have to restrict my self the the European tradition. Within these limits, I have listened to a very great deal of music in my time. I have heard and loved sounds varying from avant-garde jazz to heavy metal (even death metal) to classical to medieval to synth pop to ambient. Indeed, I have created music in some of these genres. Over all these sounds and ideas, nothing has ever struck me as quite so civilised at the 'Goldbergs'. 

It comes as no shock, on reflection, that the 'Hannibal Lecter Theme' has emerged at the Aria from the Goldberg variations; after all, what better definition of his love of the civilised could be used to contrast his violence? [in the film: https://www.youtube.com/watch?v=Jgza7PwUr6k and in the amazing series]

Yet we must not leave our appreciation of this ultimate achievement in musical refinement at the Aria! No, each variation defines another take on the finer elements of humanity. Like tasting a range of exquisite champagne, each is different, perfectly balanced but clearly a variation on a theme.

Even the unnerving 15th and 25th variations are civilised. The truly civilised person recognises and accepts our darker nature yet restrains its emergence; indeed, we all argue and seek resolution. What better metaphor for the 15th variation could there be?

I am happy to be shouted down yet I think it an impossible task, the Goldberg variations are the most civilise music in the world, ever

Java Advent Calendar 2014

A great place to learn new stuff!

This years I not only am writing 2 posts for the Java Advent Calendar, but I am also learning from it. There are two things to pick up. Obviously one is going to learn something about this or that corner of the Java world. The implications of JIT on garbage collection and scope for example. More subtly and probably more importantly, the calendar shows how a large and diverse range of people think about Java.

I think about Java in a particular way; I am a performance specialist (my day job is analysis and optimisation of latency in C++ systems) and so my posts are dominated by the discussion of such matters. Other people are interested in the language its self and so post stuff like 'A Letter To Santa' which is a great list of more software/syntax oriented requests to enhancements to the Java and the JVM.

Anyhow - go have a browse! Even it you are not an active Java programmer you might get a glimpse into this world.