How to record videos on Nikon D300

This brief tutorial should enable you to shoot short video sequences using the Nikon D300 DSLR. It might also work with D700 and D3 but it has not been tested yet. The technique is based on the Nikon SDK and images that are captured via LiveView. It is largely based on this post by Olivier Giroux. In order to record videos, I have coded a control program, which reflects my poor knowledge of C++. However, the source code is available and anyone more skilled in it can take the flag and improve it.

1. How it works

The Nikon SDK allows to capture images produced by LiveView at speed sufficient to create smooth videos. This means that the camera needs to be connected to a PC during shooting! A simple control program uses the functionality of the SDK to capture a series of images as fast as possible and saves them on the PC. In order to avoid interrupts when the hard-drive gets busy, it is preferable to store them on a RAM disk. Finally, a video software is used to glue all the jpegs together to produce the video. The video resolution is 640x426 pixels @ 25fps.

2. Requirements

You need a PC with Windows, preferably XP, unfortunately this does not seem to be running on Linux under wine. You will need to create a Ramdisk, so big RAM is an advantage. You will also need mencoder or other similar software to create the final video out of series of jpegs.

3. Setting up the PC

First, create a RAM disk on your PC. There are several ways of doing this, I have used this program and it worked just well. It is important to name the RAM disk drive R and create directory video on it. This is where the images are going to be saved.

Next, download the control program (you can also get the source), and unpack it. There is an executable called nikon.exe, which is the one you are looking for.

4. Setting up the Camera

Change the USB mode on your camera to PTP mode and connect it to the PC.

5. Capture

Now, when you launch nikon.exe the camera will immediately switch to LiveView (you should hear the clack of the mirror going up) and starts recording images. It will continue until you kill the program.

6. Video making

Open a command line on the R drive and run mencoder to get the video:

mencoder "mf://video/*.jpg" -mf fps=25 -o video.avi -ovc lavc -lavcopts vcodec=mpeg4

and that's all folks!

Michael Komm
(michael dot komm aerobase centrum dot cz)

Sample videos

Here are some videos are took using this technique


Domain name (anti-spam)