What are VCDs, what are the VCD tools for ?
Video CDs are ordinary CDROMs in a special format which contain
MPEG-1 encoded video.
For long times this type of CD was mostly known in Asia
whereas Video CDs and the according players were mostly
unknown in the USA and Europe.
Since almost every DVD player can also play VCDs
(and since the recordable Video DVD for a reasonable price seems still far away)
VCDs are getting more popular everywhere.
VCDs use a special type of CD sectors (mode 2 form 2)
and have a special form of the filesystem, so they
can not be mastered with the usual Linux CD-Tools
(like mkisofs and cdrecord).
If you want to know more about VCDs, visit the
VCD FAQ or do a search in the web.
The VCD-Tools should enable you to create your own
VCD under Linux. The VCD-Tools contain two programs,
vcdmplex for multiplexing a MPEG audio and video
stream in a form suitable for the VCD and mkvcdfs
for making a raw image of the VCD.
Actual Version of VCD-Tools: 0.4 (Sep 15 2000)
New in version 0.4:
- Fixed some problems with sound blibs that were introduced
with version 0.3
New in version 0.3:
- Location of some files was wrong in previous version,
some players refused to play the VCDs produced.
This has been corrected and the VCDs should play now
in (hopefully) every DVD player.
- Removed optional files, this improved the behavior
of the DVD players during playback (at least true for mine).
Time and track info is now shown.
- VCDs should be able to be played back by the windows
Media Player now. Just drag and drop the AVSEQxx.DAT files
into the Media player since they are not recognized as MPEGs
by their extension.
- MPEG system streams from other sources should make less
problems now, file size of MPEG files needs not longer to
be a multiple of 2324.
HOW TO MAKE A VCD:
- create a MPEG-1 video stream with the dimensions
352x240 (NTSC) or 352x288 (PAL) and a bitrate of 1152 KBit/sec
(use the encoder of your choice, you find one for MJPG encoded
AVIs or Quicktime files in the
lavtools).
- create a MPEG-1 layer 2 audiostream with a sample
rate of 44100 Hz, stereo and a bitrate of 224 KBit/sec
(use the encoder of your choice, you find one for MJPG encoded
AVIs or Quicktime files in the
lavtools).
- multiplex these two streams with vcdmplex
(vcdmplex is contained in the VCD-Tools).
I got the information that a tool called mplex may also
be used for multiplexing and may give better results.
I have not tried that myself, you may try it if you think that
audio/video sync is not satisfying. Don't ask me for details!
You find mplex for example at
http://www.leo.org/pub/comp/general/graphics/mpeg/mplex/
- use mkvcdfs to create a VCD image of one ore more of those MPEG streams
(mkvcdfs is contained in the VCD-Tools).
- use cdrdao to actually burn the VCD image to disk
(you may get cdrdao from
http://www.ping.de/sites/daneb/cdrdao.html).
HOW TO CREATE THE VCD TOOLS:
- get vcdtools-0.4.tar.gz
- gunzip and untar it with tar zxvf vcdtools-0.4.tar.gz
- go into the directory vcdtools-0.4 and type make
HOW TO USE vcdmplex:
vcdmplex MPEG_video_stream MPEG_audio_stream MPEG_system_stream
- MPEG_video_stream and MPEG_audio_stream are inputs, MPEG_system_stream is a output.
- vcdmplex should be able to multiplex any MPEG video and audio
streams, not just VCD compliant streams. It can be used even for MPEG-2
video streams, I don't know if the output adheres to any standard,
however.
- Messages in the form: "Inserted padding sector ..." are normal
when multiplexing VCD compliant streams,
they just tell you that your actual bitrate is slightly below VCD bitrate.
- Messages: "***** BUFFER underrun - output may not play correctly *****"
are more severe, they come if the actual bitrate of your MPEG stream
is higher than the one specified in the header.
The resulting system stream might be unplayable!
- If video and audio stream bitrates comply exactly with the VCD
specification (1152 KBit/s or 224 KBit/s respectivly),
exactly 75 sectors/second are generated and the system
stream is stuffed with padding sectors as needed.
Otherwise no padding sectors are created.
HOW TO USE mkvcdfs:
mkvcdfs mpegfile1 mpegfile2 .....
mkvcdfs takes MPEG files produced by vcdmplex
and creates the raw CD-Image data
suited for burning with cdrdao.
mkvcdfs creates 2 files (names may be changed by editing defaults.h):
- vcd.toc contains the table of contents of the VCD
- vcd_image.bin contains the CD-Image itself
Use vcd.toc as the argument for cdrdao for burning the CD!
HOW TO BURN THE VCD:
cdrdao write --device your_CDR_scsi_id --driver your_CDR_driver_name vcd.toc
For further details see the cdrdao man page or visit
http://www.ping.de/sites/daneb/cdrdao.html.
POSSIBLE MODIFICATIONS:
My DVD player plays back VCDs up to the double bitrate of
normal VCDs. I use a video bitrate of 2500 KBit/s
(and the usual audio bitrate of 224 KBit/s) for that.
It refuses to play anything above double bitrate.
Reportedly double bitrate is possible with most DVD players.
It enhances the image quality greatly, but the time you
can store on a VCD is reduced to 37 min.
My DVD player also accepts VCDs where the MPEG video stream is
in SVCD format: MPEG-2, image size 480x480/576, 2500 MBit/s.
mpeg2enc from the lavtools is able to encode such streams.
I multiplex these streams also with vcdmplex.
DISCLAIMER:
I have no documentation about the VCD standard
(the "white book"). These tools where created mainly
by reverse engineering the content of a VCD.
I am pretty sure that VCDs mastered with these tools
are NOT adhering to the standard. Actually I ommitted
the CDI stuff completly since only a few people have
a CDI player.
These tools are just a try to make it possible to produce
Video CDs under Linux!
It may be that they work not correctly with every input
even if the input is completly ok.
AUTHOR:
Rainer Johanni, Rainer@Johanni.de
But not all stuff in this directory is from me!
vcdisofs.c has many things I copied from mkisofs
edc_ecc.c is from the cdrdao package and is written by Heiko Eissfeldt
Home
Created 15.9.2000, Dr. Rainer Johanni
Rainer@Johanni.de