Reusing vintage footage for Cool Cavemen’s concert intro

Featured

The goal of that project was to illustrate a pre-recorded soundtrack. The latter being to Cool Cavemen what The Ecstasy of Gold is to Metallica: a piece that is played before each show and serve as concert intro.

It’s an original mockup of a radio broadcast, and a tribute to Classic 21 (ex “Radio 21″), the (best) Belgian radio station we used to listen to as teenagers, and still do.

Footage used to produce this video is public domain material found at archive.org. If you’re curious, the detailed list of all sources is available in the credits, at the end of the video.

As for my previous project, I have to warn you that it may not look as funny as for French-speaking audience. That being said, here is the final result:

The challenge of this project was to have video of people speaking in sync with the audio. I suffered a lot trying to make it as convincing as possible. If the final result is far from perfect, I find it to be believable enough for the amount of time I invested in.

As for the tools used to produce this video, I edited it in November with a development version of Kdenlive, under an Ubuntu 11.10. As usual, here is a screenshot of my timeline for reference:

The project is using Kdenlive’s “NTSC 29.97 fps” profile, which produce a 720×486 pixels stream with a pixel aspect ratio of 8/9 and a display aspect ratio of 4/3. I choose this profile as it was the closest to the original videos I downloaded from archive.org.

I composed the credits and title card in Gimp, and tried to mimic the style of that period. This mean approximative composition and abuse of typography:

To enhance the effect, I blurred everything and separated the text blocks in several layers. I then applied to each of them some random movements to add a parallax effect, thus getting closer to the look and feel produced by the imprecise optical process used in the early days of movie making.

Nichrome Preview (and Behind the Scene) video

Featured

Two months ago (October 8th) I shot a video for Cool Cavemen. I haven’t talked about it on this blog yet, let’s fix this right now:

The song is Nichrome, which is a brand new song that will be available on Cool Cavemen’s upcoming album (to be released in 2012). This is the first time Nichrome is made public. The video is only a preview of the song: it only contains the first 2 minutes and the audio track is a demo, not the final studio version.

Demos are used not only for reference, but also for rehearsals when a band member is missing. That’s the case in this video: there is no bass player, but his parts are played in all musician’s headphones. Shooting the video in this playback setup is a huge advantage for me, as it removes all issues related to audio/video synchronizations and tempo deviations.

I shot with my Canon EOS 7D (1080p, 23.976 fps, 1/50s shutter speed) and a Tokina 11-16mm f/2.8 wide open. I used this lens over my 8mm f/3.5 Fish-Eye to save the distorting effects of the latter for others projects.

Shades of magenta were produced by 2 PAR-56 LED cans (controlled in DMX with QLC). I did not initially planned to bring them, but they were lying in the trunk of my car and I never filmed them, so I took the opportunity. Unfortunately, as you can see in the video, the frequency of the PWM that is driving the LEDs is not high enough and generate ugly flickers.

ISO was set to auto as the lighting conditions were really messy. A quick test in the darkest area of the room showed me that ISOs were pushed too high, increasing the noise too much. I avoided this issue by mounting an HDV-Z96 LED light with its CTO diffuser filter, and carefully set its light level (around 60%):

According EXIF data, ISO did not get over 2500 with this method, and was measured at 5000 in the darkest place. Average seems to be around 600. But take these numbers with a big grain of salt as I have no better sources than the .THM preview files generated by the camera for each .MOV clip.

Meta-data also tells me that the white balance was set to auto at 2900K but I remember having set it manually to keep consist images colors. Always according EXIF, color profile was set to standard.

Finally, I created the title cards in Gimp and edited the video in Kdenlive (on Kubuntu 11.04):

And two weeks after releasing Nichrome’s preview video, I edited another one with all left-overs. Here are the outtakes (which may not be as funny to you as for a French-speaking person, sorry):

Making of Omashay’s “Wish You Looked at Me” music video

Featured

Last month I edited the Wish You Looked at Me video clip for the Omashay project. This is a side-project of Cool Cavemen’s saxophonist. The video is finally available on YouTube:

All the video material was shot by Tomasito itself, with his Canon PowerShot SX200IS point-and-shoot camera. This camera produce 30fps 720p clips.

He came to me with all these .mov files, and the idea of combining them into a classical split-screen layout. He had no idea how to do this, so I accepted to help him with my technical knowledge.

