LML1394 Manual

1 Notational Conventions

You input is designated with $, for the command shell input prompt, and with # for superuser mode input.

Your input and system response is presented in bold face.

2 System Requirements

3 Miscellaneus

Because of the variations in Linux distributions, as well as because of quick rate of change

in the shipping kernels Linux Media Labs provides drivers in source form, under the terms of

Gnu General Public License (GNU GPL).

IEEE 1394 driver is being developed as part of generic Linux kernel drivers.

LML patched this driver and distribute it as a standalone part, which you can compile

without kernel patching and rebuilding kernel at all and it's modules, or you can install it from rpm package.

4 Linux System Configuraion

If your RedHat Linux distribution is 7.1 and your kernel version 2.4.2-2,

in this case you must install kernel version 2.4.3-12 from LML1394 package:

Upgrading kernel version 2.4.2-2 to kernel version 2.4.3-12 :

# cd RPMS

# rpm -Uvh kernel-2.4.3-12.i386.rpm

# rpm -Uvh kernel-headers-2.4.3-12.i386.rpm

# rpm -Uvh kernel-source-2.4.3-12.i386.rpm

edit /etc/lilo.conf to check correct installation of kernel version 2.4.3-12,

and change image name vmlinuz-2.4.2-2 to vmlinuz-2.4.3-12.

# lilo

Now you have to reboot your system now (in order for changes in lilo.conf to become active).

