1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290
|
<HTML>
<HEAD>
<TITLE>Making Video CDs under Linux</TITLE>
<STYLE type="text/css">
<!--
H1 {color:#0000FF; font-weight:100; font-size: 60pt;
font-family:arial,helvetica;}
-->
</STYLE>
<META NAME="Keywords" CONTENT="Linux, Video, VCD, Video CD, MPEG">
</HEAD>
<BODY bgcolor="white">
<center>
<H1>
Making Video CDs under Linux
</H1>
</center>
<br>
<br>
<br>
<Font face=arial,helvetica color=black size=+1>
<H2>What are VCDs, what are the VCD tools for ?</H2>
<br>
<p>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.
<p>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).
<p>If you want to know more about VCDs, visit the
<a href="http://www.geocities.com/Athens/Forum/2496/vcdfaq.html">
VCD FAQ</a> or do a search in the web.
<p>The <a href=vcdtools-0.4.tar.gz>VCD-Tools</a> should enable you to create your own
VCD under Linux. The VCD-Tools contain two programs,
<b>vcdmplex</b> for multiplexing a MPEG audio and video
stream in a form suitable for the VCD and <b>mkvcdfs</b>
for making a raw image of the VCD.
<br><br><br><br>
<H2>Actual Version of VCD-Tools: 0.4 (Sep 15 2000)</H2>
<br>
<p>New in version 0.4:
<ul>
<li> Fixed some problems with sound blibs that were introduced
with version 0.3
</ul>
<br>
<p>New in version 0.3:
<ul>
<li> 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.
<br><br></li>
<li> 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.
<br><br></li>
<li> 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.
<br><br></li>
<li> 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.
</li>
</ul>
<br><br><br><br>
<H2>HOW TO MAKE A VCD:</H2>
<br>
<ul>
<li> create a MPEG-1 video stream with the dimensions
352x240 (NTSC) or 352x288 (PAL) and a bitrate of 1152 KBit/sec<br>
(use the encoder of your choice, you find one for <i>MJPG encoded</i>
AVIs or Quicktime files in the
<a href="http://www.munich-vision.de/lavtools/index.html">lavtools</a>).
<br><br></li>
<li> create a MPEG-1 layer 2 audiostream with a sample
rate of 44100 Hz, stereo and a bitrate of 224 KBit/sec<br>
(use the encoder of your choice, you find one for <i>MJPG encoded</i>
AVIs or Quicktime files in the
<a href="http://www.munich-vision.de/lavtools/index.html">lavtools</a>).
<br><br></li>
<li> multiplex these two streams with <b>vcdmplex</b><br>
(<b>vcdmplex</b> is contained in the <a href=vcdtools-0.4.tar.gz>VCD-Tools</a>).
<br><br>
<small>
I got the information that a tool called <b>mplex</b> 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
<a href="http://www.leo.org/pub/comp/general/graphics/mpeg/mplex/">
http://www.leo.org/pub/comp/general/graphics/mpeg/mplex/
</a>
</small>
<br><br></li>
<li> use <b>mkvcdfs</b> to create a VCD image of one ore more of those MPEG streams<br>
(<b>mkvcdfs</b> is contained in the <a href=vcdtools-0.4.tar.gz>VCD-Tools</a>).
<br><br></li>
<li> use <b>cdrdao</b> to actually burn the VCD image to disk<br>
(you may get cdrdao from
<a href="http://www.ping.de/sites/daneb/cdrdao.html">
http://www.ping.de/sites/daneb/cdrdao.html</a>).</li>
</ul>
<br><br><br>
<H2>HOW TO CREATE THE VCD TOOLS:</H2>
<br>
<ul>
<li> get <a href=vcdtools-0.4.tar.gz>vcdtools-0.4.tar.gz</a>
<br><br></li>
<li> gunzip and untar it with <b>tar zxvf vcdtools-0.4.tar.gz</b>
<br><br></li>
<li> go into the directory <b>vcdtools-0.4</b> and type <b>make</b>
<br><br></li>
</ul>
<br><br><br>
<H2>HOW TO USE vcdmplex:</H2>
<br>
<p><i><spacer type=horizontal size=50>
<b>vcdmplex</b> MPEG_video_stream MPEG_audio_stream MPEG_system_stream
</i>
<br><br>
<ul>
<li>MPEG_video_stream and MPEG_audio_stream are inputs, MPEG_system_stream is a output.
<br><br></li>
<li><b>vcdmplex</b> 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.
<br><br></li>
<li>Messages in the form: <b>"Inserted padding sector ..."</b> are normal
when multiplexing VCD compliant streams,
they just tell you that your actual bitrate is slightly below VCD bitrate.
<br><br></li>
<li>Messages: <b>"***** BUFFER underrun - output may not play correctly *****"</b>
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!
<br><br></li>
<li>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.
</li>
</ul>
<br><br><br>
<H2>HOW TO USE mkvcdfs:</H2>
<br>
<p><i><spacer type=horizontal size=50>
<b>mkvcdfs</b> mpegfile1 mpegfile2 .....
</i>
<br><br>
<p><b>mkvcdfs</b> takes MPEG files produced by <b>vcdmplex</b>
and creates the raw CD-Image data
suited for burning with cdrdao.
<p><b>mkvcdfs</b> creates 2 files (names may be changed by editing <b>defaults.h</b>):
<ul>
<li><b>vcd.toc</b> contains the table of contents of the VCD</li>
<li><b>vcd_image.bin</b> contains the CD-Image itself</li>
</ul>
<p>Use <b>vcd.toc</b> as the argument for cdrdao for burning the CD!
<br><br><br><br>
<H2>HOW TO BURN THE VCD:</H2>
<br>
<p><i><spacer type=horizontal size=50>
<b>cdrdao write --device</b> your_CDR_scsi_id <b>--driver</b> your_CDR_driver_name <b>vcd.toc</b>
</i>
<br><br>
<p>For further details see the <b>cdrdao</b> man page or visit
<a href="http://www.ping.de/sites/daneb/cdrdao.html">
http://www.ping.de/sites/daneb/cdrdao.html</a>.
<br><br><br><br>
<H2>POSSIBLE MODIFICATIONS:</H2>
<br>
<p>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.
<p>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.
<p>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.
<br><br><br><br>
<H2>DISCLAIMER:</H2>
<br>
<p>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.
<p>These tools are just a try to make it possible to produce
Video CDs under Linux!
<p>It may be that they work not correctly with every input
even if the input is completly ok.
<br><br><br><br>
<H2>AUTHOR:</H2>
<br>
<p>Rainer Johanni, <a href="mailto:Rainer@Johanni.de">Rainer@Johanni.de</a>
<p>But not all stuff in this directory is from me!
<p>vcdisofs.c has many things I copied from mkisofs
<p>edc_ecc.c is from the cdrdao package and is written by Heiko Eissfeldt
<br>
<br>
<br>
<p><a href="http://www.munich-vision.de/index.html">Home</a>
<small>
<p>Created 15.9.2000, Dr. Rainer Johanni<br>
<a href="mailto:Rainer@Johanni.de">Rainer@Johanni.de</a>
</small>
</Font>
</BODY>
</HTML>
|