I fired up my Kdenlive (v0.8 on Kubuntu 11.04) and in a matter of hours, the project was done. With source videos of 720p, I naturally chose 1080p as the final resolution. I kept the 30fps framerate to not alter the original time resolution.

The most boring part of the edit was the first step, in which we synced all clips together with the reference audio track. Here is how the timeline looked, with one track for each instrument:

We had to work around some annoying Kdenlive bugs, as it had some problems handling so much tracks in parallel. Fortunately these bugs were fixed in a matter of days with a new build of MLT.

Next step was to mark out the structure of the song. Tomasito placed blue markers along the timeline, and we cut all tracks following that structure. It resulted in a matrix of clips:

Then for each segment, we choose the 4 clips that we wanted to show and deleted the others:

Then I created 4 special tracks to which I applied a global positioning and scaling effect, to have each track fill one corner of the screen. We moved there all the clips we selected in the previous step, and cleaned up the timeline a bit:

At this stage the project was mostly done. It was just a matter of adding intro, outro and fade in/out to obtain our final video:

Tomasito basically did the whole editing of the project. And I have some evidences:

I just showed him how to manipulate Kdenlive timelines, and cut/move/paste clips, and he was absolutely autonomous in a matter of minutes. I just did the transitions, the title cards integration and the screen splitting. I’m not sure I deserve the title of editor for this project, but he still insisted to add me in the credits… :)

Of course split-screen is far from new and was done a million times before. But it’s a simple yet effective concept that require absolutely no investment (apart time). This also gave me the opportunity to play again with Kdenlive and assess its user-friendliness and edit capabilities on a real project. But at the end, it was just a great excuse to work with a friend on a little video project ! :)

Quartz Composer & Behringer BCF-2000 MIDI controller tests

Featured

A year ago I explored visual control by plugging a generic Behringer BCF2000 MIDI controller in Apple’s Quartz Composer. My initial intention was to drive some animations and visuals during Cool Cavemen‘s live concerts. Now that’s I’ve abandonned the idea of using Quartz Composer, it’s time to share these stuff with you.

So here is my MIDI playground:

Nothing exceptionnal to see here. It’s just a bunch of dumb patches to control the color of the background screen and its intensity. The latter can be modulated by pulses with different profiles, and also by the sound captured by the MacBook‘s microphone. The source composition is downloadable.

Just for the sake of it, I’ve recorded a quick and dirty demo with my Canon 7D (set to 1080p, 25 fps and 1/50 shutter speed) and the fantastic Tokina 11-16mm f/2.8:

Here is the video, which I edited with Kdenlive:

The audio is sourced from Jamendo. It’s the track One Year written by Paolo Lunardi for his album Essential, and released under a Creative Common BY-SA v3.0 license (thus making my video subject to the same license).

Using latest stable Kdenlive with a development version of MLT

Today I stumble upon a bug in the Kdenlive 0.7.8 running on my Kubuntu 10.10: the crop filter was messing with the display ratio of my video clips. Digging the web I found a bug report that was really close to my problem. According to the comments, this issue was fixed in the upcoming version of MLT. Is that bug the one I encountered ? The only way to find out was to install the development version of MLT. Here is how I did it…

First, make sure to use the latest stable Kdenlive stack for you system. For me, the Sunab’s alternative repository for Kubuntu 10.10 was the ultimate source:

sudo apt-get update && sudo apt-get install kdenlive

The idea is to keep the version of Kdenlive installed above, and replace the pre-packaged MLT on our system with a custom development version of our choice.

But first, we’ll install all the libraries required to build MLT from sources:

sudo apt-get install libavdevice-dev libswscale-dev libvorbis-dev libsox-dev libsamplerate-dev frei0r-plugins-dev libdv-dev libavformat-dev libquicktime-dev libxml2-dev libsdl-dev libsdl-image1.2-dev

Let’s now remove the installed MLT. If we use apt-get or KPackageKit, this will remove Kdenlive. So we’ll use the following command to remove MLT while ignoring all the dependencies:

sudo dpkg --remove --force-depends libmlt2 libmlt++3 libmlt-data melt

At this point, and every time we try to use it, apt will complain of broken Kdenlive dependencies, and will try to remove it. This mean we can’t upgrade other packages on the system.

To avoid this issue, I tried to freeze the state in which Kdenlive and MLT are, by setting the hold flag on kdenlive, kdenlive-data, libmlt2, libmlt++3, libmlt-data and melt packages. I tried with both dpkg and aptitude, but unfortunately it doesn’t work as expected. So we’ll continue our hack anyway…

