How I made my Frankenstein movie

Updated: March 9, 2011

By now, you have watched my extremely successful, Avatar-quality Frankenstein movie. And you may be wondering how the hell did I make it. No worries, today, I will teach you all there is to know, so you can transition from being a multimedia-noob into a highly sophisticated movie director and editor. Of course, you still need the idea, but if you get the effects right, you'll score massively.

We're talking video capture, editing, merging clips, changing the audio and video codecs, size and bitrate, embedding subtitles into the clip, creating all kinds of posh effects like fade out, sepia, old movie, and others, creating short animations from still images, and so much more. In this article, I'll walk you through my phenomenal production and show you the tools and gadgets you need to become a media mogul. Best of all, the entire arsenal is free and runs on Linux!


So follow me.

Record your project

I recorded the project using my Canon PowerShot A520 camera, using 640x480px resolution. I took several takes of each scene, to make sure I had the perfect one for the final movie. The recording took almost two hours, what with all the delicate preparations. Finding the right props took several days, but this is not specifically related to the multimedia part of it, more to the general idea of your project.

Piece all parts together

Finished with the filming, I downloaded the movies. If you need help here, you may want to take a look at digiKam. My first task was to choose the right parts and splice them together, trimming unneeded frames at the start and end of each one. I used Avidemux for this purpose. I did not change the encoding yet, just the basic trim and shave.

Avidemux crop


Alternatively, if you're not comfortable with Avidemux, you can try VirtualDub, which has an extremely friendly interface for trimming. It works reasonably well using Wine.


Once the parts were in good order, I combined them together. There are many ways you can do this in Linux. Personally, I think the fastest and the simplest way of doing it is by running mencoder. If mencoder is not installed, grab it from the repositories. Since I did the job on Ubuntu, the correct sequence to get mencoder installed is:

sudo apt-get install mencoder

And then:

mencoder -oac copy -ovc copy p1.avi p2.avi p3.avi -o out.avi

The options -oac and -oav specify the audio and video codecs, respectively. We use copy, which means just direct stream the data, without any manipulation. -o flag specifies the output file. The order of parts you wish to splice has a meaning, so plan wisely. Please note that this command will not work if your parts have varying framerate, bitrate or codecs, which is why you should do additional manipulation only after you have combined the parts. We'll seen an example of this later on, as well as how to fix that.

Next step, basic manipulation with Avidemux

Avidemux is a powerful program, with lots of functionality. You can use it to change the container format, the codec and use all sorts of post-processing filters that will enhance your audio and video. However, while it is a great program, Kdenlive is even more powerful when it comes to video. Which is why I left the more complex tasks for later. For now, I only changed the framerate and the codec, without touching the encapsulating format. Oh, yes please note the subtle yet critical difference. AVI, MPEG, MKV, etc are video formats, but they do not tell us anything how the video data is encoded and decoded. This is exactly what the codec does.



Before doing my Frankenstein movie, I have never used Kdenlive. Therefore, I was tremendously surprised to discover its simplicity and power. Without reading any manuals, I managed to complete all my tasks by just fiddling with the menu options, which are friendly and intuitive.


The one step that may not seem trivial to new users is that the project file is not the video itself; rather, the project is a collection of audio and video tracks, assembled together into one or more media files. To begin working on your movie, you will need to import a clip into your existing project. After selecting it, you will have the ability to start manipulating it.

Add clip

In the Effects List, you will be able to choose one or more audio and video effects. Double-click an effect to add it. In the left pane, click on the Effects Stack to switch the view from the Project Tree. You can then manually select and unselect your stacked effects or fine-tune the options. In the Project Monitor pane on the right side, you will be able to play the clip and see how your effects affect the clip.



Effects List Project Monitor

I chose a handful of effects, including Pitch Shift, Oldfilm, Scratchlines, Technicolor, Sepia. The order of effects is important, as any new effect will work on the changed layer. Once you are done with the effects, it's time for rendering.