(Note: If you don't now what kernel verion installed just type $uname -r command )


5.1 Obtaining and Installing the Driver

LML 1394 card driver distributed on CD with LML 1394 card.

RPM with binary driver distributed on CD in RPMS directory,

and it's installation'll be done when you run


from LMLCD/LML1394 directory driver modules'll be installed in /lib/modules/misc,

also driver'll be autoloadable and all needed software'll be installed on your system.

Recomedation: install software pack from LMLCD/contrib:


5.2 Compiling the Driver manually

LML 1394 card driver distributed on CD with LML 1394 card.

Change directory to source/driver/LML1394driver1.2.0 and make the loadable driver:

$ sh

The script would build the loadable driver object files: ieee1394.o ohci1394.o raw1394.o.

From you can download the latest LML1394driver1.2.xx.tgz file.

Untar this file:

$ tar zxvf LML1394driver1.2.xx.tgz

This would create subdirectory LML1394driver1.2.xx that contains the last version of low level video streaming driver.

5.3 Loading the Driver Module

You may load LML1394 driver after each reboot manually, or modify the

/etc/rc.local to let this happen automatically.

To manually load the driver:

$ su

# /sbin/insmod ieee1394.o [optional insmod line parameters]

next step you must load modules:

# /sbin/insmod ohci1394.o

# /sbin/insmod raw1394.o

Don't forget to exit superuser mode:

# exit

5.4 Configuring System to Load LML1394 Driver Module Automatically

In order to load ieee1394.o ohci1394.o raw1394.o modules automatically you need to do the following:

# su

Copy files: ieee1394.o ohci1394.o raw1394.o

to the location where them would be autoloadable:

#cp ieee1394.o ohci1394.o raw1394.o /lib/modules/misc

Add this lines:

/sbin/insmod ieee1394.o

/sbin/insmod ohci1394.o

/sbin/insmod raw1394.o

to the file /etc/rc.local

# exit

5.5 Troubleshooting

If your Linux distribution is not Redhat, you can install driver and software from LML 1394 CD : source/ directory.

IEEE 1394 driver is currently under development, and if you have problems with LML 1394 card driver

installation on your system you can use this instructions to load ieee1394 driver as a part of kernel:

Before starting the installation:

if your Linux kernel source code (2.2.18 or more recent):

apply ieee1394 patch to your kernel from LML 1394 CD : source/driver/ieee1394-2.2.19-20010527.gz

if your Linux kernel source code (2.4.0 or more recent):

apply ieee1394 patch to your kernel from LML 1394 CD : source/driver/ieee1394-2.4.4-20010527.gz

Installing the kernel source code

Unpack the kernel source code to a convenient location, such as /usr/src/linux.

Applying the kernel patch

Newer kernels already contain the ieee1394 device driver software.

If the directory /usr/src/linux/drivers/ieee1394 exist, then you don't need to apply the patch and you can continue with the next step.

Now apply the kernel patch. It contains the source code for the ieee1394 driver plus required changes to makefiles and configuration files.

If you want to install more recent versions at a later time, you need only to copy the latest driver sources into the directory.

The makefiles and configuration files do not change that often.

Patching a kernel usually looks like this:


cd /usr/src/linux

patch -p1 < path_to_patch_file


Now configure (make menuconfig xconfig) the kernel.

Note the new entry for the IEEE-1394 subsystem. Choose the appropiate settings. You can safely compile everything as modules.


Installing the ieee1394 modules

After successful compiling, reboot and module load the new IEEE-1394 subsystem is now ready to use. Check whether the IEEE-1394

subsystem was able to identify your hardware interface: you should find a few log messages in the file /var/log/messages.

Connect your camcorder and turn it on: the driver should note this and issue a reset to the interface card.

This event should be recorded in the messages file too.

6 HDD Perfomance

If you are using an IDE disk, you should probably turn on the DMA feature of the IDE disk drive.

To check whether DMA is currently active, enter (as root) the command:

hdparm -v /dev/hda (substitute your IDE device if it is not /dev/hda)

Check the using_dma line. If it is not on then turn on IDE DMA with this command, but read the hdparm manpages before doing so:

hdparm -d1 /dev/hda

7 Frequently Asked Questions (FAQ)

7.1 How to install LML 1394 driver and software package

Copy LML 1394 software package from cd to your home directory,

enter superuser mode (su, not su - command),

launch install script

$ sh

this script'll install:

LML1394 binary driver, and software pack from RPMS directory.

7.2 How to capture DV video from camera

Load ieee1394, ohci1394, raw1394 modules.

Correct way to capture DV video from camera it's using dvgrab program :

$ dvgrab -format dv2 dvavi

and press PLAY button on your DV camera.

Note: you must grab DV video in DV 2 format, for correct conversion to mjpeg, mpeg formats.

Another way to capture DV launch kino, select View menu section, choose capture dialog,

where you can preview and capture DV video from camera.

7.3 How to convert DV video file to MJPEG standart

$ dv2jpg dvavi.avi mjpegfromdv.avi

Then you can convert mjpeg avi to mpeg1, mpeg2 formats by using mjpeg tools.

8 Software Package

8.1 DVGRAB dv grabber .

dvgrab distributed on CD in package with LML1394 card,

and it's RPM installation included in script.

dvgrab is a program which saves the audio and video data from a digital camcorder into an AVI file.

These AVI files can then be processed further by other video editing programs available for Windows or Linux.

The advantages of using dvgrab for creating the AVI files are:

DVGRAB manual:


dvgrab options The basic command line format is:

dvgrab [options] filename

The filename parameter specifies the base part of the actual file name. Usually dvgrab adds a counter

or timestamp and the .avi extension.



Whenever a new recording is detected, a new file will be created. This is useful for splitting long video

sequences into several smaller ones. If this option is used together with the -frames option,

then a split is performed when the frame count is exceeded.

The default is no autosplit.

-card number

If you have more than one IEEE1394 card, then this option lets you select the correct interface card.

Default is 0, which is the first card found.

-channel number

Selects the iso channel used for transmitting the video data. Default is 63, the channel most camcorders are using.

-every number

Saves only every nth frame. This is useful for monitoring applications or if you want to create an overview of a whole cassette tape. To record only one frame per second, use -every 25 (or -every 30, if you are using NTSC).

Default is 1; that is, saving every frame.

-format [dv1 | dv2 | raw | test]

The output file will be saved in one of the file formats. The default is the dv1 AVI file format.

dv1 and dv2 are two flavors of the AVI file format. The dv1 format is slightly smaller in size than the dv2 format, but some applications can only read dv2 format files, which contain preprocessed audio tracks.

The raw format contains just the plain video frames without any additional information. Useful for some Linux software. Files in this format can also be played with Windows QuickTime when renamed to file.dv .

The test format is used only for testing purposes. It contains all data packets sent from the camcorder and can be used as input to dvgrab with the -testmode option.

-frames number

dvgrab will record this many number of frames per file. One second of PAL data contains 25 frames and one second of NTSC data contains approx. 30 frames.

The default value is practically infinite; note however that there is a file size limit of 1 GByte for the AVI file format. dvgrab will create a new file if the size is slightly less than 1 GByte.


Prints a short help screen.


dvgrab will read the video data from a file created previously with the -format test option. Useful during development for regression testing.


Puts the date and time of recording into the file name.


Prints the version information.

8.2 KINO Non-linear video-editor

kino distributed on CD in package with LML1394 card,

and it's RPM installation included in script.


Kino Manual :


After starting Kino, use the :r command to load one or more

AVI files with Digital Video (DV) content. Use the navigation commands listed below to move around in your movie.

You can delete frames using the x command and insert more AVI or Kino files at the current position.


The commands are very similar to the vi editor commands. Just think of a frame as one character,

a recording as one text line and the whole movie as one text file.


When you are done, save the movie using the :w command in the AVI file format.

You can also save the playlist using the :W(uppercase) command.

The playlist contains the position and AVI file name for each single frame in the movie. It is in ASCII format.

Planned commands (not all of them are available yet):

a. Navigation commands


frame: one image of the movie

sequence: the recording of one or more frames. Any frames which

recording time differs by no more than one second to their adjacent

frames belong to the same sequence.

movie: one or more sequences

Notes: Commands marked with a * aren't implemented yet.

The :r and :w commands use a file dialog. The range is currently

the whole movie.

l, right-arrow, space :Move one frame forward

h, left-arrow: Move one frame backward

ctrl-h, backspace:Move one frame backward

gg: Move to the start of the movie

G: Move to the end of the movie

0, :Move to the start of the current sequence

$: Move to the end of the current sequence

j, return, +:Move to the start of the next sequence

down-arrow, ctrl-n: Move to the start of the next sequence

k, up-arrow, ctrl-p, -: Move to the start of the previous sequence

ctrl-f : Move forward several sequences

ctrl-b: Move backwards several sequences

w: Move forward one second (25 or 30 frames)

b: Move backwards one second


x, dl, d space, del: cut the current frame

X, dh: cut the frame before the current frame*

dd: cut the current sequence

d$: cut from current frame to end of sequence

d, d0: cut from start of sequence just before current frame

dw: cut one second*

dG: cut to end of movie*

dgg: cut from beginning of movie*


yl, y space: copy the current frame

yy, Y: copy the current sequence

yh: copy the frame before the current frame*

y$: copy from current frame to end of sequence

y, y0: copy from start of sequence to current frame

yw: copy one second*

yG: copy to end of movie*

ygg: copy from beginning of movie*


p: paste after current frame

P: paste before current frame


:[#,#]w filename: writes the range of frames to an AVI file.**

:r filename: inserts a playlist or movie before the current frame**

:q: quits the program

:wq, :x, ZZ: saves and quits

ctrl-g: prints info*

8.3 Video Players

Players are distributed on CD in package with LML1394 card,

and their RPMs installation included in script.

also you can play DV files in KINO editor.

8.4 DV video conversion utilities

Conversion utilities are distributed on CD in package with LML1394 card,

and their RPM installation included in script.

DV2JPG - this is a digital video (dv) avi to mjpeg-encoded avi converter.

During this process it converts a 720x480 29.970fps 48khz incoming a/v stream to 352x240 29.970fps 48khz mjpeg-encoded.

Frame sizes are adjusted slightly if you're using PAL instead of NTSC.


Make sure that VIDEO is defined properly in the makefile.

Just type 'make', and two executables will be built - dv2jpg and avijoin.


Use dvgrab with the -format dv2 parameter to create avi files. you'll notice that the avi files it creates are

about 1gb in size, and contain about 4.5 minutes of video/audio. An hour and a half show takes up about 25 gigabytes.

Use :

$ dv2jpg dvavi mjpegavi

to convert one of the above-created DVavi's into mjpeg-encoded AVIs. repeat for all DVavi's.

You won't need the DVavi's any more now that you have mjpeg-encoded AVIs. That'll free up some much needed disk space,

since they're much smaller. Use "avijoin showname_1-6.avi show1.avi show2.avi show3.avi show4.avi show5.avi show6.avi"

to join together 6 of the 4.5 minute mjpeg-encoded avi's. you'll wind up with almost 1/2 hour of avi; about one gigabyte.

this seems to be the about the max you can stick in an avi file.

Then you may convert the mjpeg avi to mpeg by using mjpeg tools,

and use video players such as mplayer to play your movie. Encoding DV stream using 'transcode' tool

for example:

grab DV stream:

dvgrab -format dv2 DVsample

DV to MPEG2:

transcode -i DVsample.avi -x dv -I 3 -C 3 -Q 5,5 -y mpeg2enc,mp2enc -o Mpeg2FromDV.avi

tcmplex Mpeg2FromDV.avi.m1v Mpeg2FromRealDV.avi.mpa -o Mpeg2FromDV.avi.mpg

DV to Divx:

transcode -i DVsample.avi -k -V -x dv -I 3 -C 3 -Q 5,5 -divx_quant 2 -y divx4 -o DivxFromDV.avi


About this document ...

LML1394 Manual

This document was generated using the LaTeX2HTML translator Version 2002 (1.62)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -no_subdir -split 0 -show_section_numbers /tmp/lyx_tmpdir6441V1mKJ4/lyx_tmpbuf0/LML1394Manual.tex

The translation was initiated by Vassili Leonov on 2002-12-30

Copyright © Vassili Leonov 2002-12-30