Let’s get MLT sources:

git clone git://mltframework.org/mlt.git

The command above will give you the latest development version. But if you target a particular revision (like commit 21a3f68 in my case), you have to use this additional command:

git checkout 21a3f68

We can now follow the procedure detailed in the Kdenlive manual:

cd mlt
./configure --prefix=/usr --enable-gpl
make clean
make
sudo make install

That’s it ! Now you can launch Kdenlive, and if you run the wizard, you’ll see that the MLT version on your system is the latest:

Oh, and by the way, it fixed my problem with the crop filter ! :)

Finally, if you want to revert the mess we created on the system, you have to remove the MLT we built in place:

sudo rm -rf /usr/lib/libmlt*
sudo rm -rf /usr/lib/mlt*
sudo rm -rf /usr/lib/pkgconfig/mlt*
sudo rm -rf /usr/include/mlt*
sudo rm -rf /usr/share/mlt*

I came with the list above by searching my system with the following command:

sudo find / -path "/home" -prune -or -iname "*mlt*" -print -or -iname "*melt*" -print

Then, we can let apt handle Kdenlive and MLT properly and get back to the pre-packaged binaries:

sudo apt-get remove kdenlive && sudo apt-get update && sudo apt-get install kdenlive

Making of “Info TGV” Android app video

Featured

Last week I was called by one of my co-worker from Uperto (the open-source division of Devoteam). He knew I worked on some video projects for my band, so he asked me if I wanted to help him create one. The video was meant to be released 5 days later, so we clearly were in a hurry. However this was a great oportunity to play with my Canon EOS 7D, so I accepted ! :)

The goal of the video was to show off an Android application we made, for a contest organized by SNCF (the french national railroad). The application, that we simply named Info TGV, is designed to centralize informations for on-board staff. This application will give train personnel better insights when delays or other kind of traffic perturbations arise.

Here is the final video we managed to create:

Now let’s talk about what happened behind the scenes ! :)

Shooting

In all of my projects, I want to use free and open-source software, and push their usage for every step of the creation workflow. For video recording, there is no open-source firmware for the 7D. Sadly, the Magic Lantern community seems to have reached a dead-end regarding 7D support. I’m quite sad as I choosed the 7D a year ago for 2 things: its video capabilities and the potential hackability of this camera (extrapolating Magic Lantern’s success on the 5D Mark II). But this doesn’t stop me to get usable footages. Far from it.

For this video, I choose to use my Sigma 30mm f/1.4 lens as it’s the fastest lens I have today. I wanted to reduce the depth of field as much as I can to emphasize the screen of the HTC Desire, as all the important “action” takes place in the plane of the phone’s screen.

So I set my 7D to record in 1080p at 25 fps, open the lens at f/1.4 and set the shutter speed to a traditional 1/50s. I then set the ISO to 160 (which is the lowest native ISO value available on the 7D). Still, the final image was over-exposed so I attached a variable ND-filter to the lens and tuned it until I had an acceptable result. I finally customized the white balance to match the ambient light temperature.

Here is a snapshot of this first test on my Samsung Galaxy S (notice the strong vignetting created by the ND-filter):

Here is how this first test setup looked like:

All these parameters were calibrated for an afternoon shooting session, but we really started to record in the evening (look at the phone’s clock in the video!). Because of this delay, I lost the white stripe of natural light coming from the top of the background. At the last minute, I started to play with the white balance. Then I changed my mind and removed the ND-filter. And closed the lens to f/3.5 to get a more manageable depth of field. In a word, I messed up all my initial settings resulting in a final video looking worse (in my opinion) compared to my first test. The better is the enemy of the good

But there is something I’m quite happy with from my last minute changes: dimming the phone’s screen brightness. Phone screens are so powerful nowadays that they create clipped highlights, thus reducing the readability of black characters on white background.

Here is a photo of the final setup, in which I marked the focus plan with black electric tape:

As you can see in the final video, I have some aliasing issues due to the pixelated nature of the phone’s screen and the line skipping happening on 7D’s CMOS sensor. I tried to reduce the aliasing by moving the phone to a distance were the natural softness of the Sigma lens will occur. I didn’t really succeed as it’s really hard to maintain a constant distance to the lens while holding the phone by hand.