The rendering thingie

Depending on the codecs installed on your machine, you will have one or more output formats available, including video size and framerate. Again, the one non-intuitive part of the Kdenlive interface is the actual rendering. Seemingly, there's no Start button anywhere. But if you click on the Render to File dropdown and choose either Render to File or Generate script, the project will be processed and your output video saved.

Render button



So now we have a movie full of fancy audio and video effects. But it is still far from complete. We need to add subtitles and we need to add an intro clip. Rather than blasting with the experiment straight away, I decided to add two transition pieces, approx. three seconds long each, reading Dedoimedo and whatnot, as befitting a high-quality production like my own. But first, let's play with the subtitles.

Subtitles, Subtitle Editor

We've seen Subtitle Editor before. It's a handsome, friendly program that will do what you need. Now, the simple secret of subtitles is that subtitles are just special text files. In fact, ordinary files with tagged text that let video programs know when to display certain sentences and for how long to show them on the screen. As simple as that. Once you know this, creating good subtitles is the matter of knowing two languages well and timing your work properly. The above-mentioned program will do just that.

You can load the movie using an external player and then scroll to relevant scenes. BTW, the default external player is MPlayer, so you may want to install it first, to make sure everything works smoothly. Then, in the bottom panel, type down the text and specify the on-screen duration.



You may need a few attempts to get it right. Make sure your subtitles do not linger too long - or flash too fast. If you're not comfortable using Subtitle Editor, you can work in any text editor. Your subtitle files will need to bear the extension .sub or .srt type. There are other types of subtitles, but for now, these two will work just fine.


Before burning in the subtitles, you can test your work in decent player capable of reading subtitles. For instance, VLC. Now, you should aim for a slight lost-in-translation effect and deliberate make puns. You should also phrase some of your sentences weirdly, so they have a foreign tingle. Otherwise, it won't feel as authentic.


Embed subtitles

Once you're satisfied with your subtitles work, it's time to embed them. There are two ways you can do this. The fast way is via the command line. The slower but more newb-friendly way is by using Avidemux. We will see both.

Hard way

First the hard way.

transcode -i movie.avi -x mplayer="-sub" -o movie-sub.avi -y xvid

transcode is another neat program. What we do here is fairly straightforward. -i specifies the input file. -x tells the program to import the subtitles using mplayer; you should have Mplayer installed, naturally. -sub specifies the type of import, in our case subtitles, and the name of the subtitles file. -o specifies the output. -y xvid tell transcode to encode the output in the xvid codec. This is our first codec manipulation. Please note that some video formats and codecs do not support embedded subtitles, so you might want to spend some time reading.

Easy way

Now, let's try the easy way. Avidemux, please.

After choosing the encapsulating format the the codec, click on Filters once again. In the Available Filters, go to Subtitles > Subtitler. Click Configure to make changes.


When configuring the subtitles, you will need to specify the subtitles file AND the font. Without the font, it won't work. You will need to choose a TrueType Font (TTF) of some kind, like Arial, for instance. If you do not know where your fonts are located, you can search for them. For instance, from the command line, updatedb to update the local database of all files first, then locate <font name> to search for the desired font.


Be careful when changing the initial delay. I would recommend against it, to avoid synchronization problems, especially if you have timed your subtitles correctly. If your video is very long and the subtitles are offset by a few seconds, then you may want to consider the delay. Finally, choose the font color, size and the subtitles position.


Now save your video and test the output.

Intro transition

All right, now we need the intro transition. In my case, it's a very simple Dedoimedo presents, The Frankenstein Experiment. However, it had to be done with style. The first thing I did was create the static images in GIMP. Nothing fancy, just plain black background the same size as the output video, with white text written and centered. I saved the two slides individually.


Now, how do you turn a static image into a video?

Well, the answer is simple. If you think about it, videos are collections of still images. What defines how many still images there are is the frame rate. For instance, a framerate of 24 fps means there are 24 images in one second of playback. No more is needed, by the way, since human eye can't see faster than that, unless you want to try and go for subliminal messages.

