Decoding: The making of

2020-08-27 conference
Behind the scenes of my PyConline AU 2020 presentation

Decoding: Programming Beyond Text Files

So PyCOnline AU 2020 is all online this year and I decided to prerecord my presentation of Decoding: Programming beyond text files so as not to have to worry about Internet on the day.

This page is some “behind the scenes” info on how I did it and what I’d do differently next time …


Recorded on my Olympus E-M5 mkII which I’ve not really used for video before but it can record 1080p at 50fps so I figured that would be good.

Olympus E-M5 with Fuji 28mm

Lens is a old manual Fuji EBC 28mm f/3.5 on an adaptor (so, equiv 52mm on a m4/3). I picked this one just because it was the right focal length for the shot I wanted and brighter than the zoom at the same length.

I ended up filming at exposure compensation -1.7 to stop the metering getting confused by the dark background.

I shot this in lots of little takes because I wasn’t quite sure how it was all going to fit together and I thought that it’d be easier to fix it up later.

Originally I was planning on chroma-keying (green screening) out my background and putting the slides under my video. Instead I found there was lots of noise in the background so I just chroma-keyed out as much as I could and then put the slides over my video, using “Lighten” to combine them. It mostly worked. There’s a couple of moments where you can see my shoulder through the image.

Microphone setup was an Olympus lapel mic on a long cable, plugged into the camera, but because I kept getting caught up in the cable I ended up dangling it from the ceiling just out of shot.

Terrible microphone setup

This kind of worked but it’s a bit “phasey” … this room is very reflective. I taped some foam to the ceiling to try and reduce the phaseyness but it didn’t help much. I didn’t have a proper adaptor for the mic either so it’s using a cute cassette tape shaped headphone splitter.


In total I recorded:

Quite a few bits had several takes where I flubbed one bit or another, plus every video has a few seconds of lead-in and lead-out, so there ends up being a lot left on the cutting room floor!


These were made with my usual flip.js script and HTML, on the offchance that I want to present this at a real live conference some day I figured I might as well have a real live slide deck. Then I just took PNG screenshots of each slide.

I should really get a better way of doing this together, markdown at the least since writing HTML by hand is terrible.

The stylesheet is meant to look a bit like an old APPLE ][ era computer, with an Apple font, inverse characters, green phosphor colour and a bit of a phosphor glow. It’s not very authentic but I kinda like it.


I edited it down with Davinci Resolve 16 which is fantastic and free.

There’s certainly a learning curve.

I ended up using the Fusion ‘UltraKey’ component to delete the background, which worked okay. The most complicated Fusion code involved:

You can copy Fusion compositions from one clip to another by going into the Fusion mode, click ‘Clips’ up the top to show a list of all your clips, then select one or more clips to copy TO (with left click, like normal) and then middle-click on a clip to copy the Fusion composition FROM. Then you can tweak the exact alignment of stuff in each clip.

There was a lot of white noise on the recording too, so I reduced that in Fairlight.

Mysterious Rendering Error

I had a nasty moment towards the very end when with less than 24 hours to go to submit the video, on the final render I got this error:

davinci resolve error message

Render job 11 failed as the current clip could not be processed. The Fusion composition on the current frame or clip could not be processed successfully

Which isn’t particularly helpful. I still don’t know what it was complaining about. I eventually found an online tip which said you could make Resolve slightly less fussy about frame errors by going to:

Davinci Resolve » Preferences » UI Settings » User » Stop renders when a frame or clip cannot be processed

Which may have left a single glitchy frame behind but so be it. The original message was utterly useless so I have no idea what I could do to fix it. Deleting fusion compositions where the error occurred didn’t help.

(for future reference: Resolve, on Windows 10 Home 1909 18363.1016)

Intermediate Files:

A huge amount of data get created as part of the video generation pipeline. You’d better have somewhere fast to put it. I ended up having to delete a whole bunch of steam games to make enough room!

Final Files:

20 minutes 40 seconds of video:

If I was going to start over today

I’m happy with what I submitted but I’ve learned a lot so if I was going to submit this somewhere else I’d reshoot it with the following changes:

A Couple More Thoughts