Yes, I could have tried to put the phone on a stand but I really wanted to show the app on a real phone, into real hands, as to make it clear there was no special effects or compositing in action. The application is real, it’s running on bare metal, it’s not a mockup, showing that Uperto has tough engineers getting things done ! ;)

By the way, about hands: there a trick involved here. The left hand is mine, but the right one is my co-worker’s. There was a big advantage using this technic: with an eye on the 7D’s rear LCD monitor, I can fully concentrate on the image and micro-adjust the distance of the phone to the lens. In the same time, my co-worker can focus (pardon the pun) on the action and follow the script. The only time when you can see my right hand is when I take the Acer Liquid E to demonstrate the propagation of messages via Twitter:

Video editing

For video editing, I knew I’ll not be able to manipulate my 7D’s files natively. At least not with the default packages bundled with my Kubuntu 10.04. So monday morning I started to compile the trunk version of x264, FFmpeg and MLT. Then I realized a brand new version of Kdenlive (v0.7.8) was released. How did I missed such an important news about my favorite NLE ? :) Compliments must go to the Kdenlive team for providing up to date packages and all their dependencies !

So I did the entire video editing with Kdenlive. Here is what the final project looks like in the timeline:

Inter-title cards were created from scratch with Gimp:

Audio

Let’s talk audio now. I personally want to thanks Tomasito, Cool Cavemen’s saxophonist, who lends me his Shure Beta57A microphone and his Line 6 POD Studio UX1 interface for this project. With electrical tape, I attached the microphone on my Gorillapod, which serves as a mic stand. I used this setup to record Arnaud’s voice:

I wanted to record the speach on my linux machine but I didn’t managed to compile the Line 6 open-source drivers. In fact the module compiled but refused to load:

Sep 20 22:02:47 kev-laptop kernel: [  717.905187] line6usb: Unknown symbol snd_rawmidi_receive
Sep 20 22:02:47 kev-laptop kernel: [  717.905321] line6usb: disagrees about version of symbol snd_ctl_add
Sep 20 22:02:47 kev-laptop kernel: [  717.905323] line6usb: Unknown symbol snd_ctl_add
Sep 20 22:02:47 kev-laptop kernel: [  717.905379] line6usb: disagrees about version of symbol snd_pcm_new
Sep 20 22:02:47 kev-laptop kernel: [  717.905380] line6usb: Unknown symbol snd_pcm_new
Sep 20 22:02:47 kev-laptop kernel: [  717.905439] line6usb: disagrees about version of symbol snd_card_register
Sep 20 22:02:47 kev-laptop kernel: [  717.905440] line6usb: Unknown symbol snd_card_register
Sep 20 22:02:47 kev-laptop kernel: [  717.905498] line6usb: disagrees about version of symbol snd_card_free
Sep 20 22:02:47 kev-laptop kernel: [  717.905499] line6usb: Unknown symbol snd_card_free
Sep 20 22:02:47 kev-laptop kernel: [  717.905557] line6usb: disagrees about version of symbol snd_pcm_lib_preallocate_pages_for_all
Sep 20 22:02:47 kev-laptop kernel: [  717.905559] line6usb: Unknown symbol snd_pcm_lib_preallocate_pages_for_all
Sep 20 22:02:47 kev-laptop kernel: [  717.905667] line6usb: disagrees about version of symbol snd_pcm_stop
Sep 20 22:02:47 kev-laptop kernel: [  717.905668] line6usb: Unknown symbol snd_pcm_stop
Sep 20 22:02:47 kev-laptop kernel: [  717.905917] line6usb: disagrees about version of symbol snd_ctl_new1
Sep 20 22:02:47 kev-laptop kernel: [  717.905918] line6usb: Unknown symbol snd_ctl_new1
Sep 20 22:02:47 kev-laptop kernel: [  717.906043] line6usb: Unknown symbol snd_rawmidi_transmit_ack
Sep 20 22:02:47 kev-laptop kernel: [  717.906261] line6usb: disagrees about version of symbol snd_pcm_hw_constraint_ratdens
Sep 20 22:02:47 kev-laptop kernel: [  717.906262] line6usb: Unknown symbol snd_pcm_hw_constraint_ratdens
Sep 20 22:02:47 kev-laptop kernel: [  717.906379] line6usb: disagrees about version of symbol snd_pcm_lib_malloc_pages
Sep 20 22:02:47 kev-laptop kernel: [  717.906381] line6usb: Unknown symbol snd_pcm_lib_malloc_pages
Sep 20 22:02:47 kev-laptop kernel: [  717.906437] line6usb: disagrees about version of symbol snd_pcm_lib_ioctl
Sep 20 22:02:47 kev-laptop kernel: [  717.906439] line6usb: Unknown symbol snd_pcm_lib_ioctl
Sep 20 22:02:47 kev-laptop kernel: [  717.906546] line6usb: disagrees about version of symbol snd_pcm_lib_free_pages
Sep 20 22:02:47 kev-laptop kernel: [  717.906547] line6usb: Unknown symbol snd_pcm_lib_free_pages
Sep 20 22:02:47 kev-laptop kernel: [  717.906617] line6usb: Unknown symbol snd_rawmidi_transmit_peek
Sep 20 22:02:47 kev-laptop kernel: [  717.906771] line6usb: disagrees about version of symbol snd_pcm_set_ops
Sep 20 22:02:47 kev-laptop kernel: [  717.906773] line6usb: Unknown symbol snd_pcm_set_ops
Sep 20 22:02:47 kev-laptop kernel: [  717.906963] line6usb: disagrees about version of symbol snd_pcm_suspend_all
Sep 20 22:02:47 kev-laptop kernel: [  717.906965] line6usb: Unknown symbol snd_pcm_suspend_all
Sep 20 22:02:47 kev-laptop kernel: [  717.907035] line6usb: Unknown symbol snd_rawmidi_new
Sep 20 22:02:47 kev-laptop kernel: [  717.907095] line6usb: disagrees about version of symbol snd_card_disconnect
Sep 20 22:02:47 kev-laptop kernel: [  717.907097] line6usb: Unknown symbol snd_card_disconnect
Sep 20 22:02:47 kev-laptop kernel: [  717.907230] line6usb: Unknown symbol snd_rawmidi_set_ops
Sep 20 22:02:47 kev-laptop kernel: [  717.907413] line6usb: disagrees about version of symbol snd_card_create
Sep 20 22:02:47 kev-laptop kernel: [  717.907414] line6usb: Unknown symbol snd_card_create
Sep 20 22:02:47 kev-laptop kernel: [  717.907474] line6usb: disagrees about version of symbol snd_pcm_period_elapsed
Sep 20 22:02:47 kev-laptop kernel: [  717.907475] line6usb: Unknown symbol snd_pcm_period_elapsed