So I created 72 identical images of each of my slides and transcoded them into a movie. I could have used just three and set the framerate to a single frame per second, but I would have to correct the framerate later on. Which is why I opted for consistency, even though this meant a few more images polluting the work directory. Of course, I did not manually copy the images. I used a small bash script for that.

for i in {1..72} # 24 fps, 3 seconds
do cp $1.png $1.$i.png
exit 0

To run it, use ./ filename (without the extension, assume .png).

After the images were ready, I transcoded them. Again, mencoder comes to help.

mencoder mf://*.png -mf type=png:w=640:h=480:fps=24 -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o intro1.avi

By now, you should be familiar and cozy with this powerful tool. If you peek into the mencoder manpage, you will learn that mf specifies image file manipulation, with the filter set to whatever you want. -mf tells is the image type, the size and the framerate. -ovc lavc tells us to use libavcodec. -lavcopts specifies the video codec options. Now, I admit the documentation on some of the options is a bit flaky. We only stream the audio. All of this into an output file called intro1.avi. In fact, a very similar example to mine is available in the manpage.

Now, I'm choosing a different codec here and have not done anything with an audio codec, on purpose, because I want to show you some more cool tricks later on. While they make our task more complicated in the long run, they will help you understand the kind of problems you may be facing and how to overcome them.

Redo effects in Kdenlive for intro pieces

Repeat for both slides. Now we have two three-second intros, but they are standalone and have no effects applied. So we power Kdenlive once more. A very decent effect for intro slides is Fadeout, which I'll be using, plus the standard set of effects used in the actual Experiment movie, including sepia, old movie, scratch lines, and some more.

Combine all together

Now we have the two intro pieces and the main movie. Seemingly, they are all encoded pretty much the same. But when you try to mencoder them together, you'll see a bunch of errors. Not to worry, we will correct all of the problems using ffmpeg this time, using the same audio and video encoding for all our pieces before splicing them together.

ffmpeg -i part1.avi -vcodec mpeg4 -s 640x480 -r 24 -b 2200 -acodec mp2 -ar 44100 -ab 64000 -ac 2 part1-fixed.avi

We've learned about ffmpeg before, so no need to linger to much on the options. Repeat for all parts. And then, mencoder galore:

mencoder -oac copy -ovc copy part1.avi part2.avi part3.avi -o frankenstein.avi

And our final video is all ready and dandy.

Once again, I repeat, this can be done with fewer operations and fewer tools, especially if you're meticulous and careful and use the same audio and video formats and codecs throughout your project. But if you have to work on a project created by different people, you have a wide set of of tools that will help you combine the different pieces.

Job done!

And you enjoy the masterpiece now!

Final work

One more

More reading

You may be interesting in several other multimedia manipulation tutorials I've made. I have a tutorial for Flash stuff, including download, play, convert, extract, tag. Then, there's the Video tutorial, covering split, join, encode, fix, resample, convert, record tasks. Finally, I've also written the Audio tutorial, covering convert, split, join, change gain, tag, record.

In fact, why don't you visit the entire Multimedia section?


And that's it. While most tutorials, those written with care and lots of details, offer you valuable information how to get work done, this one takes the actual manipulation one step forward, showing the very steps taken to create the awesome end-result.

It demonstrates the power of Linux, the easy and accessibility of tools needed for the job, just waiting for you in the repositories, the flexibility, the beauty, the simplicity. Best of all, you have a real thing to relate to, rather than just esoteric examples that no one needs.

If you've ever wondered if you can become a decent multimedia user, the answer is yes, you have the tools. Linux provides them all, for free, right there. The only thing left is your desire to learn, as well as your imagination to make cool stuff. There, I can't help. But at least you've got the technical side covered. This is just the beginning. Start exploring and the world's your papaya.


You may also like: