Digital Video
This chapter gives an introduction to Digital Video processing with transcode. Here is a list of features:
  • AVI-files with Digital Video streams can be decoded with
    • libdv (default)
    • avifile (-x af6)
    • ffmpeg (-x ffmpeg)
  • concatenating clips with directory mode and option "-i direname" before processing.
  • a couple of fast or high-quality de-interlace filters available to enhance the quality.
  • support for encoding to DV with libdv as raw stream or interleaved AVI-file.
  • pass-through mode: raw DV -> AVI-file conversion.
Unfortunately, while most linux player happily accept the AVI-DV files produced by transcode, the nonlinear DV video editor kino refuses to work with them.
Digital Video (DV) ---> MPEG-4
Here is a 3 step guide to convert a DV tape to a compressed AVI MPEG-4 movie clip under linux using transcode. For a selection of a video codec implementation supported by transcode consult the modules info-page.
  • You need Arne Schirmacher's nice tool dvgrab to transfer the DV tape to disk. Make sure, you use the "--format dv2" option and maybe "--autosplit" to split the tape into small pieces. Use AVI files, since libdv sound seems to be broken. Optionally, use

    tcprobe -i  file.avi

    to find out important parameters: For example:

    [tcprobe] RIFF data, AVI video [avilib] V: 25.000 fps, codec=dvsd, frames=633, width=720, height=576
    [avilib] A: 48000 Hz, format=0x01, bits=16, channels=2, bitrate=1536 kbps,
    [avilib] 633 chunks, 4861528 bytes
    [tcprobe] summary for test-2002.10.04_14-47-25.avi, (*) = not default, 0 = not detected
    import frame size: -g 720x576 [720x576]
    frame rate: -f 25.000 [25.000] frc=3
    audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x1 [0x2000] (*) bitrate=1536 kbps
    length: 633 frames, frame_time=40 msec

    Fortunately, the auto-probing feature of transcode takes care of these details.

  • To encode the clips, we have a number of options:
    • writing a shell script, that feeds transcode with each file,
    • using avimerge to create a single input file,
    • using the directory mode with option "-i". This works only in connection with the import module import_dv.so.

    AVI-file

    Here, we use a single AVI-file file.avi with "dvsd" codec as an example:

    transcode -i file.avi -x dv,avi
    -I 1 -C 1 -z -k
    -o file-divxmp3.avi -y divx4

    We use import_avi.so to extract the audio, which works flawless. Note that the audio is found in two places in the AVI-file. Firstly, interleaved in the DV video frame and secondly, the PCM audio track itself. This makes it possible to use the import module "dv" for audio extraction as long libdv is broken.
    Note: some non-dvgrab produced AVI-files may have the audio ripped from the DV frames. In this case, you must use "-x dv,avi" or "-x dv,X", were X is one of (raw,mp3,ac3).
    You can also reduce the picture to a quarter size "-r 2" to get rid of the interlace artifacts and don't need the de-interlace option "-I 1". This option is the fastes de-interlacing available, but is a simple interpolation. You might also want to try out the anti-aliasing feature with "-C 1" to process the whole frame but this is slow. The option "-z -k" flips the frame and make the necessary color space changes for the encoder.

    DV stream

    Put all AVI-files or raw DV stream into a subdirectory, e.g., named "tape/".

    transcode -i tape/
    -I 3 -C 2 -z -k
    -o tape-divxmp3.avi -y divx4

    The necessary import module is autodetected. tccat extracts the video stream of all AVI-files and concatenates them together to make the clips appear as a single DV stream for transcode. Here, the de-interlace option "-I 3", which drops one half-frame and interpolates by zooming to full frame size and, in principle, removes the interlace artifacts. We also try the anti-aliasing feature with "-C 2" to process the full frame afterwards, but this is slow.

  • Well, that's it. Use avimerge to glue the matching clips together and burn the resulting file to CD.
pass-through mode
The pass-through mode is able to wrap raw Digital Video streams into AVI-files with the following command. Note, that the interleaved raw audio data can be transcoded to a separate audio track with the codec of your choice. However, this does not save space since Digital Video has identical frame size independent of the presence of audio.

transcode -i raw.dv -P 1 -o raw.avi -y raw

The opposite way is achieved by:

tcextract -i raw.avi -x raw > raw.dv

de-interlacing guide
Underway. Tilmann Bitterberg did some testing of de-interlace filters available in transcode. You can view and read the result here.
anti-aliasing guide
Underway.
Last modified: Fri Dec 6 16:25:56 Europe/Berlin 2002