Against my will, and to not waste time, I resigned myself to use a Windows machine lying around the office. I installed Audacity and the Windows drivers, then plugged the pod. And voilĂ , I had a portable recording studio.

Again, as we were in a hurry, we didn’t paid close attention to the way Arnaud was speaking in the mic. Thus the quality of the original take was not fantastic. To me it was good enough for the intended purpose.

When I gave the raw recording to Thomas for mixing, he didn’t take long for him to realize how bad we were at recording ! Even without knowing how we proceed to record and what the setup looked like, he pointed out all the stuff we did wrong. I know him for a long time now, but he still amaze me with his technical and practical knowledge about audio stuff. I really want to thanks him for his help on this project !

By the way, if you’re looking to record/mix/master any audio material (from a simple voice-over to a full band), I really recommend you to contact his studio. And tell him you heard of him by reading my blog, he may give you a discount ! ;)

Epilogue

As I concentrated all my efforts towards the creation of the video, I don’t have many details about the application development itself. But coding the android app was, without a doubt, the biggest chunk of work of this project. It involves two of our best Andoid developpers (Jeremy and Paul) and our in-house Photoshop geek for the design. The project was lead by Arnaud.

The whole project was completed in no time and virtually no budget thanks to the dedication and effort of Uperto’s staff. Everybody in Uperto, from management to developpers, was fantastic. It really makes this team unique.

This project was a great oportunity for me to test my video skills. In a sense, it was my first professionnal assignment: I had a limited time, an inflexible deadline and a clear goal. But still, this type of activity falls into my hobby category. I have so much things to learn…

This project is also the first time I edit 1080p footage from my 7D in Kdenlive. This doesn’t mean it’s the first time I shoot with my 7D. In fact I shoot videos in various formats and setup for about a year. But my shooting skills only starts to be acceptable. My other projects involving 7D footages are currently on hold for various reasons (mostly more important stuff to do). That’s why I hadn’t published anything on the web since then. But I expect this situation to change soon ! :D